<?xml version="1.0"?>
<note xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
<to>Tove</to>
<from>Jani</from>
<heading>Reminder</heading>
<body>Don't forget me this weekend!</body>
</note>
XSD:
<?xml version="1.0"?> (1)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" (2)
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
<xs:element name="note"> (3)
<xs:complexType> (4)
<xs:sequence> (5)
<xs:element name="to" type="xs:string"/> (6)
<xs:element name="from" type="xs:string"/> (7)
<xs:element name="heading" type="xs:string"/> (8)
<xs:element name="body" type="xs:string"/> (9)
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
说明如下:
(1)<?xml version="1.0" ncoding="UTF-8"?>
XML文档定义,描述本文档使用的XML标准版本及文档编码标准。
(2)<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">
l <xs:schema> 是所有XSD文档的根元素,其属性描述文档的名空间及文档引用;
l xmlns:xs="http://www.w3.org/2001/XMLSchema" 指示使用xs:作前缀的元素、属性、类型等名称是属于http://www.w3.org/2001/XMLSchema名空间的。
l targetNamespace="http://www.w3schools.com" 指示本文档定义的元素、属性、类型等名称属于http://www.w3schools.com名空间;
l xmlns="http://www.w3schools.com" 指示缺省的名空间是http://www. w3schools.com,即没有前缀的元素、属性、类型等名称是属于该名空间的。
l elementFormDefault="qualified" 指示使用本XSD定义的XML文档所使用的元素必须在本文档中定义且使用名空间前缀。
(3)<xs:element name="note">
定义一个元素,该元素的名称是note,即XML中的<note>;
(4)<xs:complexType>
<note>元素的类型是复杂类型,具体格式由子元素定义;
(5)<xs:sequence>
<note>元素的子元素必须按顺序出现。具体的顺序由子元素的定义顺序决定;
(6)<xs:element name="to" type="xs:string"/>
定义一个元素<to>,其类型是string,且其是<note>的第1个子元素;
(7)<xs:element name="from" type="xs:string"/>
定义一个元素<from>,其类型是string,且其是<note>的第2个子元素;
(8)<xs:element name="heading" type="xs:string"/>
定义一个元素<heading>,其类型是string,且其是<note>的第3个子元素;
(9)<xs:element name="body" type="xs:string"/>
定义一个元素<body>,其类型是string,且其是<note>的第4个子元素;
上面的说明可以看出我们描述的XML文档应满足这些要求:根元素是<note>;<note>可以包含四个子元素,分别是<to>、<from>、<heading>、<body>,且必须按<to>、<from>、<heading>、<body>的顺序出现;四个子元素都是string类型的。