博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
3. Scheme约束XML
阅读量:5122 次
发布时间:2019-06-13

本文共 2385 字,大约阅读时间需要 7 分钟。

Schema简述:
XML Schema 是用一套预先规定的XML元素和属性创建的,
是一种用于定义和描述XML文档结构与内容的模式语言,
其出现是为了克服DTD的局限性。
 
XML Schema与 DTD区别(面试):
1. XML Schema 符合XML语法结构,本身就是XML文档 。
2. DTD 文档的结构是平铺性,如果定义复杂的XML文档,很难把握元素
之间的嵌套关系,Schema相对文档结构较强 。
解释:DTD 约束定义时,无法看出层次,全是并列定义的,
元素、属性都定义在了同一个标签下,很乱。
Schema 可以看出层次,所以说结构强,直观看到元素间嵌套关系。
3. XML Schema 比 DTD 支持更多的数据类型,并且支持用户自定义 用户类型。 
4. XML Schema 定义约束的能力更加强大 。
5. XML Schema 对命名空间进行支持 。
命名空间:Schema 约束的一个唯一标识(类似Java单继承,防止父类出现同名方法 ,引起不确定性) 
XML文件允许引用多个 Schema 约束,如果多个 Schema 约束中,同时定义了某一个元素,
那XML实例文档在引用的时候,到底引用哪个 Schema 约束的定义?
命名空间就解决了这个问题。

 
初识:
1. Schema本身就是一个XML文档,但是扩展名为.xsd
2. 一个Schema文档通常称之为约束文档,遵循这个约束书写的。
依次约束:
W3C定义好的约束    ---约束--->    books.xsd 约束文档    ---约束--->    books.xml 实例文档
3. 和XML文件一样,一个Schema文档必须有一个根节点, 并且这个根节点的名称必须为schema
4. 编写一个Schema文档后,通常需要把这个文件中声明的元素 绑定到一个URI地址上,
在XML Schema技术中有一个专业术语来 描述这个过程,
即把XML Schema文档声明的元素绑定到一个 名称空间上,
以后XML文件就可以通过这个URI(名称空间)来告诉 解释引擎,XML文档中编写的元素来自哪里,
被谁约束。
 
schema元素:
1 
2
7 //元素......8
定义元素:
在schema中元素类型分为两种:简单元素和复杂元素。
 
1. 简单元素:不包含子节点或者属性节点,只有文本。
<element name="title" type="string"/>
 
2. 复杂元素:包含子节点或者属性节点。
1 
//可以写入多个book2
//复杂类型3
//队列4
5
6
7
8
定义属性:
1 
2
//复杂类型 3
//队列 4
5
6
7 //定义属性时必须要写到sequence后边 8
9
10
XML引用Schema:
1 
2
7
8
a
9
1.1
10
11
别名和命名空间:
在引用schema时,xmlns:e="http://www.example.org/employee,可以添加别名,
再次引用标签时,
要在标签前添加别名,不加别名代表的是默认命名空间。
 
格式化:
定义.xsd时,elementFormDefault="qualified"     
 //格式化
qualified:根节点有别名,子节点也要有别名。根节点没有别名,字节点也没有别 名。 
unqualified:引用这个约束时,根节点必须有别名,子节点不能有别名。
一个实例XML只有一个默认命名空间。
 
多个Schema:
定义:
1 
2
3
4
5
6
//因为要引入的是另一个约束的元素,这里定义any标签 7
8
9
10
引用:
1  

 

转载于:https://www.cnblogs.com/lee-hao/p/4545201.html

你可能感兴趣的文章
字符串处理
查看>>
HtmlUnitDriver 网页内容动态抓取
查看>>
ad logon hour
查看>>
罗马数字与阿拉伯数字转换
查看>>
Eclipse 反编译之 JadClipse
查看>>
Python入门-函数
查看>>
距离公式汇总以及Python实现
查看>>
Window7上搭建symfony开发环境(PEAR)
查看>>
Linux内核态、用户态简介与IntelCPU特权级别--Ring0-3
查看>>
第23月第24天 git命令 .git-credentials git rm --cached git stash clear
查看>>
java SE :标准输入/输出
查看>>
一些方便系统诊断的bash函数
查看>>
[ JAVA编程 ] double类型计算精度丢失问题及解决方法
查看>>
小别离
查看>>
好玩的-记最近玩的几个经典ipad ios游戏
查看>>
PyQt5--EventSender
查看>>
Sql Server 中由数字转换为指定长度的字符串
查看>>
Java 多态 虚方法
查看>>
万能的SQLHelper帮助类
查看>>
tmux的简单快捷键
查看>>