将多个匿名枚举映射到一种类型

时间:2019-06-29 06:44:30

标签: binding jaxb xjc

有3d派对xsd shemas,并且在多个匿名简单类型中都具有相同的限制。

shema.xsd

<xs:complexType name="Type1">
    <xs:sequence>
            <xs:element name="property1">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="1"/>
                        <xs:enumeration value="2"/>
                        <xs:enumeration value="3"/>
                        <xs:enumeration value="4"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            <xs:element name="property2">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:enumeration value="1"/>
                        <xs:enumeration value="2"/>
                        <xs:enumeration value="3"/>
                        <xs:enumeration value="4"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
    </xs:sequence>
</xs:complexType>

在没有Shemas修改的情况下仅使用绑定创建一个枚举的方法在哪里? 当前解决方案:创建其他用于限制的简单类型,并将其通过bindings.xml

映射到枚举

edited_shemas.xsd

<xs:complexType name="Type1">
    <xs:sequence>
            <xs:element name="property1" type="AdditonalType">
            </xs:element>
            <xs:element name="property2" type="AdditonalType">
            </xs:element>
    </xs:sequence>
</xs:complexType>
<xs:simpleType name="AdditonalType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="1"/>
        <xs:enumeration value="2"/>
        <xs:enumeration value="3"/>
        <xs:enumeration value="4"/>
    </xs:restriction>
</xs:simpleType>

binding.xml

<jaxb:bindings node="./xs:simpleType[@name='AdditonalType']">
    <jaxb:typesafeEnumClass name="AdditonalEnum">
        <jaxb:typesafeEnumMember value="1" name="val_1" />
        <jaxb:typesafeEnumMember value="2" name="val_2" />
        <jaxb:typesafeEnumMember value="3" name="val_3" />
        <jaxb:typesafeEnumMember value="4" name="val_3" />
    </jaxb:typesafeEnumClass>
</jaxb:bindings>

0 个答案:

没有答案