XML Schema学习札记(1)——基础总览
内容整理自:www.w3school.com.cn
转载自:http://www.xgezhang.com/xml_schema_1.html
什么是XML Schema?
- XML Schema 是基于 XML 的 DTD 替代者。
- XML Schema 可描写叙述 XML 文档的结构,并对其进行制约和校验。
- XML Schema 语言也可作为 XSD(XML Schema Definition)来引用。
它能够:
- 定义可出如今文档中的元素
- 定义可出如今文档中的属性
- 定义哪个元素是子元素
- 定义子元素的次序
- 定义子元素的数目
- 定义元素是否为空,或者是否可包括文本
- 定义元素和属性的数据类型
- 定义元素和属性的默认值以及固定值
XML Schema 是 DTD 的继任者:
我们觉得 XML Schema 非常快会在大部分网络应用程序中代替 DTD,理由例如以下
- XML Schema 可针对未来的需求进行扩展
- XML Schema 更完好,功能更强大
- XML Schema 基于 XML 编写
- XML Schema 支持数据类型
- XML Schema 支持命名空间
一个简单样例:
|
1
2
3
4
5
6
7
|
<?
xmlversion="1.0"?><note><to>George</to><from>John</from><heading>Reminder</heading><body>Don't forget the meeting!</body></note> |
它相应的note.xsd的Schema文件例如以下:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
<?xmlversion="1.0"?
elementFormDefault="qualified"><xs:elementname="note"> <xs:complexType> <xs:sequence> <xs:elementname="to"type="xs:string"/> <xs:elementname="from"type="xs:string"/> <xs:elementname="heading"type="xs:string"/> <xs:elementname="body"type="xs:string"/> </xs:sequence> </xs:complexType></xs:element></xs:schema> |
能够看到。使用XML Schema有非常多优点和优势。比方它不须要学习新的语言、可使用 XML 编辑器来编辑 Schema 文件、可使用 XML 解析器来解析 Schema 文件等。
它还有很多其它的优点在后面介绍。
XML Schema支持对DTD的引用,以及对XML Schema本身的引用。參看以下两个样例:
对外部DTD的引用:
|
1
2
3
4
5
|
<?xmlversion="1.0"?><note>...</note> |
对外部XML Schema的引用:
|
1
2
3
4
5
6
7
8
|
<?
xmlversion="1.0"?><note...</note> |
<schema> 元素是每个 XML Schema 的根元素。
即每个XML Schema文件都是已<schema></schema>为头和尾的,这里面能够包括属性。一个 schema 声明往往看上去类似这样:
|
1
2
3
4
5
6
7
8
9
10
|
<?xmlversion="1.0"?> elementFormDefault="qualified">......</xs:schema> |
当中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 Schema学习札记(1)——基础总览的更多相关文章
- XML&DTD&XML Schema学习
XML(eXtensible Markup Language)可扩展的标记语言.xml在web service编程中尤为重要.在网络传输中可以作为传输数据的载体.xml作为元语言,它可以用来标记数据. ...
- XSD(XML Schema Definition)学习笔记
今天学习了XSD相关的知识,为了以后查找的方便,写一些笔记. 一.什么是XSD? 1.XSD全称:XML Schema Definition.XML Schema 的作用是定义 XML 文档的合法构建 ...
- W3C XML Schema 教程
转自:http://www.blogjava.net/sham2k/articles/179825.html W3C XML Schema 教程 XML SCHEMA教程 本教程是笔者学习W3C的&l ...
- 第65节:Java后端的学习之Spring基础
Java后端的学习之Spring基础 如果要学习spring,那么什么是框架,spring又是什么呢?学习spring中的ioc和bean,以及aop,IOC,Bean,AOP,(配置,注解,api) ...
- XML概念定义以及如何定义xml文件编写约束条件java解析xml DTD XML Schema JAXP java xml解析 dom4j 解析 xpath dom sax
本文主要涉及:xml概念描述,xml的约束文件,dtd,xsd文件的定义使用,如何在xml中引用xsd文件,如何使用java解析xml,解析xml方式dom sax,dom4j解析xml文件 XML来 ...
- XML Schema命名空间解析
URI Web中汇集了各种资源.资源可以是具有标识的任何事物, 如文档. 文件. 菜单项. 计算机. 服务等, 甚至可以包括人. 组织和概念[BernersLee 1998].在Web体系结构中, ...
- XML Schema的基本语法(转)
XML Schema的基本语法(转) XSDL(XML Schema定义语言)由元素.属性.命名空间和XML文档种的其他节点构成的. 一.XSD中的元素 XSD文档至少要包含:schema根元素和XM ...
- XML详解:第二部分 XML Schema
声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...
- XML Schema <第三篇>
验证XML文档是否符合议定的XML结构有两种方法,分别是DTD模式与XML Schema.本文主要介绍XML Schema. 一.XML Schema的优点 XML Schema基于XML,没有专门的 ...
随机推荐
- python3中使用xpath无法定位,为什么一直返回空列表?
tbody问题: 在爬去某些网站一些信息的时候,xpath工具上显示类容是正确的,但是在scrapy代码中一直返回空列表 Scrapy的部分代码: class LotteryspiderSpider( ...
- Problem B: 年龄问题
#include<stdio.h> int xx(int n,int m,int k) { int a; ) { a=k; } else { a=xx(n-,m,k)+m; } retur ...
- (小规模)b牌棋盘完美覆盖数
(小规模)b牌棋盘完美覆盖数 考虑一个普通的国际象棋棋盘,它被分成8*8(8行8列)的64个正方形.设有形状一样的多米诺骨牌,每张牌恰好覆盖棋盘上相邻的两个方格(即1*2的骨牌).那么能否把32个这样 ...
- Ubuntu 16.04安装RabbitMQ(单机版)
说明: 1.如果是做RabbitMQ方面的开发时,建议先不要了解集群的安装和部署,先安装一个单机版之后,尽快的熟悉里面的功能和特性.毕竟单机版支持的QPS相当的高.同样,集群方式也没有想象中的多点复制 ...
- 异常:System.BadImageFormatException,未能加载正确的程序集XXX或其某一依赖项
常:System.BadImageFormatException,未能加载正确的程序集XXX或其某一依赖项 看到这个异常,我估计谁都会头大一阵子,不过还好,由于前面知道要设置为x86,加上以前观察过I ...
- 将HTML元素转换成图片供用户下载(html2canvas + canvas2Image)
这是项目中遇到的一个问题,起初觉得把一个html元素生成图片,提供给用户下载的需求挺容易实现的,毕竟看过一些截图的插件,但是在真正操作中遇到了各种各样的问题,比如移动端上截图显示不清晰,html元素中 ...
- Atlassian发布JIRA项目组合管理解决方案
在其年度用户峰会上,开发和协作软件供应商Atlassian发布了JIRA Portfolio,JIRA Portfolio是JIRA的一个附加组件"可以提供简单准确的视图用于计划和管理跨团队 ...
- cocos2d-x Cygwin编译 recipe for target `obj/local/armeabi/libcocos2d.so' fail 解决办法
在编译cocos2d-x的helloworld 或者 tests的时候. 官网上使用ndk4.ndk5,这里是使用 ndkr7b.ndkr8或ndkr8b .操作会简单很多,但是出了些小问题也是很坑人 ...
- docker部署golang+redis聊天室
博客地址:http://www.niu12.com/article/7#####1.项目源码: https://github.com/ZQCard/webchat#####2.项目构成 websock ...
- C++中模块(Dll)对外暴露接口的方式
总结下C++中模块(Dll)对外暴露接口的方式: (1)导出API函数的方式这种方式是Windows中调用DLL接口的最基本方式,GDI32.dll, User32.dll都是用这种方式对外暴露系统A ...