一、XML Schema简介
XML Schema 使用一套预先定义好元素和属性
二、XML Schema的定义和使用
1.编写数据XML文件
2.编写Schema文件 .xsd
引入W3C名称空间:xmlns=”http://www.w3.org/2001/XMLSchema”
编写schema内容,对每一个元素,用一个<elementname=””></element>表示,包含其他元素的元素称为复杂元素,需要加<complexType></complexType>,在复杂元素中,如果需要保持子元素的顺序,可以添加<sequence></sequence>。对与不包含其他元素的元素称为简单元素,简单元素需要指定其type类型
通过targetNamespace为schema定义元素指定名称空间URI(URI可以是任意路径,本文中的名称空间URI为http://www.longshengguoji.cn/books),这样方便其他人也可以是自己在定义xml文件的时候引用。
<?xml version="1.0" encoding="UTF-8"?> <schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.longshengguoji.cn/books" xmlns:tns="http://www.example.org/books" elementFormDefault="qualified"> <element name="books"> <!-- 包含子元素的元素 为复杂元素,用complexType --> <complexType> <!-- 强调子元素的顺序,需要使用sequence --> <span style="white-space:pre"> </span><sequence> <span style="white-space:pre"> </span><!-- 指定book元素可以出现多次,最少出现一次 --> <span style="white-space:pre"> </span><element name="book" minOccurs="1" maxOccurs="unbounded"> <span style="white-space:pre"> </span><complexType> <span style="white-space:pre"> </span><sequence> <span style="white-space:pre"> </span><!-- 对于简单元素,编写type属性 --> <span style="white-space:pre"> </span><element name="bookname" type="string"></element> <span style="white-space:pre"> </span><element name="price" type="double"></element> <span style="white-space:pre"> </span></sequence> <span style="white-space:pre"> </span> <span style="white-space:pre"> </span></complexType> <span style="white-space:pre"> </span></element> <span style="white-space:pre"> </span></sequence> </complexType> </element> </schema>
3.在xml实例文件中引用自定义schema名称空间,此处名称空间为第2步中定义的名称空间,此处为http://www.longshengguoji.cn/books
4.声明xml文件是一个应用schema的文件,这一句代码是固定的:
xmlsn:xsi=http://www.w3.org/2001/XMLSchema-instance
5.知道schema文件位置,代码语句为:
xsi:schemaLocation="http://www.longshengguoji.org/booksbooks.xsd">
该代码的前半部分http://www.longshengguoji.org/books为名称空间,后半部分books.xsd为schema文件位置
完整代码为:
<?xml version="1.0" encoding="UTF-8"?> <books xmlns="http://www.longshengguoji.cn/books" xmlsn:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.longshengguoji.org/books books.xsd"> <book> <bookname>数据结构</bookname> <price>98</price> </book> </books>