繁体   English   中英

使用JAXB将Java通用对象转换为XML

[英]Converting Java generic object to XML using JAXB

我想要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名称

在这种情况下我该怎么办? 提前致谢。

大多数企业应用程序都使用JAXB。 您可以在下面获得许多教程。

  1. http://www.mkyong.com/java/jaxb-hello-world-example/
  2. https://examples.javacodegeeks.com/core-java/xml/bind/jaxb-marshal-example/
  3. https://www.javacodegeeks.com/2014/12/jaxb-tutorial-xml-binding.html

第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>

请参阅我的以下帖子以供参考。 在java中读取并获取xml值

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM