java开发之框架基础技术(第二章XML总结)

本文详细介绍了XML的基础知识,包括CDATA区、特殊字符、处理指令和XML约束模式。强调了XML约束模式的重要性,如DTD和XML Schema,它们用于定义XML文档的结构和内容规则。此外,还讨论了元素和属性的定义,以及名称空间的概念及其应用。

xml总结

标签以外的所有空格和换行,都要交给下游程序处理

2.6 CDATA区
“<![CDATA[” 开始,“ ]]>”结束

2.7 特殊字符
特殊字符 替代符号
& &
< <

" "
’ ’
2.8 处理指令
简称PI,用来为处理XML文档的应用程序提供指示信息
处理指令以“<?”开头,以"?>"结尾,XMl声明语句就是常见的处理指令
XML分析器会把处理指令原封不动的传给应用程序,由应用程序来解释这个指令

例如:book.xml

<?xml version="1.0" encoding="GB2312" ?> <?xml-stylesheet type="text/css" href="book.css" ?>
         <bookstore>
              <book>
                     <bookname>Java教程</bookname>
                     <author>李华</author>
                     <price>99元</price>
              </book>
        </bookstore>

book.css

bookname{display:block; color:red}
author{display:block; font-style:italic}
price{display:block; color:olive}

三、XML约束模式
3.1 格式良好的XML
解析器Parser

3.2 XML的约束模式
虽然解析不会出错,但不符合真实的逻辑,所以要有约束模式
定义文档中允许出现的元素名、属性、内容以及嵌套关系和出现顺序

定义Xml文档的词汇表,尊徐的结构
xml文档看做数据库中的表,则约束模式相当于表结构的定义

3.3 XML的约束语言
定义另一种语言的语言为元语言,单独的文件,模式文档,xml文档实例文档
约束模式语言,XML DTD、XML Schema、XDR、SOX等,前两种最广泛

3.4 有效的XML
遵守XML基本的语法规则,而且符合指定的约束模式,称为Valid XML
解析器程序检查是否符合约束模式称为校验,因此非校验类解析器和校验类解析器,IE是非校验类解析器

3.5 DTD
Document Type Definition,早期的约束模式语言

DTD初步认识
包含元素,元素之间关系,属性、实体以及符号的定义
book.dtd,可以使用正则表达式,使用UTF-8,unicod编码

<!ELEMENT 书架 (书+)> <!ELEMENT 书 (书名,作者,售价)> <!ELEMENT 书名 (#PCDATA)> <!ELEMENT 作者 (#PCDATA)> <!ELEMENT 售价 (#PCDATA)>

PCDATA代表普通的字符串,(书名,作者,售价)按这个顺序, (书+)出现多次
在xml文档中引入外部的DTD
DOCTYPE文档类型定义语句,紧跟xml文档声明语句后面,两种格式
自定义:SYSTEM组织内部,或自定义

公共的:PUBLIC权威机构公开的文件

例如:

“-”表示未被改进的非ISO标准的DTD,“+”表示被改进的非ISO标准的DTD
例如book.xml:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>

<书架>

</书架>
standalone即使为no,只要DOCTYPE声明,也会去校验
xml文档中直接嵌入DTD

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

四、相关定义
4.1 元素定义
语法格式:

<!ELEMENT 元素名称 使用规则>

举例:

<!ELEMENT 书架 (书名,作者,售价)> <!ELEMENT 书名 (#PCDATA)>

使用规则:
(#PCDATA) 是parsed character data简写,表示可以是普通字符串
(书名,作者,售价)
(书名,#PCDATA)
EMPTY 内容为空,如



ANY 元素内容任何形式
PS:
a、DTD注释和XML文档一样
b、每条元素定义语句顺序随意
c、具有不同用途的元素不能使用相同的元素名
d、一个元素的各个组成成分之间可以有各种关系

<!ELEMENT MYFILE (TITLE AUTHOR EMAIL)> 三个子元素顺序任意 <!ELEMENT MYFILE (TITLE, AUTHOR ,EMAIL)> 三个有序的子元素 <!ELEMENT MYFILE (TITLE |AUTHOR| EMAIL)> 三个中的任意一个

e、在元素的使用规则中可以定义子元素出现的次数
(书+)一次或者多次,(书?)一次或者不出现,(书)不出现或者一次多次,(书)只能一次
f、一对圆括号可用于将括在其中的内容组合成一个可统一操作的分组,分组中可以嵌套更小的分组

<!ELEMENT MYFILE ((TITLE, AUTHOR?,EMAIL)*|COMMENT)>

4.2 属性定义
语法格式

<!ATTLIST 元素名 属性名1 属性类型 设置说明 属性名2 属性类型 设置说明 ... 举例 <!ATTLIST 商品 类别 CDATA #REQUIRED 颜色 CDATA #IMPLIED 设置说明 REQUIRED 必须设置 IMPLIED 可有可无 FIXED 设为固定值,如:CDATA #FIXED “页面作者” 直接使用默认值 如:CDATA “上网” 属性类型 CDATA 普通文本字符串,特殊字符用转义字符串 ENUMERATED 枚举类型 ID用于标示唯一的,相当于KEY IDREF、IDERFS、NMTOKEN、NMTOKENS、NOTATION、ENTITY、ENTITYS 4.3 实体定义 作用 为一段文本内容创建一个别名,,在XML中多次引用这个别名,解析器会自动把别名转为对应的文本 定义 DTD中用<!ENTITY...>定义,两种类型:引用实体和参数实体

引用实体:DTD中定义,xml中引用

<!ENTITY 实体名称 “实体内容”> <!ENTITY 实体名称 SYSTEM "外部XML文档的URL">

引用方式:&实体名称;

参数实体:DTD中定义,DTD中引用

<!ENTITY % 实体名称 “实体内容”>

引用方式:&实体名称;

五、XML Schema
5.1 XML Schema与DTD的比较
和DTD一样,定义xml文档结构,比DTD更有发展前途。

自身符合xml语法结构
DOM 、SAX等XML API更容易解析
采用和xml文档同样的合法性验证机制
对名称空间更好的支持
5.比DTD支持更多的数据类型,并支持用户自定义数据类型
定义约束的能力更强大
基本上满足了关系模式在数据描述上的需要
缺点:不能像DTD定义实体,很多细节比DTD更复杂
5.2 通过一个例子初步认识XML Schema
5.3 名称空间的概念
5.4 名称空间的声明
5.5 默认名称空间
5.6 属性的名称空间问题
5.7 引入XML Schema文档

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值