我有以下简单的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编译器,以便它应该为" 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 -b customizedBindings.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?的情况下实现这个目标吗?
发布于 2014-10-23 13:34:09
您的XPath在xs:element中的某个位置处理复杂类型。
//xs:element[@name='ReferenceID']//xs:complexType//xs:attribute[@name='Type']//xs:simpleType
^^但是在模式中,元素是复杂类型的一部分。所以XPath是不正确的。
请尝试:
//xs:complexType[@name='OrderReferenceType']/xs:attribute[@name='Type']/xs:simpleTypehttps://stackoverflow.com/questions/23190325
复制相似问题