基于元素的XSD断言使得其他复杂元素子可选

时间:2017-11-17 11:38:16

标签: xml xsd xsd-validation xsd-1.1

我们怎样才能让孩子minOccur在父母的其他元素的基础上定义。例如。

flagExist 如果 true ,那么 ComplexTypeObject 子元素可以是可选的。如果 flagExist false ,则子元素 ComplexTypeObject 必须为必填项。

<xs:group name="GroupObject">
    <xs:sequence>
        <xs:element name="flagExist" type="xs:boolean"/>                                                
        <xs:element name="ComplexTypeObject" type="foo:ComplexTypeObject" minOccurs="0"/>       
    </xs:sequence>
</xs:group>
<xs:complexType name="ComplexTypeObject">
    <xs:sequence>
        <xs:element name="One" type="xs:boolean"/>                          
        <xs:element name="Two" type="xs:string"/>                   
        <xs:element name="Three" type="xs:date"/>
    </xs:sequence>
</xs:complexType>   

与现有问题(Require XML element in XSD when another element has certain value?)中的问题略有不同。在这种情况下,ComplexTypeObject.One ComplexTypeObject.two ComplexTypeObject.Three中的元素必须是可选的,具体取决于flagExist的true / false值

0 个答案:

没有答案