use*_*378 72 xml xsd xml-validation xsd-validation
我正在使用xsd:all复杂的类型.当我错过任何强制性元素,同时验证它将显示所有元素.它不会显示确切的遗漏元素.
但如果我使用,xsd:sequence我可以得到确切的遗漏元素.
这两者有什么区别吗?
xsd:sequence:XML元素必须处于相同的顺序.
但是xsd:all:XML元素可以是任何顺序.
Mad*_*shi 120
<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>
Run Code Online (Sandbox Code Playgroud)
如果您从此xsd创建XML,那么它将如下所示:
<compElement>
<ele1>First</ele1>
<ele2>Second</ele2>
<ele3>Third</ele3>
<ele4>Fourth</ele4>
</compElement>
Run Code Online (Sandbox Code Playgroud)
全部示例:
<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>
Run Code Online (Sandbox Code Playgroud)
如果您从此xsd创建XML文件,那么它可能看起来像这样:
<compElement>
<ele2>Second</ele2>
<ele1>First</ele1>
<ele4>Fourth</ele4>
<ele3>Third</ele3>
</compElement>
Run Code Online (Sandbox Code Playgroud)
有关 xsd的
更多信息:有关xsd:sequence的所有更多信息
希望我回答你的问题.
kam*_*uel 18
区别:
该模式仅定义什么构成合规文档。
如何报告不合规情况完全取决于验证者。没有什么可以阻止验证器准确报告缺少哪些字段,但显然您使用的验证器在这种情况下不会报告。
无论这是一个错误还是设计使然,您都必须与验证器的提供者讨论。
| 归档时间: |
|
| 查看次数: |
83723 次 |
| 最近记录: |