Xml XSD:基于属性检查子元素的顺序
我试图检查xml中子元素的顺序 我的xml是Xml XSD:基于属性检查子元素的顺序,xml,xsd,Xml,Xsd,我试图检查xml中子元素的顺序 我的xml是 <main> <col name="name1">test1</col> <col name="name2">test2</col> <col name="name3">test3</col> <col name="name4">test4</col> <col name="num1">true</col> </m
<main>
<col name="name1">test1</col>
<col name="name2">test2</col>
<col name="name3">test3</col>
<col name="name4">test4</col>
<col name="num1">true</col>
</main>
测试1
测试2
测试3
测试4
真的
我需要验证子元素是否以正确的顺序显示。我的文件中的子元素都有相同的名称,但属性不同
<xs:element minOccurs="0" maxOccurs="unbounded" name="col">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type ="OrderCheck" use="required" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
我最想做的事
<xs:complexType name="OrderCheck">
<xs:sequence>
<xs:element name="name1" type="xs:string"/>
<xs:element name="name2" type="xs:string"/>
<xs:element name="name3" type="xs:string"/>
<xs:element name="name4" type="xs:string"/>
<xs:element name="num1" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
为了能够使用xs:sequence,我需要定义一个xs:complexType,但是我不能在“attribute”类型下定义一个complexType,我只能定义一个简单类型。但是我不能在simpleType下使用xs:sequence。如何修复此问题?不幸的是,XSD 1.0无法实现您想要的操作。使用
sequence
可以指定不同类型的所需顺序,但不能指定具有不同数据的相同类型
我相信这是可以用的 不幸的是,XSD 1.0不可能实现您想要的功能。使用
sequence
可以指定不同类型的所需顺序,但不能指定具有不同数据的相同类型
我相信这是可以用的 如果您可以使用XSD 1.1(在Xerces beta和Saxon EE中实现),那么您可以通过断言来实现这一点
在这种情况下,另一种有时很有用的技术是将验证过程实现为两个阶段的管道,包括转换和验证步骤。转换通常会转换为
<col name="name1">test1</col>
test1
到
test1
然后您就有了一个易于接受XSD 1.0验证的结构。如果您可以使用XSD 1.1(在Xerces beta和Saxon EE中实现),那么您可以通过断言来实现这一点
在这种情况下,另一种有时很有用的技术是将验证过程实现为两个阶段的管道,包括转换和验证步骤。转换通常会转换为
<col name="name1">test1</col>
test1
到
test1
然后您就有了一个易于接受XSD1.0验证的结构