xml的另一个助手——schema
一、什么是schema?
描述XML 文档结构,同DTD的功能是一样的。 基于XML的DTD替代者。 简称XSD(XML SchemaData)。 二、与DTD 异同
Schema :自身是一种xml 文件。处理统一,替代 了DTD。
DTD :自身不是XML文件,无法通过统一方式进行处理。 Schema 优势: 针对未来需求进行扩展。 功能更完善,强大。 基于XML 编写。 支持数据类型(数据类型多,支持范围广)。——保护数据通信 三、构成 Schema 使用XML 语法,构成和DTD一样,同样有元素和属性。 元素 <xs:element name="note" type="xs:string"/> 在此处,note指属性名称,xs:string 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。 属性 <xs:attributename="xxx" type="yyy"/> 在此处,xxx指属性名称,yyy 则规定属性的数据类型。XML Schema 拥有很多内建的数据类型。 四、使用——对比DTD
一个简单的 XML 文档: 请看这个名为"note.xml" 的 XML 文档: <?xmlversion="1.0"?> <note> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don'tforget the meeting!</body> </note> DTD 和Schema 分别对上面那个 XML 文档的元素进行了定义: DTD 文件 <!ELEMENTnote (to,from,heading,body)> <!ELEMENTto (#PCDATA)> <!ELEMENTfrom (#PCDATA)> <!ELEMENTheading (#PCDATA)> <!ELEMENTbody (#PCDATA)> 第1 行定义 note 元素有四个子元素:"to,body"。 第2-5 行定义了 to,body 元素的类型是 "#PCDATA"。 XML Schema <?xmlversion="1.0"?> <xs:schemaxmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:elementname="note"> <xs:complexType> <xs:sequence> <xs:elementname="to" type="xs:string"/> <xs:elementname="from" type="xs:string"/> <xs:elementname="heading" type="xs:string"/> <xs:elementname="body" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:schema> note元素是一个复合类型,因为它包含其他的子元素。其他元素 (to,body) 是简易类型,因为它们没有包含其他元素。 对 DTD 的引用 <?xmlversion="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'tforget the meeting!</body> </note> 对 XML Schema 的引用 <?xmlversion="1.0"?> <note xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.w3school.com.cnnote.xsd"> <to>George</to> <from>John</from> <heading>Reminder</heading> <body>Don'tforget the meeting!</body> </note>
五、验证 通过专用工具,一般检查不出来,只是检查XML 是不是合理的。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |