我有以下类型定义:
<xsd:simpleType name="T_YES_NO">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="y" />
<xsd:enumeration value="n" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="T_FORBIDDEN">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="f" />
</xsd:restriction>
</xsd:simpleType>
我想将类型
T_FOOBAR
限制为
<xsd:simpleType name="T_FOOBAR">
<xsd:restriction base="T_YES_NO" />
<xsd:restriction base="T_FORBIDDEN" /> <!-- Not allowed -->
</xsd:simpleType>
我不想想写
<xsd:simpleType name="T_FOOBAR">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="y" />
<xsd:enumeration value="n" />
<xsd:enumeration value="f" />
</xsd:restriction>
</xsd:simpleType>
如何做到这一点?
听起来好像您可以使用联合类型来解决这个特定的用例:https://www.w3.org/TR/xmlschema-0/#UnionDt。
<xsd:simpleType name="T_FOOBAR">
<xsd:union memberTypes="T_YES_NO T_FORBIDDEN"/>
</xsd:simpleType>