【问题标题】:How to indicate "exactly equals" occurrence constraint in XSD?如何在 XSD 中指示“完全等于”出现约束?
【发布时间】:2017-07-05 23:41:05
【问题描述】:

我发现可以限制 XML Schema 中元素的最小和最大数量。

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="full_name" type="xs:string"/>
      <xs:element name="child_name" type="xs:string"
      maxOccurs="10" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

我想将元素的数量限制为一个确切的数字。 有numberOfOccurs 之类的吗? 我可以通过将 minOccurs 设置为等于 maxOccurs 的值来实现...例如..

<xs:element name="person">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="full_name" type="xs:string"/>
      <xs:element name="child_name" type="xs:string"
      maxOccurs="10" minOccurs="10"/>
    </xs:sequence>
  </xs:complexType>
</xs:element>

有具体的方法吗?

【问题讨论】:

    标签: xml xsd xsd-validation xml-validation


    【解决方案1】:

    没有单独的基数约束,例如 exactlyOccurs - 只需使用 minOccursmaxOccurs 设置为您预期的相同值。

    【讨论】:

    • 但是要小心你的要求:每一个像这样的约束最终都会反过来咬你。是的,当然每年正好有四个季度。但是当年,或者你开始的那一年,或者你被另一家公司收购的那一年呢?请记住,完整性约束是阻止用户做他们想做的事情的规则,包括他们有充分理由想做的事情。
    猜你喜欢
    • 2014-10-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多