不!他们不一样!
在第一个模式中:元素<tuple>
下可以有 0 个或多个元素,具有/具有任何名称,这是因为您添加了带有元素定义的<any>
标签,minOccurs="0"
并且由于您在它下maxOccurs="Unbounded"
指定了它不会打扰它的子元素。complexType
tuple
processContents="skip"
<any>
例子:
<tuple>
<foo>data</foo>
<bar foobarattribute="foobardata">data</bar>
</tuple>
如您所见,虽然XSD 中没有定义 and 及其属性,但它允许此 XML 为foo
有效bar
。但它不允许属性在foobarattribute
<tuple>
编辑:
第二种模式:
与声明类型相同anyType
<xsd:element name="tuple" type="xs:anyType"/>
这意味着它允许元组下的任何元素和任何属性。示例 XML 如下所示:
<tuple foo="bar">
<foobar attrb="value">data</foobar>
</tuple>
您可以观察到,与第一个示例 XML 不同,它也具有 under 属性<tuple>
。
两个示例 XSD 代码之间的另一个重要区别是:在第一个代码中,您将 processContents 指定为“skip”:因此 XML 处理器不会尝试验证来自指定名称空间的任何元素。
在第二个代码中,对于 anyType,processContents 将是“宽松的”:因此 XML 处理器尝试获取所需名称空间的模式并验证元素。
希望能帮助到你..