У меня есть разные возвраты XML, которые я хочу проанализировать с помощью JAXB с аннотированными классами. Многие XML-файлы имеют схожую структуру верхнего уровня и содержимое внутреннего тега, которое может различаться. Поскольку мы отправили ContextInstance класс, а не экземпляр, я не могу добавить классы.
Как бы вы создали набор аннотаций JAXB, которые не повторяют xml верхнего уровня каждый раз, учитывая примеры двух файлов, подобных этому.
<?xml version='1.0' encoding='UTF-8'?>
<eveapi version="2">
<currentTime>2008-11-24 20:14:29</currentTime>
<result>
<serverOpen>True</serverOpen>
<onlinePlayers>38102</onlinePlayers>
</result>
<cachedUntil>2008-11-24 20:17:29</cachedUntil>
</eveapi>
И еще такой файл:
<?xml version='1.0' encoding='UTF-8'?>
<eveapi version="2">
<currentTime>2012-02-12 14:39:12</currentTime>
<result>
<rowset name="characters" key="characterID" columns="name,characterID,corporationName,corporationID">
<row name="Alexis Prey" characterID="1365215823" corporationName="Puppies To the Rescue" corporationID="238510404"/>
</rowset>
</result>
<cachedUntil>2012-02-12 15:27:00</cachedUntil>
</eveapi>
Обычный класс верхнего уровня будет выглядеть примерно так:
@XmlRootElement(name="eveapi")
public class EveApiConfig {
@XmlElement(required = true)
protected Date currentTime;
@XmlElement(required = true)
protected String cachedUntil;
@XmlAttribute(name = "version", required = true)
protected int version;
@XmlElement(required = true)
protected ResultsConfig result;
}
Но ResultsConfig будет ряд других вещей. это почти как необходимость обратного XmlSeeAlso
Любые мысли, если как это сделать?