前面学习了DTD,同样我们有了一套更完善的定义法则-Schema。下面围绕Schema是什么,为何用以及怎么用谈谈自己的感受。
XML Schema是基于XML的DTD替代者。
XML Schema可描述XML文档的结构。
XML Schema语言可作为XSD(XML Schema Definition)来引用。
是什么
XML Schema的作用是定义XML文档的合法构建模块,类似DTD。
XML Schema是DTD的继任者。
XML是W3C标准。
为何用
我们已经有了DTD,为何还要用XML Schema,当然它有自身的优越性。
XML Schema比DTD更强大:
XML Schema支持数据类型
XML Schema使用XML语法
XML Schema可保护数据通信
XML Schema可扩展
形式良好的XML文档是不够的,通过XML Schema,大部分这样的错误会被您的验证软件捕获到。
怎么用
XML文档可对DTD或XML Schema进行引用。
一个简单的XML文档:
请看这个名为"note.xml"的XML文档:
<span style="font-size:18px;"><?xml version="1.0"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don't forget the meeting!</body> </note></span>DTD文件
下面这个例子是名为"note.dtd"的DTD文件,它对上面那个XML文档的元素进行了定义:
<!ELEMENT note (to, from, heading, body)> <!ELEMENT to (#PCDATA)> <!ELEMENT from(#PCDATA)> <!ELEMENT heading(#PCDATA)> <!ELEMENT body(#PCDATA)>XML Schema
<span style="font-size:18px;"><?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="httpk://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></span>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>小结
Schema的知识不止这些,还学要深入地了解和学习。学习了如何使用XML Schema来定义XML文档的合法元素,就像DTD。我们应该认识到,XML Schema作为DTD的替代者,会很快被应用于大多数Web应用程序中。
原文地址:http://blog.csdn.net/qwlzxx/article/details/46637329