如何重新定义具有联合的simpleType?

时间:2017-10-30 06:18:22

标签: xml xsd xsd-validation xsd-1.1

我怀疑在另一个XSD中重新定义一个简单类型的一个XSD。

sample1.xsd:

  <xs:simpleType name="tLineType">
    <xs:union>
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="mainLine" />
          <xs:enumeration value="secondaryLine" />
          <xs:enumeration value="branchLine" />
        </xs:restriction>
      </xs:simpleType>
      <xs:simpleType>
        <xs:restriction base="tOtherEnumerationValue" />
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:simpleType name="tOtherEnumerationValue">
    <xs:restriction base="xs:string">
     <xs:pattern value="other:\w{2,}" />
    </xs:restriction>
  </xs:simpleType>

sample2.xsd:

我需要在tLineType中添加一些枚举值(例如:test_Track,Depot)。

如何实现上述功能?

提前谢谢。

1 个答案:

答案 0 :(得分:0)

在xs:redefine中,您只能通过使其更具限制性来重新定义您的架构,而您正试图使其更加自由(通过添加之前不允许的允许值)。

您已将其标记为XSD 1.1。在XSD 1.1中有一个新机制xs:override,它允许对基础模式中的组件进行任意更改。