私はこの Java コード ( source ) を持っています:
// Deserialize
Person person = new Person();
InputStream in;
XmlIOUtil.mergeFrom(in, person, Person.getSchema());
// Do stuff...
// Serialize back into XML
OutputStream out;
XmlIOUtil.writeTo(out, person, Person.getSchema());
XML コードに、スキーマにない不明なフィールドが含まれているとします (つまり、提供された XML は新しいバージョンのソフトウェアによって生成されます)。
これらのフィールドを再度シリアル化するときに、これらのフィールドを保持するためのきれいな方法はありますか? Protocol Buffers が不明なフィールドを保持していることは知っています。
1 つの解決策は、元の XML をバッファーにコピーしてから、新しくシリアル化された XML を元の XML とマージすることですが、これは非常に複雑に思えます。