码迷,mamicode.com
首页 > 其他好文 > 详细

XML Schema学习札记(1)——基础总览

时间:2017-05-01 11:12:08      阅读:194      评论:0      收藏:0      [点我收藏+]

标签:空间   lin   分网   bar   sim   包括   cell   content   类型   

内容整理自:www.w3school.com.cn

转载自:http://www.xgezhang.com/xml_schema_1.html


什么是XML Schema?

  • XML Schema 是基于 XML 的 DTD 替代者。
  • XML Schema 可描写叙述 XML 文档的结构,并对其进行制约和校验。
  • XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。

它能够:

  • 定义可出如今文档中的元素
  • 定义可出如今文档中的属性
  • 定义哪个元素是子元素
  • 定义子元素的次序
  • 定义子元素的数目
  • 定义元素是否为空,或者是否可包括文本
  • 定义元素和属性的数据类型
  • 定义元素和属性的默认值以及固定值

XML Schema 是 DTD 的继任者:

    我们觉得 XML Schema 非常快会在大部分网络应用程序中代替 DTD,理由例如以下

  • XML Schema 可针对未来的需求进行扩展
  • XML Schema 更完好,功能更强大
  • XML Schema 基于 XML 编写
  • XML Schema 支持数据类型
  • XML Schema 支持命名空间

一个简单样例:

1
2
3
4
5
6
7
<?

xml version="1.0"?>

<note>
<to>George</to>
<from>John</from>
<heading>Reminder</heading>
<body>Don‘t forget the meeting!</body>
</note>

它相应的note.xsd的Schema文件例如以下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0"?

>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="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>

    能够看到。使用XML Schema有非常多优点和优势。比方它不须要学习新的语言、可使用 XML 编辑器来编辑 Schema 文件、可使用 XML 解析器来解析 Schema 文件等。

它还有很多其它的优点在后面介绍。

XML Schema支持对DTD的引用,以及对XML Schema本身的引用。參看以下两个样例:

    对外部DTD的引用:

1
2
3
4
5
<?xml version="1.0"?>
<note>
...
</note>

    对外部XML Schema的引用:

1
2
3
4
5
6
7
8
<?

xml version="1.0"?>

<note
xsi:schemaLocation="http://www.w3school.com.cn note.xsd">
 
...
</note>



<schema> 元素是每个 XML Schema 的根元素。

    即每个XML Schema文件都是已<schema></schema>为头和尾的,这里面能够包括属性。一个 schema 声明往往看上去类似这样:

1
2
3
4
5
6
7
8
9
10
<?xml version="1.0"?>
  
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.w3school.com.cn"
elementFormDefault="qualified">
 
...
...
</xs:schema>

     当中xmlns:xs=”http://www.w3.org/2001/XMLSchema”显示 schema 中用到的元素和数据类型来自命名空间 “http://www.w3.org/2001/XMLSchema”。

    同一时候它还规定了来自命名空间 “http://www.w3.org/2001/XMLSchema” 的元素和数据类型应该使用前缀 xs:

    targetNamespace=”http://www.w3school.com.cn” 这个片段,表示被此 schema 定义的元素 (note, to, from, heading, body) 来自命名空间: “http://www.w3school.com.cn”。

    xmlns=”http://www.w3school.com.cn” 这个片段表示默认的命名空间是”http://www.w3school.com.cn”。

    elementFormDefault=”qualified” 这个片段表示随意XML实例文档使用并在Schema中声明过的元素必须被命名空间所限定。



XML Schema学习札记(1)——基础总览

标签:空间   lin   分网   bar   sim   包括   cell   content   类型   

原文地址:http://www.cnblogs.com/yxysuanfa/p/6791353.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!