w3shool也有点击打开链接
1.最简单的Schema文档
如何写一个最简单的XML
Schema文档呢?
首先,我们写出一个最简单的XML文档。
hello.xml
-------------------
<?xml
version="1.0"?>
<greeting>Hello
World!!</greeting>
hello.xsd
----------
<?xml
version="1.0"?>
<xsd:schema
xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<xsd:element
name="greeting"
type="xsd:string"/>
</xsd:schema>
</xsd:schema>
XML
Schema文档后缀名是.xsd,完全符合XML语法,根元素是schema,命名空间xmlns:xsd="
http://www.w3.org/2001/XMLSchema,用元素<element>定义实例文档中的元素,如greeting。
2.含子元素的Schema文档
假设实例文档是如下的:
customer.xml
-----------
<customer>
<name>teiki</name>
<address>No.237,Road
Waitan,Shanghai</address>
</customer>
则可以写出以下的XML
Schema文档:
customer.xsd
----------------
<?xml
version="1.0"?>
<xsd:schema
xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<xsd:element
name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="name"
type="xsd:string"/>
<xsd:element
name="address"
type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
实例文档customer.xml中,<customer>元素含有两个子元素,所以我们在Schema文档中采用ComplexType来定义该元素。sequence表示子元素依次出现的顺序。
3.含子元素和孙元素的Schema文档
这次我们给出一个更加复杂一些的文档:
customer.xml
---------------
<customer>
<name>Teiki</name>
<address>
<!--
address追加一个地址子元素
-->
<prefecture>Zhejiang</prefecture>
<city>Hangzhou</city>
<street>Xilu
Road,No.121,7F</street>
</address>
</customer>
为此,我们需要一个更加复杂一点的Schema文档:
address.xsd
-----------------
<?xml
version="1.0"?>
<xsd:schema
xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<xsd:element
name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="name"
type="xsd:string"/>
<!--
追加子元素address-->
<xsd:element
name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="prefecture"
type="xsd:string"/>
<xsd:element
name="city"
type="xsd:string"
/>
<xsd:element
name="street"
type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:complexType>
</xsd:element>
</xsd:schema>
不过,我们还可以采用ref元素来重新编写这个Schema文档:
address2.xsd
----------------------
<?xml
version="1.0"?>
<xsd:schema
xmlns:xsd="
http://www.w3.org/2001/XMLSchema">
<xsd:element
name="customer">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="name"
type="xsd:string"/>
<xsd:element
ref="address"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element
name="address">
<xsd:complexType>
<xsd:sequence>
<xsd:element
name="prefecture"
type="xsd:string"/>
<xsd:element
name="city"
type="xsd:string"
/>
<xsd:element
name="street"
type="xsd:string"
/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>