XSD选择,不是同一个元素

时间:2013-04-19 06:11:58

标签: xml xsd

如何使用选择并在组中设置您必须选择最少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组应仅选择Ports组的1-3元素。第2组应该只选择元素1-10!我怎么能意识到这一点?

1 个答案:

答案 0 :(得分:1)

在XSD 1.0中,对于通用案例,没有针对您想要的解决方案。您必须应用Schematron约束或移至XSD 1.1。