1

次の単純な XML スキーマを取得しました...

<xs:complexType name="OrderReferenceType">
        <xs:sequence>
            <xs:element name="ReferenceID" type="xs:string"/>
        </xs:sequence>
        <xs:attribute name="Type">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="SalesOrder"/>
                    <xs:enumeration value="CustomerPO"/>
                    <xs:enumeration value="WorkOrder"/>
                    <xs:enumeration value="Misc"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:attribute>
    </xs:complexType>

そして、XJC JAXB コンパイラにヒントを与えて、「Type」のタイプ セーフな列挙型クラスを生成するようにしたいと思います。

<jaxb:bindings schemaLocation="file:./WorkOrder.xsd">
<jaxb:bindings node="//xs:element[@name='ReferenceID']//xs:complexType//xs:attribute[@name='Type']//xs:simpleType">
    <jaxb:typesafeEnumClass name="TypeEnum" />
</jaxb:bindings>

しかし、コマンドを実行すると

xjc -d src workOrder.xsd -bcustomizedBindings.xjb

次のエラーが表示されます。

parsing a schema...
[ERROR] XPath evaluation of   "//xs:element[@name='ReferenceID']//xs:complexType//xs:attribute[@name='Type']//xs:simpleType" results in empty target node
line 69 of file:/C:/jaxB_workspace/jaxbExp/resources/mybindings.xjb

Failed to parse a schema.

元のXSDを変更せずにこの目標を達成する方法を誰かが助けることができますか?

4

1 に答える 1