当前位置: 首页 > 网络学院 > XML相关教程 > Schema (XSD) > XSD <any> 元素

Schema (XSD)
XSD 逻辑值数据类型
XML Schema总结
XML Schema 参考
XSD 验证

Schema (XSD) 中的 XSD <any> 元素


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-03-01   浏览: 770 ::
收藏到网摘: n/a

The <any> element enables us to extend the XML document with elements not specified by the schema!
<any>元素能够使我们在XML文档中添加未被 schema 定义过的新元素从而扩充XML文档。


The <any> Element
<any>元素

The <any> element enables us to extend the XML document with elements not specified by the schema.
<any>元素能够使我们在XML文档中添加未被 schema 定义过的新元素从而扩充XML文档。

The following example is a fragment from an XML schema called "family.xsd". It shows a declaration for the "person" element. By using the <any> element we can extend (after <lastname>) the content of "person" with any element:
下述案例是名为"family.xsd"的一份 XML Schema 片段。它指定了"person"元素的声明。通过使用<any>元素,我们可以在<lastname> 的后面扩充"person"元素内容中的任意元素:

<xs:element name="person">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>

<xs:element name="lastname" type="xs:string"/>
<xs:any minOccurs="0"/>
</xs:sequence>
</xs:complexType>

</xs:element>

Now we want to extend the "person" element with a "children" element. In this case we can do so, even if the author of the schema above never declared any "children" element.
现在,我们希望在"person"元素中添加一个"children"元素。虽然这篇schema的作者从未声明过什么"children"元素,但是,我们一样可以做到。

Look at this schema file, called "children.xsd":
请看下面这份名为"children.xsd"的schema文件:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="children">
<xs:complexType>

<xs:sequence>
<xs:element name="childname" type="xs:string"
maxOccurs="unbounded"/>
</xs:sequence>

</xs:complexType>
</xs:element>
</xs:schema>

The XML file below (called "Myfamily.xml"), uses components from two different schemas; "family.xsd" and "children.xsd":
下面这份名为"Myfamily.xml"的XML文件,使用了来自于 "family.xsd" 和 "children.xsd" 两篇不同schema的组件:

<?xml version="1.0" encoding="ISO-8859-1"?>
<persons xmlns="http://www.microsoft.com"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:SchemaLocation="http://www.microsoft.com family.xsd
http://www.w3schools.com children.xsd">
<person>
<firstname>Hege</firstname>
<lastname>Refsnes</lastname>

<children>
<childname>Cecilie</childname>
</children>
</person>
<person>
<firstname>Stale</firstname>

<lastname>Refsnes</lastname>
</person>
</persons>

The XML file above is valid because the schema "family.xsd" allows us to extend the "person" element with an optional element after the "lastname" element.
上述XML文件是有效的,因为名为"family.xsd"的schema文件允许我们在"person"元素中的"lastname"元素后面扩充一个任意元素。

The <any> and <anyAttribute> elements are used to make EXTENSIBLE documents! They allow documents to contain additional elements that are not declared in the main XML schema.
<any> 和 <anyAttribute> 元素是用于创建可扩展文档的!它们允许文档中包含未在主体XML schema文件中声明过的其它新元素。

评论 (0) All

登陆 | 还没注册?