【问题标题】:Add restriction to element in extension in XSD在 XSD 的扩展中添加对元素的限制
【发布时间】:2021-09-04 04:20:08
【问题描述】:

我有这个复杂的类型:

<xs:complexType name="Date">
  <xs:sequence>
    <xs:element name="Day" type="xs:integer"/>
    <xs:element name="Month" type="xs:integer"/>
    <xs:element name="Year" type="xs:integer"/>
  </xs:sequence>
</xs:complexType>

我想创建一个扩展上述内容的类型,同时对 Year 元素施加限制,例如:

<xs:complexType name="DateOfBirth">
  <xs:complexContent>
    <xs:extension base="Date">
      <!--
        restriction: 1990 <= year <= 2005
      -->
    </xs:extension>
  </xs:complexContent>
</xs:complexType>

我想创建更多类型也扩展Date,每个类型都有不同的限制。

我怎样才能做到这一点?

【问题讨论】:

  • XSD 1.1 带有断言?还是 XSD 1.0?
  • 我使用的是 XSD 1.0

标签: xml xsd


【解决方案1】:

需要一个两步的过程:首先定义一个限制DateOfBirth的类型,然后定义一个扩展这个受限类型的类型。或者,如果您愿意,也可以反过来做。在我看来,如果您将所有这些类型定义为命名的全局复杂类型声明而不是使用匿名内联类型,那么这是最简单的(也是最可重用的)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-24
    • 2013-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多