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"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


php输出xml格式字符串
J2ME Mobile 3D入门教程系列文章之一
XML轻松学习手册
XML入门的常见问题(一)
XML入门的常见问题(三)
XML轻松学习手册(2)XML概念
xml文件介绍及使用
xml编程(一)-xml语法
XML文件结构和基本语法
第2章 包装类
XML入门的常见问题(二)
Java对象的强、软、弱和虚引用
JS解析XML文件和XML字符串详解
java中枚举的详细使用介绍
了解Xml格式
XML入门的常见问题(四)
深入SQLite多线程的使用总结详解
PlayFramework完整实现一个APP(一)
XML和YAML的使用方法
XML轻松学习总节篇