java - XML 模式在两种不同情况下有两种同名的元素类型

标签 java xml xsd jaxb

遗留应用程序 XML 架构定义之一在不同情况下使用相同名称定义了两种类型。

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

架构验证工作正常。但是当我使用 JAXB 生成 Java 对象时,它提示无法使用相同的方法生成两个类。

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

最佳答案

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

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

关于java - XML 模式在两种不同情况下有两种同名的元素类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29270548/

相关文章:

JAVA 将二维数组的对角线写入一维数组

java - 译文从何而来? Java servlet、tomcat 和 Ext-Js Sencha 应用程序

java - java类和 “import com.google.gson.*”错误

java - 什么是水平继承?

java - XML XStream 问题

java - jboss-deployment-structure.xml 添加 JAXP 排除

java - 将 xml 属性解析为 ant-build.xml 文件

java - 有没有办法使用 Java 代码而不是外部程序从 XML 模式创建 .java 类?

java - 在 Java 中修改 XML 的内存有效方法

c# - VS2010 复制 .​​Designer.cs 文件