XML模式在两种不同的情况下具有两个具有相同名称的元素类型

时间:2015-03-26 03:23:22

标签: java xml xsd jaxb

其中一个遗留应用程序XML模式定义有两种在不同情况下使用相同名称定义的类型。

<xsd:complexType name="effectType">
<xsd:complexType name="EFFECTType">

架构验证工作正常。但是,当我使用JAXB生成Java对象时,它抱怨不能生成两个类。

由于现有客户使用此架构,我无法对其进行更改。是否有任何解决方法,以便它允许我使用JAXB为模式生成Java对象?

1 个答案:

答案 0 :(得分:2)

您可以使用下面的绑定来更改生成的类的名称。

<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" xmlns:annox="http://annox.dev.java.net"
    xmlns:namespace="http://jaxb2-commons.dev.java.net/namespace-prefix">
    <bindings schemaLocation="../path of your xsd/schema.xsd">

        <bindings node="//xsd:schema//xsd:complexType[@name='EFFECTType']">
            <class name="EffectTypeTwo" />
        </bindings>

    </bindings>
</bindings>