编程语言
首页 > 编程语言> > java – 从具有类似属性名称的XSD生成JAXB类

java – 从具有类似属性名称的XSD生成JAXB类

作者:互联网

我使用maven-jaxb2-plugin从xsd生成jaxb注释类.我有很多像这样的xsd文件:

<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="A3">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="loginPartner">
          <xs:complexType>
            <xs:sequence>
              <xs:element type="xs:string" name="login"/>
              <xs:element type="xs:string" name="password"/>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="A3">
    <xs:complexType>
      <xs:sequence>
        <xs:element type="xs:string" name="errorCode"/>
        <xs:element type="xs:string" name="errorDescription"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

当我运行maven插件时,它给了我一个错误:

[ERROR] Error while parsing schema(s).Location [
file:schema1.xsd{10,16}]. org.xml.sax.SAXParseException: ‘A3’ is already
defined

有没有什么办法解决这一问题?
实际上我有很多XSD代表来自/来自服务器的请求/响应消息.我想简化创建,验证,解析消息.也许还有另一种解决方案吗?

解决方法:

我有类似的问题;我有两个独立且独立的WSDL(每个都有几个模式定义),我通过JAXB(通过maven-jaxb2-plugin)运行来生成映射类.

我的WSDL共享了一个重复的模式定义,导致XJC窒息.

因为它们都是独立的,所以我能够通过运行maven-jaxb2-plugin的两个独立执行来生成JAXB映射 – 每个WSDL一个(这里涵盖 – How can I tell jaxb / Maven to generate multiple schema packages?).

标签:java,xml,xsd,maven-jaxb2-plugin,jaxb2
来源: https://codeday.me/bug/20190613/1234786.html