【问题标题】:XSD Choice, not the same element againXSD 选择,又不是同一个元素
【发布时间】:2013-04-20 00:58:58
【问题描述】:

如何使用选项并在组中设置您必须选择最少 2 个元素,但不能选择相同元素的两倍????

示例代码:

 xs:group name="Ports">
  <xs:sequence>
    <xs:choice minOccurs="2" maxOccurs="2">
    <xs:element name="Port1" minOccurs="0" maxOccurs="1">
            <xs:complexType>
            <xs:sequence>
                <xs:group ref="PortArguments"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element> 

    <xs:element name="Port2">
            <xs:complexType>
            <xs:sequence>
                <xs:group ref="PortArguments"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element> 
    </xs:choice>

另一个问题:是否可以限制组中元素的访问?例如:我要到其他组。组 1 应该只选择端口组的元素 1-3。第 2 组应该只选择元素 1-10 !!我怎么能意识到这一点?

【问题讨论】:

  • 试试xs:all?我从来没有,但看看。
  • 您能详细说明您的要求吗?可能是一个示例 XML 可以做到这一点..
  • 详细说明您的要求是什么意思?
  • 我认为 xs:all 不对,因为它说元素可以出现一次或零次。但我的要求是:我有一个包含多个端口的列表,我想定义一个应该出现的最小值。但应该不可能两次选择一个元素

标签: xml xsd


【解决方案1】:

在 XSD 1.0 中,对于一般情况,没有您想要的解决方案。您必须应用 Schematron 约束或迁移到 XSD 1.1。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-04
    • 2019-03-25
    • 2018-10-01
    • 1970-01-01
    相关资源
    最近更新 更多