我想要XML负载,例如:
<ResponseDto>
<ResponseHeader>
<success>true</success>
</ResponseHeader>
<ResponseBody>
<ObjectA>
</ObjectA>
</ResponseBody>
</ResponseDto>
和另一个有效载荷如:
<ResponseDto>
<ResponseHeader>
<success>true</success>
</ResponseHeader>
<ResponseBody>
<ObjectB>
</ObjectB>
</ResponseBody>
</ResponseDto>
所以我想为ResponseDto
创建一个包含ResponseHeader Object
和generic Java Object
的类,我可以在其中放置不同类型的对象,所以我在一个单独的对象中尝试了多种类型的对象使用@XMLElement(name = "ResponseBody")
的课程,但它不允许我使用XMLElements
在这种情况下我该怎么办? 提前谢谢。
答案 0 :(得分:4)
大多数企业应用程序都使用JAXB。你可以在下面找到一些教程。
步骤1:首先,您需要制作xsd文件。有许多在线网站可以生成xsd。立即使用http://xmlgrid.net/xml2xsd.html。 XSD看起来应该是这样的。
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="ResponseDto">
<xs:complexType>
<xs:sequence>
<xs:element name="ResponseHeader">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="success"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ResponseBody">
<xs:complexType>
<xs:sequence>
<xs:element type="xs:string" name="ObjectA" minOccurs="0"/>
<xs:element type="xs:string" name="ObjectB" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
请参阅我的以下帖子以供参考。 read and get xml values in java