All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
如何对PHP程序中的常见漏洞进行攻击_php资料_编程技术
ASP.NET底层架构探索之再谈.NET运行时_.net资料_编程技术
sql server 带列名导出至excel_[SQL Server教程]
C#.net,控制Windows,Messenger和Windows,Live,Messenger_[Asp.Net教程]
GridView,实现服务器端和客户端全选的两种方法_[Asp.Net教程]
ASP.NET中通过对话框方式下载文件_.net资料_编程技术
SQL,Server开发的二十一条军规_[SQL,Server教程]
ASP.NET的实时天气及24小时天气预报(C#)_[Asp.Net教程]
关于ASP.NET编程中的嵌套If语句_.net资料_编程技术
2003,下,IIS+PHP+MySQL+Zend,Optimizer+GD库+phpMyAdmin安装配置_php资料_编程技术
Reading number is top 10 pictures
这酸爽,让人不敢相信
Fender Bender that so horrifying1
Group of female porn in 《westwards》, uninhibited woman threatened to not the bottom line1
9.3阅兵全景图6-常规导弹梯队和核导弹梯队
2015中美最新武器装备巅峰对决!
美女就是美女
Sora aoi on twitter4
Soong ching ling's former residence1
西班牙山村小景1
大四女生借债隆胸成功
Download software ranking
Sora aoi - one of more PK
仙剑奇侠传98版歌曲
尖东毒玫瑰B
Unix video tutorial20
VC++6.0简体中文版
Unix video tutorial6
天龙八部最新服务端
艳兽都市
仙剑奇侠传98硬盘WINXP版
Such love down(擒爱记)
归海一刀 published in(发表于) 2014/3/20 5:13:29 Edit(编辑)
XML学习笔记(四)Schema介绍篇_[XML教程]

XML学习笔记(四)Schema介绍篇_[XML教程]

XML学习笔记(四)Schema介绍篇_[XML教程]


Preface:本文是W3CSchools上《Schema指南》的学习笔记。其中大部分内容是对指南的翻译总结。由于原文的例子更详尽生动,如果各位想阅读原文可以到这个网址http://www.w3schools.com/schema/default.asp。 同时,W3CSchools提供了测试,大家可以测试一下自己的理解程度。


一、概述


XML Schema用于描述XML文档结构的文件。另一种用于该用途的文件(技术)是DTD。XML Schema有时又称为XML Schema Definition,所以也会称为XSD。因此Schema文件是以xsd为后缀的。

下面详细的说明一下所谓的“定义XML文档结构结构”的意义。

  • 定义可以出现在文档中的Element。
  • 定义可以出现在文档中的Attribute。
  • 定义哪些Element是子元素。
  • 定义Element的顺序。
  • 定义子元素的数目。
  • 定义一个元素是否能为空,是否能包含文本。
  • 为每个Element和Attribute定义数据类型。
  • 为Element和Attribute定义默认值和固定值。
因为有了以上的定义,我们才能更清晰的使用XML描述我们要表达的内容。使XML的接受方能更容易明白内容的含义。

Schema和DTD的比较
可以说Schema是DTD的替代品,虽然作用一样,但Schema是比DTD更新,更好的一种技术,因为:



  • Schema是可扩展的,可以随着将来的需要进行扩展。 (可以在其他的Schema中重用现有的Schema;从标准类型中派生创建你自己的数据类型;在同一文档中引用多个Schema。)
  • Schema是用XML编写的。 (因此你无需重新学习一种语言;你可以使用XML的编辑器对Schema进行编辑;可以使用XML Parser去分析Schema;可以使用XML DOM去操作Schema;可以使用XSLT对Schema进行转换。)
  • Schema支持数据类型。 (从而能更好的描述文档支持的内容;更好的验证文档的有效性;更好的与数据库进行数据交互;更好的定义数据约束;更好的定义数据格式;更好的支持各类型数据间的转换。)
  • Schema支持命名空间。
更重要的是Schema是W3C推荐的标准。

二、在XML文档中引用Schema



xmlns="http://www.w3schools.com"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.w3schools.com note.xsd">
Tove
Jani
Reminder
Don't forget me this weekend!



以上的XML文件引用了note.xsd的Schema文件进行结构定义,这样Parser会根据该Schema文件对XML进行有效性检验。显然关键的地方是文档根元素“note”中属性的定义。下面解析相关属性的意义。


xmlns="http://www.w3schools.com"
说明文档的默认命名空间是“http://www.w3schools.com”。关于命名空间的作用,在XML学习笔记(三)中有介绍。


xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
这里定义一个Schema的实例命名空间。只有作了这个定义才能使用schemaLocation属性。xsi是XML Schema Instance的意思。


xsi:schemaLocation="http://www.w3schools.com note.xsd"
如上所述,因为我们已经定义了xsi命名空间所以可以使用schemaLocation属性了。schemaLocation属性由成对的值组成可以有多对。(因为一个XML文档可以有多个命名空间,所以schemaLocation值可以有多对)第一个值“http://www.w3schools.com”是要使用schema进行有效验证的命名空间的元素。第二个值“note.xsd”是要使用的schema文档的路径。

以下是中国XML论坛的两篇贴子可以作为参考和补充:
http://bbs.xml.org.cn/dispbbs.asp?boardID=23&ID=37706
http://bbs.xml.org.cn/dispbbs.asp?boardid=1&rootid=&id=9270

三、Schema文档的基本结构

首先给出一个完整的Schema文档


targetNamespace="http://www.w3schools.com"
xmlns="http://www.w3schools.com"
elementFormDefault="qualified">












首先必须强调的是元素是Schema文档的根元素。注意大小写,Schema也是XML,XML是大小写敏感的。Element的所有子元素都是用于定义XML文档结构的。具体的语法在下篇介绍。在这里我们集中关注的属性。


xmlns:xs="http://www.w3.org/2001/XMLSchema"
这里指明了一个命名空间“http://www.w3.org/2001/XMLSchema”。同时定义了一个前缀“xs”。自己和所有子元素都使用“xs”前缀,说明属于该命名空间。


targetNamespace="http://www.w3schools.com"
targetNamespace是目标命名空间。这语句说明,这个Schema定义的元素(note, to, from, heading, body)是来自“http://www.w3schools.com”这个命名空间的。从另一个角度可以理解为,引用这个Schema进行有效性验证的XML的元素应该是使用该命名空间的。


xmlns="http://www.w3schools.com"
因为Schema也是XML。这语句说明这个XML的默认命名空间是“http://www.w3schools.com”。


elementFormDefault="qualified"
这句表示在本Schema中定义的Element,如果在XML实例文档出现的话,都要进行命名空间匹配。

同样给出一篇中国XML论坛的帖子作为参考和补充:
http://bbs.xml.org.cn/dispbbs.asp?boardID=23&ID=35354





添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.