XML 从入门到精通(三)Schema教程

前端之家收集整理的这篇文章主要介绍了XML 从入门到精通(三)Schema教程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一XML Schema 简介


(一)XSD定义

XML Schema 是基于 XML 的 DTD 替代者,可描述 XML 文档的结构,可作为 XSD(XML SchemaDefinition)来引用。


(二)XSD作用

定义 XML 文档的合法构建模块,类似 DTD。定义可出现在文档中的元素+属性(及数据类型、默认值、固定值、文本)、子元素(次序、数目)


(三)XSD与 DTD 关系

XSD可针对需求扩展、更完善,功能更强大、基于 XML 编写、支持数据类型 、支持命名空间

1 XSD是DTD的继承者,比 DTD 更强大

2 XML Schema 支持数据类型

可更容易地描述允许的文档内容 、验证数据的正确性与来自数据库的数据一并工作、定义数据约束(data facets)、定义数据模型(或称数据格式)、可更容易地在不同的数据类型间转换数据

3 XML Schema 使用 XML 语法

不必学习新的语言 、可使用 XML 编辑器来编辑 Schema 文件 、可使用 XML 解析器来解析 Schema 文件 、可通过 XML DOM 来处理 Schema 、可通过 XSLT 来转换 Schema

4 XML Schema 可保护数据通信

发送方可以用一种接受方能够明白的方式来描述数据。

5 XML Schema 可扩展

因为它们由 XML 编写。优点:在其他 Schema 中重复使用您的 Schema 、创建由标准类型衍生而来的您自己的数据类型、在相同的文档中引用多重的 Schema


二 如何使用 XSD?

XML 文档可对 DTD 或XML Schema 进行引用。

(一)XML 文档

请看这个名为 "note.xml" 的 XML 文档:

(二)XSD定义

下面这个例子是一个名为 "note.xsd"的 XML Schema 文件,它定义了上面那个 XML 文档的元素:

代码解释:

下面的片断:

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对XSD 的引用

文件包含对 XML Schema 的引用:

代码解释:

xmlns="http://www.w3school.com.cn"规定了默认命名空间的声明。此声明会告知 schema 验证器,在此 XML 文档中使用的所有元素都被声明于 "http://www.w3school.com.cn" 这个命名空间。

一旦您拥有了可用的 XMLSchema 实例命名空间:

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"您就可以使用 schemaLocation 属性了。此属性有两个值。第一个值是需要使用的命名空间。第二个值是供命名空间使用的 XML schema 的位置:

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

原文链接:https://www.f2er.com/xml/299465.html

猜你在找的XML相关文章