【问题标题】:XSD validation for enum values枚举值的 XSD 验证
【发布时间】:2011-04-08 07:37:45
【问题描述】:

是否可以限制元素值出现指定次数? 例如:

<sample>
   <values>
       <value>SAMPLE1</value>
       <value>SAMPLE1</value>
   </values>
</sample>

可能的值为“SAMPLE1”、“SAMPLE2”、“SAMPLE3”。最多可以出现 3 次,但每个值必须是唯一的。

在示例中,“SAMPLE1”出现了两次,这是不正确的。是否可以在 XSD 中限制这一点?

【问题讨论】:

  • xsd sequence 应该在这里提供帮助。
  • @khachik,问题是关于限制元素的可能值。在问题中,我们如何限制“SAMPLE1”只出现一次?

标签: xml validation xsd


【解决方案1】:

您可以使&lt;value&gt; 在特定范围内是唯一的(例如在&lt;values&gt; 中)。示例如下:

<xs:element name="sample" type="SampleType">
    <xs:unique name="valueKey">
        <xs:selector xpath="*/values"/>
        <xs:field xpath="value"/>
    </xs:unique>
</xs:element>

使用selector 元素定义范围,使用field 定义哪个元素在范围内应该是唯一的。

有关详细信息,请参阅documentation

【讨论】:

    【解决方案2】:

    如果数字是 0 或 1,您可以限制该值出现“指定的次数”:使用 Oleg 所述的 xs:unique。如果您想要一个不同的号码,您将需要 XSD 1.1 中的 xs:assert。

    【讨论】:

      猜你喜欢
      • 2010-09-06
      • 2017-12-14
      • 1970-01-01
      • 2015-08-02
      • 1970-01-01
      • 2021-06-20
      • 1970-01-01
      • 2019-06-05
      • 2014-07-26
      相关资源
      最近更新 更多