我使用xsd:all
在复杂的类型。 当我错过任何强制性内容,同时验证它会显示所有元素。 它不会显示确切错过元素。
但是,如果我使用xsd:sequence
我能得到确切错过元素。
有没有这两者之间有什么区别?
xsd:sequence
:XML元素必须以相同的顺序。
但xsd:all
:XML元素可以是任意顺序。
我使用xsd:all
在复杂的类型。 当我错过任何强制性内容,同时验证它会显示所有元素。 它不会显示确切错过元素。
但是,如果我使用xsd:sequence
我能得到确切错过元素。
有没有这两者之间有什么区别?
xsd:sequence
:XML元素必须以相同的顺序。
但xsd:all
:XML元素可以是任意顺序。
<xsd:all>
指定子元素可以以任何顺序出现。
<xsd:sequence>
指定子元素只能出现在所提及的顺序。
例如,对于序列:
<xs:element name="compElement">
<xs:complexType>
<xs:sequence>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
如果您从这个XSD的XML,然后,它会是这个样子:
<compElement>
<ele1>First</ele1>
<ele2>Second</ele2>
<ele3>Third</ele3>
<ele4>Fourth</ele4>
</compElement>
例如,对于所有:
<xs:element name="compElement">
<xs:complexType>
<xs:all>
<xs:element name="ele1" type="xs:string"/>
<xs:element name="ele2" type="xs:string"/>
<xs:element name="ele3" type="xs:string"/>
<xs:element name="ele4" type="xs:string"/>
</xs:all>
</xs:complexType>
</xs:element>
如果从这个XSD创建一个XML文件,那么它会是这个样子:
<compElement>
<ele2>Second</ele2>
<ele1>First</ele1>
<ele4>Fourth</ele4>
<ele3>Third</ele3>
</compElement>
更多信息的XSD:所有
更多信息的XSD:序列
希望我回答你的问题。
区别:
从W3Schools的教程这里和这里 。
所有指标
所述
<all>
指示符指示所述子元素可以以任何顺序出现,并且每个子元素必须只出现一次:
序列指标
所述
<sequence>
指示符指示所述子元素必须出现在一个特定的顺序:
引用链接
该模式仅仅定义什么是标准的文件。
如何不遵守报道完全取决于验证。 没有什么从报告究竟哪些领域缺少停止验证,但显然你使用一个在这种情况下没有。
这是否是一个错误或设计,你将不得不与验证程序的供应商进行讨论。
当我们在代码中使用,表示所有被该复杂类型声明必须出现在XML文档中的顺序相同的元素。 否则,你会得到一个错误。 对于没有必要指定正确的顺序元素。