标签:级别 require 处理 自己的 UI 字母 public 嵌套 空间
xml-stylesheet type="text/css" href="1.css"?
>
二、dtd语法 --- 了解语法,看得懂dtd就能够
1.怎样在xml中引入dtd
(1)外部引入
能够将dtd的约束内容写在外置的dtd文件里,这个文件后缀必须为.dtd而文件保存时必须用utf-8编码保存.
再在xml文件里使用
<!DOCTYPE 根元素名称 SYSTEM 文件的位置>
假设写的是SYSTEM表明当前引入的dtd在当前文件系统中,后面制定的文件位置是当前硬盘中的位置
<!DOCTYPE 文档根结点 PUBLIC "DTD名称" "DTD文件的URL">
假设写的是PUBLIC表明当前引入的dtd在网络公共位置中,后面要指明dtd的名字和dtd所在网络位置URL地址
(2)内部引入
直接在xml中书写dtd
<!DOCTYPE 根元素名称[
dtd约束....
]>
2.dtd语法
(1)元素
<!ELEMENT 元素名称 元素约束>
元素约束:
存放类型:ANY/EMPTY
元素约束:子元素的列表,将能够包括的子元素用小括号括起来
子元素之间能够使用逗号进行切割,表明子元素必须依照顺序出现
子元素之间能够使用竖线进行切割,表面子元素出现当中之中的一个
#PCDATA 表明包括标签体
+ 表示一次或多次
* 0次或多次
?
0次或一次
也能够使用小括号进行组的操作
(2)属性
<!ATTLIST 元素名
属性名 属性类型 属性约束
属性名2 属性类型 属性约束
......
>
属性类型:
CDATA:表示属性的值是一个普通字符串
ENUMERATED : 属性的值是一个枚举列表中的值
ID: 表明属性的值必须在整个文档中都是唯一的,假设有反复的id则校验不通过,ID 属性的值仅仅能由字母。下划线開始,不能使用数字。不能出现空白字符
属性约束:
#REQUIRED ---
表明当前属性是一个必须存在的属性,假设这种属性不存在则在校验时会报错
#IMPLIED --- 表明当前属性是一个可选的属性,能够有也能够没有
#FIXED ‘固定值‘ --- 表明当前属性具有一个固定值,这种属性不须要进行赋值,自己主动就会取这个固定值为值.假设这种属性指定了一个不是固定值的值则校验报错
‘默认值‘ --- 表明当前属性具有一个默认值,假设给了其它的值就用其它值,假设没有给值则取这个默认值
(3)ENTITY(实体)
<!ENTITY >,就是对一大段内容的引用,能够简化代码的复用
引用实体:在xml中引用的实体叫做引用实体
<!ENTITY 实体名称 “实体内容” >
&实体名称;
參数实体:在dtd中引用的实体叫做參数实体
<!ENTITY % 实体名称 "实体内容">
%实体名称;
三、XML编程:利用java程序去增删改查(CRUD)xml中的数据
解析思想:
dom解析
sax解析
基于这两种解析思想市面上就有了非常多的解析api
sun jaxp既有dom方式也有sax方式,而且这套解析api已经增加到j2se的规范中,意味这不须要导入不论什么第三方开发包就能够直接使用这样的解析方式.可是这样的解析方式效率低下,没什么人用.
dom4j 能够使用dom方式高效的解析xml.
pull
!!dom4j
导入开发包,通常仅仅须要导入核心包就能够了,假设在使用的过程中提示少什么包到lib文件夹下在导入缺少的包就可以
四、Schema -- xml的约束技术 --- 须要掌握名称空间的概念,会读简单的Schema就能够了,不须要大家自己会写
Schema是xml的约束技术,出现的目的是为了替代dtd
本身也是一个xml,很方便使用xml的解析引擎进行解析
对名称空间有很好的支持
支持很多其它的数据类型,而且支持用户自己定义数据类型
能够进行语义级别的限定,限定能力大大强于dtd
相对于dtd不支持实体
相对于dtd复杂的多,学习成本比較的高
怎样在xml中引入Schema --- !!!!!名称空间的概念:全世界独一无二的名字,用来唯一的标识某个资源,一般是公司的域名,仅仅是名字而已并不真的表示资源的位置.
~~~ Schema的语法---參照Schema的文档,了解就可以
标签:级别 require 处理 自己的 UI 字母 public 嵌套 空间
原文地址:http://www.cnblogs.com/blfbuaa/p/7100718.html