我有一个XML Schema,其片段如下所示:
inputFields
我想对列表outputFields
和{{1}}的大小进行限制/验证。
我怎样才能在XML Schema中实现它?
答案 0 :(得分:2)
您可以通过将inputFields
和outputFields
中的数字元素的数量限制为相等来通过XSD 1.1中的断言来执行此操作:
<xs:assert test="count(inputFields/field) = count(outputFields/field)"/>
您可以将其放在包含inputFields
和outputFields
的元素声明中。
您无法在XSD 1.0中使用xs:assert
,并且无法根据您当前的XML设计表达您的约束。但是,如果您重新设计了XML,以便首先将输入和输出字段配对在一起,
<xs:sequence maxOccurs="unbounded">
<xs:element name="inputField" type="field"/>
<xs:element name="outputField" type="field"/>
</xs:sequence>
你自然会将它们的出现次数限制为相等,并且你可以使用XSD 1.0。