旗下导航:搜·么
当前位置:网站首页 > XML教程 > 正文

猖獗XML进修笔记(7)-----------XML Schema【XML教程】,XML,学习笔记,Schema

作者:搜教程发布时间:2019-12-01分类:XML教程浏览:90评论:0


导读:XMLSchema是基于XML的DTD替代者。XMLSchema可形貌XML文档的构造。XMLSchema言语也可作为XSD(XMLSche...
XML Schema 是基于 XML 的 DTD 替代者。

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)!

标签:XML学习笔记Schema


欢迎 发表评论: