1
我有不同的XML返回结果,我想用带注释类的JAXB解析。许多XML文件共享一个类似的顶层结构,并且内部标签的内容可能会有所不同。由于我们发送了ContextInstance类而不是实例,所以我不能添加类。JAXB解析类似的xml文件
如何创建一组不重复顶层xml的JAXB注释,给出两个这样的文件的示例。
<?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
任何想法,如何如何做到这一点?
只需在此添加更多。我最初的问题是希望为每个特定的实现保留一个带有子类的单个JAXB注释类。 – Streamweaver
它不'感觉非常干燥,但现在我通过保持EveApiConfig超类并为每个特定实现创建子类来实现此目的。仍然希望在我的JAXB noobness中丢失一个更优雅的方法。 – Streamweaver