使用绑定更改XmlRootElement批注名称

时间:2016-01-21 14:40:48

标签: java web-services xsd jaxb xjb

我试图通过使用jax-b插件将我的xsd文件转换为java对象(这个插件读取我的xsd文件并将它们转换为模型)。因为我有两个带有请求和响应模式的xsd。

在两个模式中,我都有相同的根元素名称,即XML。有人建议我,不要创建绑定文件来克服同名冲突,而是在两个xsd上使用不同的名称。

我应用了这些更改。但是,当我的jax-b进行编组和解组时,它会转换为我提供的新名称。

示例:

请求

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
      <xs:element name="RequestXML"> 
</xs:schema>

RESPONSE

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
      <xs:element name="ResponseXML"> 
</xs:schema>

通过Jax-b插件,它创建了我:

@XmlRootElement(name = "RequestXML")
public class RequestXML


@XmlRootElement(name = "ResponseXML")
public class ResponseXML

编组

<RequestXML>
    <HEADER></HEADER>
    <CUSTOMER></CUSTOMER>
</RequestXML> 

但我的要求应该是

<XML>
    <HEADER></HEADER>
    <CUSTOMER></CUSTOMER>
</XML>

请建议我解决方案。我可以在创建对象时使用绑定吗? 我不想手动将rootElement名称更改为XML

请回复

0 个答案:

没有答案