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
|
<?
xml version = "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
|
<? xml version = "1.0" ?
elementFormDefault = "qualified" > < xs:element name = "note" > < xs:complexType > < xs:sequence > < xs:element name = "to" type = "xs:string" /> < xs:element name = "from" type = "xs:string" /> < xs:element name = "heading" type = "xs:string" /> < xs:element name = "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
|
<? xml version = "1.0" ?> < note > ... </ note > |
对外部XML Schema的引用:
1
2
3
4
5
6
7
8
|
<?
xml version = "1.0" ?> < note ... </ note > |
<schema> 元素是每个 XML Schema 的根元素。
即每个XML Schema文件都是已<schema></schema>为头和尾的,这里面能够包括属性。一个 schema 声明往往看上去类似这样:
1
2
3
4
5
6
7
8
9
10
|
<? xml version = "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,没有专门的 ...
随机推荐
- CSU - 1334 -好老师(STL-map用法)
https://cn.vjudge.net/contest/157163#problem/E #include<map> #include<queue> #include< ...
- 【欧拉回路】Play On Words(6-16)
[UVA10129]Play On Words 算法入门经典第6章6-16(P169) 题目大意:有一些单词,问能不能将它们串成字符串(只有前缀和后缀相同才能连) 试题分析:很巧妙的一道题,将每个单词 ...
- 安装配置convirture
Author: Jin Date: 20130627 Title: 安装配置convirture 参考: http://www.convirture.com/wiki/index.php?title= ...
- 在MEF中实现延迟加载部件
在MEF的宿主中,当我们通过Import声明导入的对象时,组装(Compose)的时候会创建该对象.例如: interface ILogger { void Log(string ...
- What happens when a SQL Query runs?
Posted by Padma Chitturi in Uncategorized. Leave a Comment Hi Folks, It has been such a long time th ...
- linux安装Node(Centos)
步骤 1.打开node官网,找到node版本的下载地址 这里我找到的地址是: https://npm.taobao.org/mirrors/node/v8.2.1/node-v8.2.1-linux- ...
- OpenShift应用镜像构建(1) S2I tomcat 镜像定制
参考并感谢https://www.jianshu.com/p/fd3e62263046 在对接项目制作应用镜像的过程中,经常发现避免不了的是需要写Dockerfile,(当然另外一种方式是直接run一 ...
- Kubernetes Pod日志太大导致空间问题
在log-driver是json-file的模式下,容器的日志存放在/var/lib/docker/containers/下面,是以container_id-json.log文件存放 但缺省方式下,l ...
- 一个简单好用的zabbix告警信息发送工具
之前使用邮件和短信发送zabbix告警信息,但告警信息无法实时查看或者无法发送,故障无法及时通知运维人员. 后来使用第三方微信接口发送信息,愉快地用了一年多,突然收费了. zabbix告警一直是我的痛 ...
- 合并table相同单元格的插件(基于jquery的)
正好项目中有个小需求, 要求把表格指定列中内容相同的单元格进行合并,本质上涉及的就是td的rowspan属性, 数出含相同内容单元格的个数, 然后给第一个与上一行内容不同的td其rowspan属性附上 ...