转载

java – 使用JAXB编译包含相同元素的重复定义的几个XSD

题:

如何让xjc / Jaxb为同一命名空间中包含重复elementdefinitions的几个模式生成propper java

classes?

信息:

我有三个.xsd架构:A,B和C.所有都有相同的targetnamespace.

他们都是给我的3个shemas,我不会以任何方式允许以任何方式改变它们.

它们有一些也可以在B或C中找到的元素(但是A也有许多自我声明的元素)

示例:这与A和C的“代码”相同:

<xs:simpleType name="y_ym_ymdDatoType">
    <xs:union memberTypes="arcgYearType arcgYearMonthType arcDateType"/>
</xs:simpleType>
<xs:simpleType name="arcgYearType">
    <xs:restriction base="xs:gYear">
        <xs:minInclusive value="1700"/>
        <xs:maxInclusive value="2100"/>
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcgYearMonthType">
    <xs:restriction base="xs:gYearMonth">
        <xs:minInclusive value="1700-01"/>
        <xs:maxInclusive value="2100-12"/>
    </xs:restriction>
</xs:simpleType>
<xs:simpleType name="arcDateType">
    <xs:restriction base="xs:date">
        <xs:minInclusive value="1700-01-01"/>
        <xs:maxInclusive value="2100-12-31"/>
    </xs:restriction>
</xs:simpleType>

当使用xjc将它们编译成javaclasses时,我得到以下异常:

[ERROR] 'y_ym_ymdDatoType' is already defined
 line 297 of file:../c.xsd

[ERROR] (related to above error) the first definition appears here
 line 309 of file:../a.xsd

其他元素也是如此:arcgYearType,arcgYearMonthType和arcDateType.

我已经阅读了一个可能解决这个问题的绑定文件,但我不知道如何做到这一点,所以示例将是首选.

原文  https://codeday.me/bug/20190111/502267.html
正文到此结束
Loading...