当前位置: 首页 > 知识库问答 >
问题:

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

敖淮晨
2023-03-14

我想使用XML有效载荷,比如:

<ResponseDto>
    <ResponseHeader>
        <success>true</success>
    </ResponseHeader>
    <ResponseBody>
        <ObjectA>
        </ObjectA>
    </ResponseBody>
</ResponseDto>

另一种有效载荷是:

<ResponseDto>
    <ResponseHeader>
        <success>true</success>
    </ResponseHeader>
    <ResponseBody>
        <ObjectB>
        </ObjectB>
    </ResponseBody>
</ResponseDto>

所以我想为响应Dto创建一个类,其中包含响应头对象和一个通用Java对象,我可以在其中放置不同类型的对象,所以我尝试了多种类型的对象一个带有@XMLElement(name="响应体")的类,但它不允许我具有相同的XMLElements名称

在这种情况下我能做什么?提前感谢。

共有1个答案

逄岳
2023-03-14

大多数企业应用程序都使用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

第一步:首先需要生成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值

 类似资料:
  • 我试图将我下面的xml转换为java对象。 这是我的xml: 我需要在"提供者组织"下获取"name"的值。下面是我Java课。 诊所ocument.java 记录目标。JAVA 病人ole.java 供应商组织。JAVA XMLFileParserSAXUtility.java 我得到的结果是 如果我尝试打印syso(临床文件); 结果是临床文档[recordTarget=null] 请帮帮我!

  • 我有以下XML,需要将其转换为java对象。 我不确定当我使用JAXB转换它时,我的pojo将是什么。 根据我的理解,我创建了以下POJO: 请帮帮我。提前感谢。

  • 问题内容: 在Java中,从Object转换为其他类型时,为什么第二行会产生与转换相关的警告,而第一行却没有? 问题答案: 这是因为在执行时,由于 类型Erase 不会 真正 检查对象是否为a 。真的只是将其投射到。例如: __ 有关更多信息,请参见Angelika Langer的Java泛型常见问题解答 ,尤其是类型擦除部分。

  • 我有一个类,它有一个包含的列表。在我的应用程序中,我在中设置细节,然后添加到的中,然后使用将转换为。 下面代码行的1个illegalAnnotationExc一定类有两个相同名称的属性trainingList

  • 问题内容: 我想在REST应用程序中接受和响应JSON对象。我需要发送和接收的数据在.properties文件中。我已经阅读了它们,现在位于Object(From )中。是否可以在不实现新类的情况下编组和解组对象? 我在Weblogic服务器中使用Jax-rs API。 问题答案: 对WebLogic不太熟悉,因此我不知道它使用的是哪个版本的Jersey(1.x或2.x),但是使用1.x,您可以简

  • 我正在尝试使用JAXB从对象构建XML。 但是我错过了一些东西,因为我得到了一个例外: javax.xml.bind.MarshalExc0019-具有链接异常:[com.sun.istack.internal.SAXException2:类雇员及其任何超级类在此上下文中都是已知的。javax.xml.bind.JAXBExc0019:类雇员及其任何超级类在此上下文中都是已知的。]