В настоящее время я использую структуру SimpleXML для анализа XML-файла и сталкиваюсь с повторяющейся проблемой.
Полученный XML может быть примерно таким:
<root>
<B>
...
</B>
</root>
или что-то вроде того:
<root>
<C>
...
</C>
</root>
И я хочу, чтобы B и C расширили другой класс, скажем, A.
Аккуратный способ сделать это с помощью SimpleXML:
@Root(name="root")
class Root {
@Element(name="B", required="false")
private B b;
@Element(name="C", required="false")
private C c;
}
class B extends A {
}
class C extends A {
}
Я знаю, что могу сделать то, что нашел в документации SimpleXML, изменив формат XML:
<root>
<A class="example.B"> // or "example.C"
...
</A>
</root>
а затем мои классы Java:
@Root(name="root")
class Root {
@Element(name="A")
private A a;
}
class B extends A {
}
class C extends A {
}
Мне бы очень хотелось использовать это решение, но я совсем не уверен, хочу ли я пройти процесс изменения XML на стороне клиента перед его разбором. Проблема в том, что это невозможно сделать на стороне сервера, так как я не могу это контролировать.
Итак, мои вопросы:
Это единственное решение, которое у меня есть?
В таком случае, не знаете ли вы, ребята, есть ли быстрое решение для изменения моего XML-файла на стороне клиента?