万水千山只等闲

常用链接

统计

最新评论

XSD简介

XSDXML结构定义(XML Schemas Definition )

XML Schema描述了XML文档的结构。

文档设计者可以通过XML Schema指定一个XML文档所允许的结构和内容,并可据此检查一个XML文档是否是有效的。

XML Schema本身是一个XML文档,它符合XML语法结构。可以用通用的XML解析器解析它。

一个XML Schema会定义:文档中出现的元素、属性、子元素、子元素的数量、子元素的顺序、元素是否为空、元素和属性的数据类型、元素或属性的默认和固定值。

 

XML SchemaDTD的替代品。

原因:一是据将来的条件可扩展,二是比DTD丰富和有用,三是用XML书写,四是支持数据类型,五是支持命名空间。

 

优点:

1) XML Schema基于XML,没有专门的语法

2) XML Schema可以象其他XML文件一样解析和处理

3) XML Schema支持一系列的数据类型(intfloatBooleandate)

4) XML Schema提供可扩充的数据模型。

5) XML Schema支持综合命名空间

6) XML Schema支持属性组。

 

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

<?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:schema>

 

<?xml version="1.0"?>

是所有 XML 文档中都必须有的 XML 声明,用途是告诉 XML 解析器文档所遵从的 XML 规范的版本和使用字符集。目前 XML 规范的最高版本就是 1.0。除了 ISO-8859-1 外(缺省字符集,可以不写),我们做开发时最常用的两个字符集是 GBK UTF-8

 

包含在 <? ... ?> 中的内容叫做处理指令(Processing InstructionPI),处理指令不是 XML 的一部分,它的作用是为 XML 应用程序处理 XML 提供一些指示。注意,刚才说的 XML 声明虽然与处理指令很像,但并不是处理指令。

 

xs:schema节点中的xmlns:xs指出:schema中用到的元素和数据类型来自命名空间 "http://www.w3.org/2001/XMLSchema"。同时它还规定了来自命名空间 "http://www.w3.org/2001/XMLSchema" 的元素和数据类型应该使用前缀 xs

targetNamespace指出:被此 schema 定义的元素来自命名空间: "http://www.w3school.com.cn

xmlns指出:默认的命名空间是 "http://www.w3school.com.cn"

elementFormDefault指出:任何 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">

...

</note>

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

xmlns:xsi:声明XML Schema实例名称空间(http://www.w3.org/2001/XMLSchema-instance),并将xsi前缀与该名称空间绑定,这样模式处理器就可以识别xsi:schemaLocation属性。XML Schema实例名称空间的前缀通常使用xsi

xsi:schemaLocation:使用xsi:schemaLocation属性指定名称空间http://www.w3school.com.cn和模式位置http://www.w3school.com.cn note.xsd相关。

 

posted on 2012-07-03 09:31 Winnie 阅读(347) 评论(0)  编辑 收藏 引用 所属分类: XSD


只有注册用户登录后才能发表评论。
【推荐】超50万行VC++源码: 大型组态工控、电力仿真CAD与GIS源码库
网站导航: 博客园   IT新闻   BlogJava   知识库   博问   管理