我在xsd中有这个:
<xs:element name="Parameter" type="complex">
我希望定义复杂的:
<xs:simpleType name="complex">
1 xs:decimal
2 xs:string
</xs:simpleType>
因此,如果参数的值为十进制,则取小数,如果值不是十进制,则假定该值为字符串。如何声明我的复杂类型?
答案 0 :(得分:2)
您需要complexType
和choice来表达:
<xs:complexType name="complex">
<xs:choice>
<xs:element name="number" type="xs:decimal"/>
<xs:element name="string" type="xs:string"/>
</xs:choice>
</xs:complexType>
编辑:根据您的评论,这值得一试:
<xs:simpleType name="monat">
<xs:union memberTypes="xs:decimal xs:string"/>
</xs:simpleType>
但是JAXB无论如何都会translate到String
,因此联盟没有任何好处,至少对于生成的类而言。而你正在使用JAXB只是猜测。