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,没有专门的 ...
随机推荐
- 03、NavMesh--导航网格寻路
一.概述: NavMesh是3D游戏世界中用于实现动态物体自动寻路的一种技术,他将游戏场景中复杂的结构组织关系简化为带有一定信息的网格, 进而在这些网格的基础上通过一些列的计算来实现自动寻路. 二.简 ...
- 初见Python<2>:列表和元组
1.在python中,最基本的数据结构是序列,序列中每一个元素被分配一个序号,即元素的位置,称为索引.索引从0开始,-1表示倒数第一个元素,-2表示倒数第二个元素,因此既可以是从前到后开始对元素进 ...
- BZOJ 1150 [CTSC2007]数据备份Backup(贪心+优先队列)
[题目链接] http://www.lydsy.com/JudgeOnline/problem.php?id=1150 [题目大意] 给出n个数,请你挑出k对(每个数不可重复选取),使得他们差的绝对值 ...
- Problem B: 判断回文字符串
#include<stdio.h> #include<string.h> int huiwen(char *str) //定义回文函数 { //char ch[100]; in ...
- Codeforces Round #343 (Div. 2) D. Babaei and Birthday Cake 线段树维护dp
D. Babaei and Birthday Cake 题目连接: http://www.codeforces.com/contest/629/problem/D Description As you ...
- php中文件上传需要注意的几点
1.首先要开启php.ini中的文件上传,打开php.ini 配置文件,查找 File Uploads ,在这个区域有以下3个选项: ;;;;;;;;;;;;;;;; ; File Uploads ; ...
- Kubernetes 1.7版本安装
为什么搞完kubernetes 1.5又要装1.7, :( 是因为微服务架构istio的要求,而且直接用yum安装怎么都是1.5,所以只能通过下载包并且改配置文件的方式了,也好,花两天时间把整个过 ...
- Android双系统实现
1. 前言: 刷机,似乎是安卓手机用户的一项专利,可是,会刷机的用户一般都是喜新厌旧的角色. 一个系统用久了.就想换到还有一个系统.或者认为没有原来的好,或者又认为要换回去.这样又要重刷. 可是刷来刷 ...
- KISS
哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈 ...
- AWR报告简易分析
Snap Id Snap Time Sessions Cursors/Session Begin Snap: 35669 2012-11-8 13:00 1246 11.3 End Snap: 356 ...