我是 xml 新手,我正在尝试理解 xsd:all 元素。正如 MSDN 所说:
xsd:all 允许组中的元素在包含元素中以任何顺序出现(或不出现)。
所以,据我所知,如果我们做一个 xsd 模式的简单示例:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" >
<xsd:element name = "MyElem">
<xsd:complexType>
<xsd:all>
<xsd:element name = "name" type = "xsd:string" />
<xsd:element name = "lastname" type = "xsd:string" />
<xsd:element name = "city" type = "xsd:string" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
然后我们可以有一个这样的xml文件:
<MyElem xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="Example.xsd" >
<name>"some_name"</name>
<lastname>"some_last_name"</lastname>
<city>"somecity"</city>
</MyElem>
这很清楚。但是,当我尝试不向MyElem提供任何元素时,正如定义中提到的那样(允许元素出现或不出现),我在 xml 文件中得到错误,它说:
在这个位置预计会有以下元素。
我正在使用 Altova xmlSpy xml 编辑器。
我是否正确理解元素可能会或可能不会出现在包含元素中?
谢谢你的帮助。