簡體   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