XSD - 扩展基本限制类型

问题描述 投票:0回答:1

我有以下类型定义:

<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>

如何做到这一点?

xml xsd restriction
1个回答
0
投票

听起来好像您可以使用联合类型来解决这个特定的用例:https://www.w3.org/TR/xmlschema-0/#UnionDt

<xsd:simpleType name="T_FOOBAR">
  <xsd:union memberTypes="T_YES_NO T_FORBIDDEN"/>
</xsd:simpleType>
© www.soinside.com 2019 - 2024. All rights reserved.