我在段Type
中有一个名为Order
的段的XML(作为示例)。该段是一对多的,所以我们有类似的东西:
<Order>
<Type>1</Type>
<Type>2</Type>
<Type>3</Type>
</Order>
现在验证应该是,Type
段中应始终存在值{1}的段Order
,否则,应发生验证错误。我尝试了一些验证,但无法得到正确的结果。有人想过如何实现这个,如果可能的话?
答案 0 :(得分:2)
您的约束无法在XSD 1.0中表示。
您的约束可以在XSD 1.1中表达,使用断言声明至少有一个Type
Order
子项的值为{{1} }:
1
答案 1 :(得分:1)
在 XSD 1.1 中,您可以使用xs:assert
元素:
<xs:element name="Order">
<xs:complexType>
<xs:sequence maxOccurs="unbounded">
<xs:element name="Type" type="xs:string"/>
</xs:sequence>
<xs:assert test="count(Type[text() = '1']) > 0"/>
</xs:complexType>
</xs:element>