Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在两种不同的情况下,XMLSchema有两种同名的元素类型_Java_Xml_Xsd_Jaxb - Fatal编程技术网

Java 在两种不同的情况下,XMLSchema有两种同名的元素类型

Java 在两种不同的情况下,XMLSchema有两种同名的元素类型,java,xml,xsd,jaxb,Java,Xml,Xsd,Jaxb,其中一个遗留应用程序XML模式定义有两种类型,它们在不同情况下使用相同的名称定义 <xsd:complexType name="effectType"> <xsd:complexType name="EFFECTType"> 模式验证工作正常。但当我使用JAXB生成Java对象时,它抱怨不能用相同的方法生成两个类 由于现有客户端使用此架构,因此无法更改它。是否有任何解决方法,使我能够使用JAXB为模式生成Java对象?您可以使用下面的绑定来更改生成的类的名称 <

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

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

模式验证工作正常。但当我使用JAXB生成Java对象时,它抱怨不能用相同的方法生成两个类


由于现有客户端使用此架构,因此无法更改它。是否有任何解决方法,使我能够使用JAXB为模式生成Java对象?

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

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

您解决了这个问题吗?如果你已经解决了,你是怎么做的?