1

xsd からクラスを生成しようとしていますが、単純型をカスタマイズしようとすると、次の例外が発生します。

    com.sun.istack.SAXParseException2: A type safe enum customization is specified to a simple type that cannot be mapped to a type safe enum.

例外をスローする単純型の宣言は次のとおりです。

    <xs:simpleType name="BroadcastAlertsItem">
    <xs:annotation>
        <xs:appinfo>
        reserved (0)
        broadcastAlertsAccepted (1)
        broadcastAlertsNotAccepted (2)
     </xs:appinfo>
    </xs:annotation>
    <xs:union>
        <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="2"/>
            </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
            <xs:restriction base="xs:string">
                <xs:enumeration value="reserved"/>
                <xs:enumeration value="broadcastAlertsAccepted"/>
                <xs:enumeration value="broadcastAlertsNotAccepted"/>
            </xs:restriction>
        </xs:simpleType>
    </xs:union>
</xs:simpleType>

そして、これはバインディング カスタマイズ ファイルからのバインディングです。

    <jaxb:bindings node="//xs:simpleType[@name='BroadcastAlertsItem']">
        <jaxb:typesafeEnumBase name="BroadcastAlertsItem">
            <jaxb:typesafeEnumMember name="reserved"/>
            <jaxb:typesafeEnumMember name="broadcastAlertsAccepted"/>
            <jaxb:typesafeEnumMember name="broadcastAlertsNotAccepted"/>
        </jaxb:typesafeEnumBase>
    </jaxb:bindings>

ご想像のとおり、私はこの目標を達成するためにさらに多くの方法を試しました:(

xsd ファイルを変更せずにその単純な型をバインドする方法があるかどうかは誰にもわかりませんか?

どうもありがとうございました。

4

0 に答える 0