XML Schema 可形貌 XML 文档的构造。
XML Schema 言语也可作为 XSD(XML Schema Definition)来援用。
您应该具有的基础学问
在继承进修之前,您需要对下面的学问有基础的相识:
HTML / XHTML
XML 以及 XML 定名空间
对 DTD 的基础相识
如果您愿望起首进修这些项目,请在 首页 接见这些教程。
什么是 XML Schema?
XML Schema 的作用是定义 XML 文档的正当构建模块,相似 DTD。
XML Schema:
定义可出如今文档中的元素
定义可出如今文档中的属性
定义哪一个元素是子元素
定义子元素的序次
定义子元素的数量
定义元素是不是为空,或许是不是可包括文本
定义元素和属性的数据范例
定义元素和属性的默认值以及固定值
XML Schema 是 DTD 的继任者
我们以为 XML Schema 很快会在大部分收集应用程序中庖代 DTD。
来由以下:
XML Schema 可针对将来的需求举行扩大
XML Schema 更完美,功用更壮大
XML Schema 基于 XML 编写
XML Schema 支撑数据范例
XML Schema 支撑定名空间
为何运用XML Schema?
XML Schema 比 DTD 更壮大。
XML Schema 支撑数据范例
XML Schema 最主要的才能之一就是对数据范例的支撑。
经由过程对数据范例的支撑:
可更容易地形貌许可的文档内容
可更容易地考证数据的正确性
可更容易地与来自数据库的数据一并事情
可更容易地定义数据束缚(data facets)
可更容易地定义数据模型(或称数据花样)
可更容易地在差别的数据范例间转换数据
编者注:数据束缚,或称 facets,是 XML Schema 原型中的一个术语,中文可译为“面”,用来束缚数据范例的允许值。
XML Schema 运用 XML 语法
另一个关于 XML Schema 的主要特征是,它们由 XML 编写。
由 XML 编写 XML Schema 有许多优点:
没必要进修新的言语
可运用 XML 编辑器来编辑 Schema 文件
可运用 XML 剖析器来剖析 Schema 文件
可经由过程 XML DOM 来处置惩罚 Schema
可经由过程 XSLT 来转换 Schema
XML Schema 可庇护数据通信
当数据从发送方被发送到接受方时,其要点是两边应有关于内容的雷同的“期望值”。
经由过程 XML Schema,发送方能够用一种接受方能够邃晓的体式格局来形貌数据。
一种数据,比方 "03-11-2004",在某些国度被解释为11月3日,而在另一些国度为看成3月11日。
然则一个带有数据范例的 XML 元素,比方:<date type="date">2004-03-11</date>,可确保对内容一致的明白,这是由于 XML 的数据范例 "date" 请求的花样是 "YYYY-MM-DD"。
XML Schema 可扩大
XML Schema 是可扩大的,由于它们由 XML 编写。
经由过程可扩大的 Schema 定义,您能够:
在其他 Schema 中重复运用您的 Schema
建立由规范范例衍生而来的您本身的数据范例
在雷同的文档中援用多重的 Schema
情势优越是不够的
我们把相符 XML 语法的文档称为情势优越的 XML 文档,比方:
它必需以 XML 声明开首
它必需具有唯一的根元素
最先标签必需与完毕标签相匹配
元素对大小写敏感
一切的元素都必需封闭
一切的元素都必需正确地嵌套
必需对特别字符运用实体
纵然文档的情势优越,依然不能保证它们不会包括毛病,而且这些毛病可能会发生严峻的效果。
请斟酌下面的状况:您订购的了 5 打激光打印机,而不是 5 台。经由过程 XML Schema,大部分如许的毛病会被您的考证软件捕获到。
怎样运用XML Schema
XML 文档可对 DTD 或 XML Schema 举行援用。
一个简朴的 XML 文档:
请看这个名为 "note.xml" 的 XML 文档:
<?xml version="1.0"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
DTD 文件
下面这个例子是名为 "note.dtd" 的 DTD 文件,它对上面谁人 XML 文档的元素举行了定义:
<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from (#PCDATA)> <!ELEMENT heading (#PCDATA)> <!ELEMENT body (#PCDATA)>
第 1 行定义 note 元素有四个子元素:"to, from, heading, body"。
第 2-5 行定义了 to, from, heading, body 元素的范例是 "#PCDATA"。
XML Schema
下面这个例子是一个名为 "note.xsd" 的 XML Schema 文件,它定义了上面谁人 XML 文档的元素:
<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.w3school.com.cn" xmlns="http://www.w3school.com.cn" elementFormDefault="qualified"> <xs:element name="note"> <xs:complexType> <xs:sequence> <xs:element name="to" type="xs:string"/> <xs:element name="from" type="xs:string"/> <xs:element name="heading" type="xs:string"/> <xs:element name="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
note 元素是一个复合范例,由于它包括其他的子元素。其他元素 (to, from, heading, body) 是浅易范例,由于它们没有包括其他元素。您将鄙人面的章节进修更多有关复合范例和浅易范例的学问。
对 DTD 的援用
此文件包括对 DTD 的援用:
<?xml version="1.0"?><!DOCTYPE note SYSTEM "http://www.w3school.com.cn/dtd/note.dtd"><note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
对 XML Schema 的援用
此文件包括对 XML Schema 的援用:
<?xml version="1.0"?> <note xmlns="http://www.w3school.com.cn" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://www.w3school.com.cn note.xsd"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note>
以上就是猖獗XML进修笔记(7)-----------XML Schema的内容,更多相关内容请关注ki4网(www.ki4.cn)!