1
第 8章 XML语言简介
学习目标
? XML的概念
? XML的语法规则
? XML的文档及文档规则
? XML显示样式单的构成和约定
2
第 8章 XML语言简介
教学内容
8.1 XML概述
8.2 XML语法
8.3 XML文档类型说明
8.4 XML显示样式表
本章小结
返回总目录
3
8.1 XML概述 — 关于 XML的简单介绍
返回目录
XML( Extensible Markup Language)的中文含义是, 可扩展标记
语言,,主要应用于电子商务、数据检索和信息交换等领域的动态网
页和网站设计 。
标记,实现计算机处理而在数据中加入附加信息,这种附加的信
息称为, 标记, 。
标记语言,标记语言是在普通文本中加入一些有特定含义的标记,
从而对文本内容进行标识和说明的一种文件表示方法。
可扩展的,如果所使用的标记都是非预定义的,用户可以按实际
需求自定义标记,对于自定义标记,用户可以在文档内或文档外进行
说明,也可以不说明,这种性质被称为是可扩展的。
HTML有自身不足, 它不能描述文档的语义并且不具备可扩展性 。
XML技术正是顺应这种技术发展潮流的产物, 它是结构化的, 具有自
描述性的可扩展标记语言, 它不仅具有信息表示能力, 重要的是它能
描述 Web的语义, 使用 XML描述的文档具有良好的机器可读性 。
4
8.1 XML概述 — XML与计算机程序语言的区别
XML虽被称为可扩展的标记语言,但它与编程中
的计算机程序语言的概念有所不同,计算机程序语言有
特定词汇集和语法,并严格按照语法用词汇集中的词汇
书写计算机指令,除了参数,指令中一般不含词汇集以
外的词。而 XML没有特定的词汇集,也无需书写计算机
指令,它只是按一定规则在文本文档中添加标记,特殊
需要时,按规则和语法对标记和标记间关系进行定义和
说明。
返回目录
5
8.1 XML概述 — XML与 HTML的区别
HTML( HyperText Markup Language) 是超文本标记语言, 用来进行
基于 Internet的网页设计, 也就是在 Internet上发布信息, 是一种用于全
球广域网上文档的标准标记语言 。 XML类似于 HTML,但它们有很多
不同, 主要表现在 2个方面:
1,HTML主要用来显示数据, XML除了显示数据之外, 主要用来描
述数据 。
2,HTML中所有标记都是预定义的, 用户只能使用标准的标记 。
XML是可扩展的, 允许用户自定义标记和自定义文档结构 。 XML与
HTML之间不是竞争关系而是相互补充的关系, 各种浏览器都能识别
和处理这两种语言, 它们都可以直接用于因特网 。 随着 XML显示功能
日益完善, XML的应用领域要比 HTML广阔的多 。 总之, HTML使得
Web文档结构化, 而 XML将文档描述提到一个更高层次 。
返回目录
6
8.1 XML概述 — 使用 XML的主要好处
1,便于不同系统平台的信息互通 。
XML文件是纯文本文件, 可以被不同系统中所有计算机识别, 各种
文字, 图像甚至二进制文件都能很好地处理为 XML文件, 这使得 XML
成为理想的网际语言, 给不同系统平台的信息互通打开方便之门 。
2,为不同数据库的数据提供了统一接口
XML可以给数据库和用户之间加一个中间层, 使所有数据库数据都
转换成 XML格式, 呈现给用户统一的数据格式, 方便了不同数据库之
间的数据传递, 为不同数据库的数据提供了统一接口 。
3,支持更精确的数据检索
在 XML中进行数据搜索时, 搜索引擎不必遍历查询整个 XML文档,
只须查找相关的, 表达特定意义的标记下的内容, 搜索便完成了 。
返回目录
7
8.2 XML语法
XML对语法有着严格规定, 这一点与 HTML有所不同 。
一个 XML文档必须严格遵守 XML1.0规范中的语法规则,
才能被处理程序正确地分析, 解释, 处理 。 正因为如此,
XML很容易被机器理解, 机器处理的正确性和效率都比
较高 。 检查正在编辑的 XML文档是否规范, 最简单的方
法就是用 Internet Explorer打开它, 如不能正常显示, 则
需要检查该 XML文档的语法规则或文字错误 。
返回目录
8
8.2 XML语法 — XML文档的构成
XML文档由两个文件构成,XML文件和 XML文件附
带的样式单文件 。 XML文件又分为两部分:声明部分和
文件主体部分 。 它的最基本的构成如下:
XML声明
处理指令 ( 可选 )
XML元素
规范的 XML文件又称为构造良好的 XML文件 ( Well-
Formed XML Documents) 。
返回目录
9
8.2 XML语法 — XML最常使用的规则
1,文档包含一个或多个元素且至少包含一个元素 。
2,文档中只存在一个称为根的元素, 该元素无任何部分
出现在其他元素中 。
3,以起始标签和结束标签为界的其他各元素必须严格嵌
套 。
4,元素必须正确关闭 。
5,元素不得交叉 。
6,属性值必须加引号 。
7.区分大小写。
返回目录
10
8.2 XML语法 — XML文档的声明
1,声明的构成
声明中包括 3部分内容:版本信息, 内码信息, 文件类型定义 。
例:一个最简单的 XML声明,
<?xml version=”1.0”?>
2,对声明格式的解释:
( 1) XML声明都是由, <?”开始, 由,?>”结束 。
( 2) <?……?>表示该行是一条指令 。
( 3) xml 表示该文件是一个 XML文件 。
( 4) version=”1.0” 表示该文件执行 XML 1.0 标准 。
( 5) encoding=”gb2312” 表示该文件使用 GB2312字符集 。
( 6) standalone=”yes” 表示该文件没有引用其他外部的 XML文件 。
返回目录
11
8.2 XML语法 — XML文档的声明
3,声明中几个属性的具体含义:
( 1) version属性:指明采用的 XML版本号, 必选项, 排在属性列表的第一位 。
( 2) encoding属性:指明文档中使用的字符集, 可选项, 排在属性列表的第二位 。 所
有 XML语法分析器都支持 8位和 16的内码标准, 如果要使用更大的编码集合, 要在声明
中使用 encoding属性定义 。
( 3) standalone属性:指明当前 XML文档是否与一个独立的置标声明文件配套使用, 可
选项, 排在属性列表的第三位 。 standalone属性实际上是独立文件声明, 它的取值只有
两种,yes和 no。
4,关于 XML声明的注意事项:
( 1) 如果在 XML文档中包括声明, 则该声明必须是文档的第一个内容 。
( 2) 声明中必须包含版本号属性 。
( 3) 声明中如果包含所有属性, 则排列顺序依次为:版本号属性, 字符集属性, 独立
文件属性, 不能颠倒 。
( 4) XML声明必须小写 ( 内码声明除外:, gb2312”和, GB2312”均可 ) 。
( 5) 声明中的属性值 ( 如:, gb2312”) 要用单引号或双引号定界 。
返回目录
12
8.2 XML语法 — XML元素
1,元素的结构
元素是 XML文档内容的基本单元, 从语法上讲, 一个元素是由起始
标记, 数据内容和结束标记组成的 。 元素形式为,<标记 >数据内容 </
标记 >。
2,元素的嵌套
若元素中包含其他元素, 称为元素的嵌套, 大部分 XML文档都由嵌
套的元素组成, 这就构成 XML文档元素的树状结构 。
3,元素的嵌套规则
( 1) 所有 XML文档都从一个根节点开始, 根节点包含一个根元素 。
( 2) 文档内所有其他元素都包含在根元素中, 称为根元素的子元素 。
( 3) 子元素还可以包含子元素 。
返回目录
13
8.2 XML语法 — XML标记
“置标, 是 XML语言的精髓, 在创建 XML文档过程中增加的内容, 包括指令,
标记, 注释, DTD等, 都是, 置标, 。
1,标记的结构
标记的格式为,<标记名称 >
由三部分组成, 标记起始字符, <”,标记名称, 标记终止字符, >”。
2,标记的命名规则如下:
( 1) 以英文字母或下划线开头, 由半角 ASCII码的英文字母, 下划线, 连接
符和句点组成, 若声明中包含 encoding=”gb2312”,可以用简体汉字开头, 名
称中可以有汉字 。 ( 2) 名称中不能有空格 。
3,空标记,若一对标记之间无任何内容, 称之为空标记 。
4,标记的使用规则:
( 1) 标记必不可少 。 ( 2) 区分大小写 。 ( 3) 起始标记要与结束标记匹
配 。 ( 4) 正确书写结束标记 。 ( 5), 空标记, 可以单独出现 。 )
返回目录
14
8.2 XML语法 — XML属性
属性是元素的可选组成部分, 其作用是对元素及内容的附加信息进
行描述 。 标记中可以包含任意多个属性 。
1,属性的构成:
属性格式为 <元素名 属性名 =“属性值, …… >内容 </元素名 >
2,属性的规则:
( 1) 属性命名与标记的命名规则相同 。
( 2) 属性值是用单引号或双引号定界的字符串, 一般用双引号 。
( 3) 属性之间用空格 。
3,元素与属性
当数据所表示的信息比较简单且不含子结构时, 该数据的表示既可
以用元素, 也可以用属性 。
返回目录
15
8.2 XML语法 — XML注释
注释是用于对语句进行解释的字符, XML处理器在分析文档时对注
释中的内容忽略不计, 也就是说, 注释不是真正的 XML数据 。
1,注释的格式,<!--注释内容 -- >
2,使用注释的规则
( 1) 注释文本中不能出现连字符, -”和双连字符, --”,以免与注释格
式混淆 。
( 2) 注释文本不能放在声明中 。
( 3) 注释文本不能放在标记中 。
( 4) 注释不能嵌套 。
( 5) 注释中如果出现小于号, 大于号, 单引号, 双引号和字符 &,要
使用预定义实体引用来进行代替 。
返回目录
16
8.2 XML语法 — XML的预定义实体引用
XML文档在物理上是由一个或多个存贮单元构成的, 这些存贮单元
被称为实体 。 实体声明后就可以在其他地方引用, 一个简单的实体名
称可以用来代表一大段文本内容, 引用这个名称时, 处理器自动把这
个名称替换为相应文本 。
1,什么是 XML的预定义实体引用
XML中有一些专用于 XML置标的关键字符, 如小于号, 大于号, 单
引号, 双引号和字符 &,如果在文档的内容中也使用这些符号, 处理
器解释时就会发生混乱, 为避免这种情况发生, XML定义了五种预定
义实体引用来代表这五种字符 。
2,XML预定义实体引用规则
( 1) 实体引用中不能出现空格 。 如, & gt;”会引起错误 。
( 2) 一个实体不能引用它自己 。
返回目录
17
8.2 XML语法 — CDATA段
当 XML文档的内容中出现大于号, 小于号等关键字符时, 我们应该
使用预定义实体引用, 但是, 当内容包含大量的关键字符时, 将所有
的关键字符用预定义实体代替十分麻烦 。 针对这种情况, XML提供了
CDATA段的方法 。
1,CDATA段的格式:
<! [CDATA[
文本内容
]]>
2,CDATA的注意事项
CDATA段中唯一不允许出现的文本是 CDATA段的关闭标记, ]]>”,
说明 CDATA段是无法嵌套的 。 当要编写出现, ]]>”的文本的时候, 只
能使用预定义实体 。
返回目录
18
8.3 XML文档类型说明 — 文档类型定义概述
1,什么是 DTD
DTD是一套关于标记的语法规则, 它定义了文档的逻辑结构, 规定了文
档中所使用的元素, 实体, 元素的属性, 元素与实体之间的关系 。 DTD告
诉你可以在哪些文档中使用哪些标记, 各标记出现的次序, 哪些标记出现
在哪些标记中, 哪些标记有属性等等 。
2,使用 DTD的好处
( 1) 用 DTD提供统一格式 。 例如, 用 DTD规定个人简历文档的逻辑结构,
包括所需填写内容和内容排列方式, 所有按照这个 DTD编写的个人简历都
将具有统一格式 。
( 2) 用 DTD验证数据有效性 。 DTD约束文档逻辑结构, 可以根据 DTD检
查数据, 验证其是否符合规定要求, 确保数据正确和有效 。
( 3) 根据 DTD编写文档样式单 。 DTD能在不提供原始资料的情况下, 表
示出一个网页或文档的架构元素, 这意味着用户能先根据 DTD为未来的文
档编写样式单, 然后再安全且不破坏结构的把用户的资料放上去, 提高工
作效率 。
返回目录
19
8.3 XML文档类型说明 — DTD的基本结构
一个文档所用的 DTD是由文档类型声明和一连串标签定义组成, 先看一个例子 。 ( 注意:下面的 ① ~
⑤ 是为说明而加, 不是程序内容 。 )
例:带 DTD的 XML文档
<?xmlversion=”1.0” standalone=“yes”?>
<! DOCTYPE NotebookComputer[ ①
<! ELEMENT CPU (#PCDATA)> ②
<! ELEMENT RAM (#PCDATA) > ③
<! ELEMENT MONITOR (#PCDATA)> ④
]> ⑤
解释:
( 1) 文档中 ① 为 DTD开始标记 。 DTD都以, <! DOCTYPE”开头 。 DOCTYPE声明的位置紧跟
XML文档声明之后 。
( 2) <! DOCTYPE后面为文档的根元素名, 由用户给出合法名字 。
( 3) 文档中的 ②③④ 为元素定义 。 元素定义, 元素属性定义和实体定义是 DTD中最主要内容 。
( 4) 文档中 ⑤ 为 DTD结束标记, DTD都以, ]>”结尾 。
( 5) 所有元素类型定义都以, <! ELEMENT”开头 ( 必须大写 ), 以, >”结尾 。
< NotebookComputer>
< CPU > PIII600 </ CPU >
< RAM > 128M </ RAM >
< MONITOR > 15XGA </ MONITOR >
</ NotebookComputer>
< NotebookComputer>
< CPU > PIV330 </ CPU >
< RAM >256M </ RAM >
< MONITOR > 15XGA </ MONITOR >
</ NotebookComputer>
返回目录
20
8.3 XML文档类型说明 — 文档类型定义概述
( 6)所有 DTD中的关键字都必须大写。标记全使用大写字母,或者元
素名字第一个字母大写,后面每个单词第一个字母大写。可以使用中文标
记。
( 7) #PCDATA或 PCDATA表示该元素只能包含合法字符, 且不含标签
内容, 也不能包含它自己作为子元素 。 见下例 。
例:有效元素和无效元素举例
<!ELEMENT year (#PCDATA)>
<year> 2004 </year> 有效元素
<year> year-2004 </year> 无效元素 ( 包含了标签内容 )
<year>
<month> january </month>
</year> 无效元素 ( 包含了子元素 )
返回目录
21
8.3 XML文档类型说明 — 在文档中引用 DTD
存在两种引用 DTD的方法:内部 DTD的引用和外部 DTD的引用 。
1,内部 DTD的引用
在文档中直接设定的 DTD是内部的, 文档声明中 standalone属性设为
,yes”。 一个包含 DTD的 XML文档的结构为:
<?xml version=”1.0” encoding=”GB2312” standalone=”yes”?>
<! DOCTYPE 根元素名 [元素描述 ]>
文档体 ……
2.外部 DTD的引用
外部文件类型定义存在于独立文件中, 文件扩展名为,,dtd”,将 DTD
作为外部文档引用, 文档声明中 standalone属性设为, no”。 为引用一个外
部 DTD,必须修改 XML声明和 DOCTYPE声明如下:
( 1) XML声明为
返回目录
22
8.3 XML文档类型说明 — 文档类型定义概述
<?xml version=”1.0” encoding=”GB2312” standalone=”no”?>
( 2) DOCTYPE声明为
<! DOCTYPE 根元素名 SYSTEM,外部 DTD文件的 URL”>
例:两个 DTD外部引用的 DOCTYPE声明
( 1 ) <!DOCTYPE 同学录 SYSTEM
“http://www.student.com/abc/txl.dtd”>
其中的 URL是一个绝对路径 。
( 2) <! DOCTYPE 同学录 SYSTEM,txl.dtd”>
其中的 URL是一个相对路径。当使用相对路径时,表示 DTD文件与 XML
文档处于同一主机的同一路径下。
返回目录
23
8.4 XML显示样式单
XML中文档内容和显示是分离的, XML只关心文档内容, 显示方面的事
由称为样式单 ( Style Sheet) 的外部文件完成 。 样式单是描述结构文档表现方式
的文档, 必须针对文档的具体结构或文档的 DTD专门编写 。 样式单有许多突出
优点:对各种标记的显示进行集中定义, 以独立文档方式存在, 不同样式单能
使相同数据呈现不同外观等 。
目前适用于 XML的样式单有两种,CSS和 XSL。当一个 XML文档使用了某
个样式单,应在 XML文档中使用标记 <?xml-stylesheet type=“…” href=”…”?> 予
以声明,表示该 XML文档的显示效果由所引用的样式单决定。
例:两个引用样式单的声明
<?xml-stylesheet type=”text/css”href=”mystyle.css?>
<?xml-stylesheet type=”text/xsl”href=”mystyle.xsl”?>
上面两句分别对应两个不同的 XML文档。样式单声明紧跟在文档声明后面,
第一种样式单声明表明该 XML文档使用 CSS样式单,样式单文件名为
,mystyle.css”,第二种样式单声明表示该 XML文档使用 XSL样式单,样式单文
件名为,mystyle.xsl”。
返回目录
24
8.4 XML显示样式单 — CSS样式单
CSS的全名是 Cascading Style Sheets,1996年底推出,译为“层叠
样
式单”,文件扩展名,css 。 CSS是一组显示规则的集合,为文档的内
容
逐一设计显示方案,其中的每条规则都规定了适用对象和该对象如何
显示。至于排序、组合、选择等,CSS无能为力。
1,CSS构成
CSS的基本格式如下:
selector{property1,value1; property2,value2; … }
说明:
selector:选择符, 指定 CSS规则适用的对象, 常用的选择符为
XML文档元素 。
property:样式属性, 可以是字体, 颜色等 。
value:样式属性的取值,决定样式结果。
返回目录
25
8.4 XML显示样式单 — CSS样式单
例:一个使用 CSS样式单的 XML文档
( XML文件名,ysd-1.xml, 样式单文件名,hello.css )
XML文件 ysd.xml的代码为:
<?xml version=”1.0” standalone=”yes”?>
<?xml-stylesheet type=”text/css” href=”hello.css” >
<hello>
Hello XML!
</hello>
样式单文件 hello.css的代码为:
hello{display:block; font-size:48pt; font-weight:bold; font-
style:italic;color:red;} 。
返回目录
26
8.4 XML显示样式单 — CSS样式单
2,解释
( 1) CSS文件必须保存为文本文件, 扩展名为,,css”。
( 2) 样式单文件 hello.css中, 选择符为 hello,hello是 XML文件
ysd.xml中的元素 。
( 3) hello.css中包含了许多属性, 如:元素类别属性 ( display),
字体属性 ( fron-size,font-weight,font-style), 颜色属性 ( color),
另外, 还可以为元素加上其他属性, 比如:文本属性 ( text-align) 等,
CSS正是通过这些属性控制 XML文档显示时的外观 。
( 4) hello.css中针对每一属性都有相应属性值, 属性值不用定界,
小写 。
( 5) hello.css为 XML文件 ysd.xml中元素 hello的内容定义的显示规则
为,字号为 48磅, 字体为粗体, 字体风格为倾斜字体, 字体颜色为
红色 。
返回目录
27
8.4 XML显示样式单 — CSS中常用样式属性
1,字体属性, 共有 5种:
( 1) font-family 设置显示对象所使用的字体, 属性值为用
逗号分隔的字体名列表, 当 XML文档在浏览器中显示时, 若第
一种字体不存在就按第二种字体显示, 依次类推, 浏览器将从
现有的字体中选择一种 。
( 2) font-style 设置显示对象所使用的字体风格, 与 WORD中
字体风格一致, 属性值 有三种,normal( 正常, 默认值 ),
italic( 倾斜字体 ), oblique( 也是倾斜字体 ) 。
( 3) font-size 设置显示对象所使用的字号, 即字的大小 。
( 4) font-weight 设置字体粗细, 属性值有 4种,nomal( 正常 ),
bold( 粗体 ), bolder( 子元素字体相对父元素字体 粗些 ), lighter
( 子元素字体相对父元素字体细些 ) 。
返回目录
28
8.4 XML显示样式单 — CSS样式单
( 5) font-variant 变体属性, 属性值只有两个, normal
( 正常, 默认值 ), small-caps( 用比原文本号小些的大写字
母代替文本中的小写字母 。 )
2,颜色属性
颜色属性用 color表示, 常用属性值有,black,blue,green,
red,brown,yellow,white,也可以用 rgb( )函数表示, 如:
{color,rgb(155,0,255)}
3,文本属性, 共有 8种:
( 1) text-align 设置文本在水平方向的对齐方式 。 属性值有 4
种,left( 左对齐 ), right( 右对齐 ), center( 居中对齐 ),
justify( 两端对齐 ) 。
返回目录
29
8.4 XML显示样式单 — CSS样式单
( 2) text-indent 设置块级元素首行的缩进方式。属性值为带
单位的数值,属性值可正可负,若为正值,首行比其他行短,若
为负值,首行比其他行长。
( 3) line-height 设置文本内容行的高度,调整行高实际上
是调整行之间距离。
( 4) vertical-align 设置元素在垂直方向的对齐方式,又
称基线定位。属性值有 8种,baseline(默认值,子元素基线与
父元素基线对齐),sub(将元素表示为下标),super(将元素
表示为上 `标),top(元素顶端与同行最高元素的顶端对齐),
text-top(元素顶端与父元素的顶端对齐),middle(元素顶端
与父元素的基线加上 x字母高度的一半对齐),bottom(元素底
端与同行最低元素的底端对齐),text-bottom(元素底端与父
元素的底端对齐)。
返回目录
30
8.4 XML显示样式单 — CSS样式单
( 5) text-decoration设置文本修饰 。 常用属性值为,none(
默认值, 不设置该属性 ), underline( 下划线 ), overline(
上边线 ), line-through( 删除线 ) 。
( 6) text-transform 西文属性, 设置西文文本的大小写 。
常用属性值为,none( 默认值, 不设置该属性 ), uppercase(
全部转为大写 ), lowercase( 全部转为小写 ), capitalize(
将每个单词首字母转为大写 ) 。
( 7) word-spacing 西文属性, 设置单词间的间隔 。 属性值
通常为带单位的数值, 如,0.5cm或 normal( 默认值 ) 。
( 8) letter-spacing 西文属性,设置字母间的间隔。属性
值通常为带单位的数值,如,0.5cm或 normal(默认值)。
4,背景属性
背景属性设置元素的背景。可以是一种颜色或一幅图像。有 5
种常用属性:
返回目录
31
8.4 XML显示样式单 — CSS样式单
( 1) background-color 设置元素背景色。属性值与 color的属性值
同。
( 2) background-image 设置元素背景图像。属性值为图像的 URL地
址。
( 3) background-repeat 设置图像平铺方式。属性值有,no-
repeat(不进行平铺),repeat-x(只在水平方向平铺),repeat-y(
只在垂直方向平铺),repeat(正常平铺)。
( 4) background-attachment 设置背景图像与文档的连带关系,即
背景图是否滚动。属性值有两种,scroll(背景图像附加在文档上,文
档在浏览器中滚动时图像也随之滚动),fixed(背景图像与文档分离
,不随文档滚动)。
( 5) background-position 设定元素的背景图像与元素的位置关系
。默认背景图像左上角与元素的左上角对齐。共有 5个关键字,top,
bottom,left,right,center,每次采用其 中的两个关键字 来确定
背景图像左上角的坐标,表示背景图像左上角在元素中的位置。
返回目录
32
8.4 XML显示样式单 — XSL样式单
XSL( Extensible Stylesheet Language)是描述 XML文档样式的
一种语言,称为可扩展样式语言,是万维网协会( W3C)正在开发的
一个规范,目的是用一种标准方式对 XML文档进行格式化。
1,关于 XSL
XSL文档本身实际上是一个 XML文档,是 XML的具体应用。它通过
XML定义,遵守 XML语法规则,系统使用同一个 XML分析器对 XML文档
及相关的 XSL文档进行处理。 XSL样式单的文件扩展名为,,xsl”,在
XML文档中用如下声明来引用 XSL样式单:
<?xml-stylesheet type=”text/xsl” href=”mystyle.xsl”?>
说明:
xml-stylesheet 表示该指令为引用样式单指令。
type=”text/xsl” 表明该样式单为 XSL样式单。
href=”mystyle.xsl” 表示引用的样式单在当前目录,
mystyle.xsl是样式单文件名。
返回目录
33
8.4 XML显示样式单 — XSL样式单
2,XSL的组成
XSL由两部分组成,第一部分将 XML文档转换为其他格式文档,又称
为, 转换语言,,典型的转换是将 XML文档转换为结构完整的 HTML文档
,
这一部分现在已比较成熟,第二部分称为, 格式化语言,,直接描述
XML
的显示方案,定义了一套命令集合,这一部分还没有完全成熟。
3,XSL样式表
简单的 XSL样式表实际上是一个特殊形式的 XML标记,定义了元素的
类型和属性,限定它们只能出现在 特定位置上,并赋予它们语义。在
XSL样式单中,只有以,xsl:”开头的标记才是 XSL的真正标记,才能构
成
元素,其他的只是元素的内容。 XSL处理的对象是节点,XSL能够处理
的 XML文档的节点有 7种:根节点、元素、属性、指令、注释、文本和命
名域。
4,包含 XSL样式单的 XML.
几个 XSL常用语句:
xsl,stylesheet 声明语句 。
xsl,template 模板函数, 相当于编程中的函数 。
xsl,template match=”, 相当于调用函数去匹配引号中指定的节
返回目录
34
8.4 XML显示样式单 — XSL样式单
xsl,apply-templates 应用模板函数 。
xsl,apply-templates select=”, 在应用模板函数中调用引号指
定的模板 。
xsl,for-each select=”, 循环语句, 遍历与引号中属性值相同
的节点 。
xsl,value-of select=”, 赋值语句, 取出引号中指定的属性值 。
5,XSL的模式
模式和模板构成模板规则, 模板规则是 XSL样式单的最主要部分 。 XSL
样式单的模式用来匹配适合该模板规则的节点, 再由模板完成对匹配节点
的转换 。 模式中对节点的选择通过 xsl,template元素的 match属性实现 。
下面介绍几种常用的匹配方法
( 1) 匹配根节点
格式,< xsl,template match=”/”>
返回目录
35
8.4 XML显示样式单 — XSL样式单
说明:为使输出文档结构完整, 根节点模板规则必须有
,是样式单第一个模板规则 。
( 2) 匹配元素名
格式,< xsl,template match=”XML文档中的元素名, >
说明,XML文档中所有同名元素都将使用同一个模板规则 。
( 3) 匹配属性
XML文档中的属性隶属于元素, 不能将属性名作为 match
的值, 而是要先匹配元素名, 再匹配属性 。
( 4) 匹配指令
要读取指令节点的值形成新的样式单指令插入到结果文档中
,应使用 pi( ) 函数 。 若 pi( ) 函数的括号内没有参数, 函数将
匹配当前节点的第一个指令子节点, 若包含一个指令名作参数,
将匹配该指令 。
返回目录
36
8.4 XML显示样式单 — XSL样式单
( 5) 匹配注释
若想在文档转换时保留源文档中的注释, 需要用注释匹
配函数 comment( )对注释进行匹配, 该函数不带任何参数
。 见如下例句:
<zhushi> <xsl,value-of select=”comment()”/>
</zhushi>
( 6) 匹配文本
在 XML文档中, 标记和内容共同构成元素, 但在 XSL中,
内容是元素节点的子节点, 它们不再是一个整体, 因为元
素的内容已经独立成为一个文本节点 。 要取得元素的内容
应使用函数 text()。 取元素内容的操作是 XSL样式单中最常
出现的内容 。
返回目录
37
8.4 XML显示样式单 — XSL样式单
6,XSL的模板
XSL模板的作用是描述结果文档的构成, 要做两件事:将源文档的
数据复制到模板和在模板中添加新内容 。 所有这些工作都是由 XSL的元
素完成 。 我们只介绍几个模板中最常用的 XSL元素 。
( 1) xsl,apply-templates元素
xsl,apply-template元素的作用是在当前样式单中遍历它所属节
点的所有子节点, 检查是否有与子节点相匹配的模板规则, 若有则执行
该模板规则 。
( 2) xsl,value-of元素
xsl,value-of元素的作用是将文档节点的值输出到结果文档中 。
( 3) xsl,for-each元素
若一个节点包含多个同名子节点, xsl,value-of元素只处理第一个
,要想处理所有这些同名子节点, 应使用 xsl,for-each元素 。
( 4) xsl:copy元素
xsl:copy元素的作用是将该元素内容输出到结果文档 。
返回目录
38
8.4 XML显示样式单 — XSL样式单
( 5) xsl,comment元素
xsl,comment元素的作用是在模板中生成注释, 元素内容将形成结果
文档中注释的内容
( 6) xsl,sort元素
xsl,sort元素的作用是将所处理的节点按关键字进行排序, 默认按关
键字字母升序排序 。 该元素一般情况下作为 xsl,apply-templates元素和
xsl:for-each元素的子元素出现, 关键字用 select属性定义 。
( 7) xsl,element元素
xsl,element元素的作用是在结果文档中创建新元素 。 若信息在源文档
中以元素属性的形态存在, 却想在新文档中以元素表示, 就需要使用 xsl:
element元素 。 在创建新元素时, xsl,element元素 name属性的属性值形成
新元素的元素名, xsl,element元素的内容形成新元素的内容 。
( 8) xsl,attribute元素
xsl,attribute元素的作用是在结果文档中插入一个与源文档有关的属
性 。
返回目录
39
本 章 小 结
? XML概述
– 为实现计算机处理而在数据中加入附加信息, 这种附加的信
息称为, 标记, 。
– 在普通文本中加入一些有特定含义的标记, 从而对文本内容
进行标识和说明的一种文件表示方法 。
– 如果所使用的标记都是非预定义的, 用户可以按实际需求自
定义标记, 对于自定义标记, 用户可以在文档内或文档外进
行说明, 也可以不说明, 这种性质被称为是可扩展的 。
– XML除了显示数据之外, 主要用来描述数据 。 XML是可扩
展的, 允许用户自定义标记和自定义文档结构 。
? XML语法
– XML文件又分为两部分:声明部分和文件主体部分 。
返回目录
40
本 章 小 结
? XML语法
– XML有七条最常使用的规则 。
– 声明中包括 3部分内容:版本信息, 内码信息, 文件类型
定义 。
– 元素形式为,<标记 >数据内容 </标记 > 。
– 在创建 XML文档过程中增加的内容, 包括指令, 标记, 注
释, DTD等, 都是, 置标, 。
– 属性是元素的可选组成部分, 其作用是对元素及内容的
附加信息进行描述 。
– CDATA段中的所有内容, 包括 XML的关键字符, 全都被当
作纯字符数据对待, XML处理器不会对它们进行解释 。
返回目录
41
本 章 小 结
? XML文档类型说明
– DTD是一套关于标记的语法规则, 它定义了文档的逻辑结构, 规定
了文档中所使用的元素, 实体, 元素的属性, 元素与实体之间的关
系 。
– 一个文档所用的 DTD是由文档类型声明和一连串标签定义组成 。
– 存在两种引用 DTD的方法:内部 DTD的引用和外部 DTD的引用 。
? XSL样式单
– 样式单是描述结构文档表现方式的文档, 必须针对文档的具体结构
或文档的 DTD专门编写 。
– 目前适用于 XML的样式单有两种,CSS和 XSL。
– CSS是一组显示规则的集合, 为文档的内容逐一设计显示方案, 其
中的每条规则都规定了适用对象和该对象如何显示 。
– XSL样式属性是指元素的哪些属性可以在样式单中改变是描述 XML文
档样式的一种语言, 称为可扩展样式语言 。
返回目录
42
本 章 小 结
? XML文档类型说明
– DTD是一套关于标记的语法规则, 它定义了文档的逻辑结构,
规定了文档中所使用的元素, 实体, 元素的属性, 元素与实
体之间的关系 。
– 一个文档所用的 DTD是由文档类型声明和一连串标签定义
组成 。
– 存在两种引用 DTD的方法:内部 DTD的引用和外部 DTD的引
用 。
– 样式单是描述结构文档表现方式的文档, 必须针对文档的具
体结构或文档的 DTD专门编写 。
– CSS是一组显示规则的集合, 为文档的内容逐一设计显示方
案, 其中的每条规则都规定了适用对象和该对象如何显示 。
返回目录
第 8章 XML语言简介
学习目标
? XML的概念
? XML的语法规则
? XML的文档及文档规则
? XML显示样式单的构成和约定
2
第 8章 XML语言简介
教学内容
8.1 XML概述
8.2 XML语法
8.3 XML文档类型说明
8.4 XML显示样式表
本章小结
返回总目录
3
8.1 XML概述 — 关于 XML的简单介绍
返回目录
XML( Extensible Markup Language)的中文含义是, 可扩展标记
语言,,主要应用于电子商务、数据检索和信息交换等领域的动态网
页和网站设计 。
标记,实现计算机处理而在数据中加入附加信息,这种附加的信
息称为, 标记, 。
标记语言,标记语言是在普通文本中加入一些有特定含义的标记,
从而对文本内容进行标识和说明的一种文件表示方法。
可扩展的,如果所使用的标记都是非预定义的,用户可以按实际
需求自定义标记,对于自定义标记,用户可以在文档内或文档外进行
说明,也可以不说明,这种性质被称为是可扩展的。
HTML有自身不足, 它不能描述文档的语义并且不具备可扩展性 。
XML技术正是顺应这种技术发展潮流的产物, 它是结构化的, 具有自
描述性的可扩展标记语言, 它不仅具有信息表示能力, 重要的是它能
描述 Web的语义, 使用 XML描述的文档具有良好的机器可读性 。
4
8.1 XML概述 — XML与计算机程序语言的区别
XML虽被称为可扩展的标记语言,但它与编程中
的计算机程序语言的概念有所不同,计算机程序语言有
特定词汇集和语法,并严格按照语法用词汇集中的词汇
书写计算机指令,除了参数,指令中一般不含词汇集以
外的词。而 XML没有特定的词汇集,也无需书写计算机
指令,它只是按一定规则在文本文档中添加标记,特殊
需要时,按规则和语法对标记和标记间关系进行定义和
说明。
返回目录
5
8.1 XML概述 — XML与 HTML的区别
HTML( HyperText Markup Language) 是超文本标记语言, 用来进行
基于 Internet的网页设计, 也就是在 Internet上发布信息, 是一种用于全
球广域网上文档的标准标记语言 。 XML类似于 HTML,但它们有很多
不同, 主要表现在 2个方面:
1,HTML主要用来显示数据, XML除了显示数据之外, 主要用来描
述数据 。
2,HTML中所有标记都是预定义的, 用户只能使用标准的标记 。
XML是可扩展的, 允许用户自定义标记和自定义文档结构 。 XML与
HTML之间不是竞争关系而是相互补充的关系, 各种浏览器都能识别
和处理这两种语言, 它们都可以直接用于因特网 。 随着 XML显示功能
日益完善, XML的应用领域要比 HTML广阔的多 。 总之, HTML使得
Web文档结构化, 而 XML将文档描述提到一个更高层次 。
返回目录
6
8.1 XML概述 — 使用 XML的主要好处
1,便于不同系统平台的信息互通 。
XML文件是纯文本文件, 可以被不同系统中所有计算机识别, 各种
文字, 图像甚至二进制文件都能很好地处理为 XML文件, 这使得 XML
成为理想的网际语言, 给不同系统平台的信息互通打开方便之门 。
2,为不同数据库的数据提供了统一接口
XML可以给数据库和用户之间加一个中间层, 使所有数据库数据都
转换成 XML格式, 呈现给用户统一的数据格式, 方便了不同数据库之
间的数据传递, 为不同数据库的数据提供了统一接口 。
3,支持更精确的数据检索
在 XML中进行数据搜索时, 搜索引擎不必遍历查询整个 XML文档,
只须查找相关的, 表达特定意义的标记下的内容, 搜索便完成了 。
返回目录
7
8.2 XML语法
XML对语法有着严格规定, 这一点与 HTML有所不同 。
一个 XML文档必须严格遵守 XML1.0规范中的语法规则,
才能被处理程序正确地分析, 解释, 处理 。 正因为如此,
XML很容易被机器理解, 机器处理的正确性和效率都比
较高 。 检查正在编辑的 XML文档是否规范, 最简单的方
法就是用 Internet Explorer打开它, 如不能正常显示, 则
需要检查该 XML文档的语法规则或文字错误 。
返回目录
8
8.2 XML语法 — XML文档的构成
XML文档由两个文件构成,XML文件和 XML文件附
带的样式单文件 。 XML文件又分为两部分:声明部分和
文件主体部分 。 它的最基本的构成如下:
XML声明
处理指令 ( 可选 )
XML元素
规范的 XML文件又称为构造良好的 XML文件 ( Well-
Formed XML Documents) 。
返回目录
9
8.2 XML语法 — XML最常使用的规则
1,文档包含一个或多个元素且至少包含一个元素 。
2,文档中只存在一个称为根的元素, 该元素无任何部分
出现在其他元素中 。
3,以起始标签和结束标签为界的其他各元素必须严格嵌
套 。
4,元素必须正确关闭 。
5,元素不得交叉 。
6,属性值必须加引号 。
7.区分大小写。
返回目录
10
8.2 XML语法 — XML文档的声明
1,声明的构成
声明中包括 3部分内容:版本信息, 内码信息, 文件类型定义 。
例:一个最简单的 XML声明,
<?xml version=”1.0”?>
2,对声明格式的解释:
( 1) XML声明都是由, <?”开始, 由,?>”结束 。
( 2) <?……?>表示该行是一条指令 。
( 3) xml 表示该文件是一个 XML文件 。
( 4) version=”1.0” 表示该文件执行 XML 1.0 标准 。
( 5) encoding=”gb2312” 表示该文件使用 GB2312字符集 。
( 6) standalone=”yes” 表示该文件没有引用其他外部的 XML文件 。
返回目录
11
8.2 XML语法 — XML文档的声明
3,声明中几个属性的具体含义:
( 1) version属性:指明采用的 XML版本号, 必选项, 排在属性列表的第一位 。
( 2) encoding属性:指明文档中使用的字符集, 可选项, 排在属性列表的第二位 。 所
有 XML语法分析器都支持 8位和 16的内码标准, 如果要使用更大的编码集合, 要在声明
中使用 encoding属性定义 。
( 3) standalone属性:指明当前 XML文档是否与一个独立的置标声明文件配套使用, 可
选项, 排在属性列表的第三位 。 standalone属性实际上是独立文件声明, 它的取值只有
两种,yes和 no。
4,关于 XML声明的注意事项:
( 1) 如果在 XML文档中包括声明, 则该声明必须是文档的第一个内容 。
( 2) 声明中必须包含版本号属性 。
( 3) 声明中如果包含所有属性, 则排列顺序依次为:版本号属性, 字符集属性, 独立
文件属性, 不能颠倒 。
( 4) XML声明必须小写 ( 内码声明除外:, gb2312”和, GB2312”均可 ) 。
( 5) 声明中的属性值 ( 如:, gb2312”) 要用单引号或双引号定界 。
返回目录
12
8.2 XML语法 — XML元素
1,元素的结构
元素是 XML文档内容的基本单元, 从语法上讲, 一个元素是由起始
标记, 数据内容和结束标记组成的 。 元素形式为,<标记 >数据内容 </
标记 >。
2,元素的嵌套
若元素中包含其他元素, 称为元素的嵌套, 大部分 XML文档都由嵌
套的元素组成, 这就构成 XML文档元素的树状结构 。
3,元素的嵌套规则
( 1) 所有 XML文档都从一个根节点开始, 根节点包含一个根元素 。
( 2) 文档内所有其他元素都包含在根元素中, 称为根元素的子元素 。
( 3) 子元素还可以包含子元素 。
返回目录
13
8.2 XML语法 — XML标记
“置标, 是 XML语言的精髓, 在创建 XML文档过程中增加的内容, 包括指令,
标记, 注释, DTD等, 都是, 置标, 。
1,标记的结构
标记的格式为,<标记名称 >
由三部分组成, 标记起始字符, <”,标记名称, 标记终止字符, >”。
2,标记的命名规则如下:
( 1) 以英文字母或下划线开头, 由半角 ASCII码的英文字母, 下划线, 连接
符和句点组成, 若声明中包含 encoding=”gb2312”,可以用简体汉字开头, 名
称中可以有汉字 。 ( 2) 名称中不能有空格 。
3,空标记,若一对标记之间无任何内容, 称之为空标记 。
4,标记的使用规则:
( 1) 标记必不可少 。 ( 2) 区分大小写 。 ( 3) 起始标记要与结束标记匹
配 。 ( 4) 正确书写结束标记 。 ( 5), 空标记, 可以单独出现 。 )
返回目录
14
8.2 XML语法 — XML属性
属性是元素的可选组成部分, 其作用是对元素及内容的附加信息进
行描述 。 标记中可以包含任意多个属性 。
1,属性的构成:
属性格式为 <元素名 属性名 =“属性值, …… >内容 </元素名 >
2,属性的规则:
( 1) 属性命名与标记的命名规则相同 。
( 2) 属性值是用单引号或双引号定界的字符串, 一般用双引号 。
( 3) 属性之间用空格 。
3,元素与属性
当数据所表示的信息比较简单且不含子结构时, 该数据的表示既可
以用元素, 也可以用属性 。
返回目录
15
8.2 XML语法 — XML注释
注释是用于对语句进行解释的字符, XML处理器在分析文档时对注
释中的内容忽略不计, 也就是说, 注释不是真正的 XML数据 。
1,注释的格式,<!--注释内容 -- >
2,使用注释的规则
( 1) 注释文本中不能出现连字符, -”和双连字符, --”,以免与注释格
式混淆 。
( 2) 注释文本不能放在声明中 。
( 3) 注释文本不能放在标记中 。
( 4) 注释不能嵌套 。
( 5) 注释中如果出现小于号, 大于号, 单引号, 双引号和字符 &,要
使用预定义实体引用来进行代替 。
返回目录
16
8.2 XML语法 — XML的预定义实体引用
XML文档在物理上是由一个或多个存贮单元构成的, 这些存贮单元
被称为实体 。 实体声明后就可以在其他地方引用, 一个简单的实体名
称可以用来代表一大段文本内容, 引用这个名称时, 处理器自动把这
个名称替换为相应文本 。
1,什么是 XML的预定义实体引用
XML中有一些专用于 XML置标的关键字符, 如小于号, 大于号, 单
引号, 双引号和字符 &,如果在文档的内容中也使用这些符号, 处理
器解释时就会发生混乱, 为避免这种情况发生, XML定义了五种预定
义实体引用来代表这五种字符 。
2,XML预定义实体引用规则
( 1) 实体引用中不能出现空格 。 如, & gt;”会引起错误 。
( 2) 一个实体不能引用它自己 。
返回目录
17
8.2 XML语法 — CDATA段
当 XML文档的内容中出现大于号, 小于号等关键字符时, 我们应该
使用预定义实体引用, 但是, 当内容包含大量的关键字符时, 将所有
的关键字符用预定义实体代替十分麻烦 。 针对这种情况, XML提供了
CDATA段的方法 。
1,CDATA段的格式:
<! [CDATA[
文本内容
]]>
2,CDATA的注意事项
CDATA段中唯一不允许出现的文本是 CDATA段的关闭标记, ]]>”,
说明 CDATA段是无法嵌套的 。 当要编写出现, ]]>”的文本的时候, 只
能使用预定义实体 。
返回目录
18
8.3 XML文档类型说明 — 文档类型定义概述
1,什么是 DTD
DTD是一套关于标记的语法规则, 它定义了文档的逻辑结构, 规定了文
档中所使用的元素, 实体, 元素的属性, 元素与实体之间的关系 。 DTD告
诉你可以在哪些文档中使用哪些标记, 各标记出现的次序, 哪些标记出现
在哪些标记中, 哪些标记有属性等等 。
2,使用 DTD的好处
( 1) 用 DTD提供统一格式 。 例如, 用 DTD规定个人简历文档的逻辑结构,
包括所需填写内容和内容排列方式, 所有按照这个 DTD编写的个人简历都
将具有统一格式 。
( 2) 用 DTD验证数据有效性 。 DTD约束文档逻辑结构, 可以根据 DTD检
查数据, 验证其是否符合规定要求, 确保数据正确和有效 。
( 3) 根据 DTD编写文档样式单 。 DTD能在不提供原始资料的情况下, 表
示出一个网页或文档的架构元素, 这意味着用户能先根据 DTD为未来的文
档编写样式单, 然后再安全且不破坏结构的把用户的资料放上去, 提高工
作效率 。
返回目录
19
8.3 XML文档类型说明 — DTD的基本结构
一个文档所用的 DTD是由文档类型声明和一连串标签定义组成, 先看一个例子 。 ( 注意:下面的 ① ~
⑤ 是为说明而加, 不是程序内容 。 )
例:带 DTD的 XML文档
<?xmlversion=”1.0” standalone=“yes”?>
<! DOCTYPE NotebookComputer[ ①
<! ELEMENT CPU (#PCDATA)> ②
<! ELEMENT RAM (#PCDATA) > ③
<! ELEMENT MONITOR (#PCDATA)> ④
]> ⑤
解释:
( 1) 文档中 ① 为 DTD开始标记 。 DTD都以, <! DOCTYPE”开头 。 DOCTYPE声明的位置紧跟
XML文档声明之后 。
( 2) <! DOCTYPE后面为文档的根元素名, 由用户给出合法名字 。
( 3) 文档中的 ②③④ 为元素定义 。 元素定义, 元素属性定义和实体定义是 DTD中最主要内容 。
( 4) 文档中 ⑤ 为 DTD结束标记, DTD都以, ]>”结尾 。
( 5) 所有元素类型定义都以, <! ELEMENT”开头 ( 必须大写 ), 以, >”结尾 。
< NotebookComputer>
< CPU > PIII600 </ CPU >
< RAM > 128M </ RAM >
< MONITOR > 15XGA </ MONITOR >
</ NotebookComputer>
< NotebookComputer>
< CPU > PIV330 </ CPU >
< RAM >256M </ RAM >
< MONITOR > 15XGA </ MONITOR >
</ NotebookComputer>
返回目录
20
8.3 XML文档类型说明 — 文档类型定义概述
( 6)所有 DTD中的关键字都必须大写。标记全使用大写字母,或者元
素名字第一个字母大写,后面每个单词第一个字母大写。可以使用中文标
记。
( 7) #PCDATA或 PCDATA表示该元素只能包含合法字符, 且不含标签
内容, 也不能包含它自己作为子元素 。 见下例 。
例:有效元素和无效元素举例
<!ELEMENT year (#PCDATA)>
<year> 2004 </year> 有效元素
<year> year-2004 </year> 无效元素 ( 包含了标签内容 )
<year>
<month> january </month>
</year> 无效元素 ( 包含了子元素 )
返回目录
21
8.3 XML文档类型说明 — 在文档中引用 DTD
存在两种引用 DTD的方法:内部 DTD的引用和外部 DTD的引用 。
1,内部 DTD的引用
在文档中直接设定的 DTD是内部的, 文档声明中 standalone属性设为
,yes”。 一个包含 DTD的 XML文档的结构为:
<?xml version=”1.0” encoding=”GB2312” standalone=”yes”?>
<! DOCTYPE 根元素名 [元素描述 ]>
文档体 ……
2.外部 DTD的引用
外部文件类型定义存在于独立文件中, 文件扩展名为,,dtd”,将 DTD
作为外部文档引用, 文档声明中 standalone属性设为, no”。 为引用一个外
部 DTD,必须修改 XML声明和 DOCTYPE声明如下:
( 1) XML声明为
返回目录
22
8.3 XML文档类型说明 — 文档类型定义概述
<?xml version=”1.0” encoding=”GB2312” standalone=”no”?>
( 2) DOCTYPE声明为
<! DOCTYPE 根元素名 SYSTEM,外部 DTD文件的 URL”>
例:两个 DTD外部引用的 DOCTYPE声明
( 1 ) <!DOCTYPE 同学录 SYSTEM
“http://www.student.com/abc/txl.dtd”>
其中的 URL是一个绝对路径 。
( 2) <! DOCTYPE 同学录 SYSTEM,txl.dtd”>
其中的 URL是一个相对路径。当使用相对路径时,表示 DTD文件与 XML
文档处于同一主机的同一路径下。
返回目录
23
8.4 XML显示样式单
XML中文档内容和显示是分离的, XML只关心文档内容, 显示方面的事
由称为样式单 ( Style Sheet) 的外部文件完成 。 样式单是描述结构文档表现方式
的文档, 必须针对文档的具体结构或文档的 DTD专门编写 。 样式单有许多突出
优点:对各种标记的显示进行集中定义, 以独立文档方式存在, 不同样式单能
使相同数据呈现不同外观等 。
目前适用于 XML的样式单有两种,CSS和 XSL。当一个 XML文档使用了某
个样式单,应在 XML文档中使用标记 <?xml-stylesheet type=“…” href=”…”?> 予
以声明,表示该 XML文档的显示效果由所引用的样式单决定。
例:两个引用样式单的声明
<?xml-stylesheet type=”text/css”href=”mystyle.css?>
<?xml-stylesheet type=”text/xsl”href=”mystyle.xsl”?>
上面两句分别对应两个不同的 XML文档。样式单声明紧跟在文档声明后面,
第一种样式单声明表明该 XML文档使用 CSS样式单,样式单文件名为
,mystyle.css”,第二种样式单声明表示该 XML文档使用 XSL样式单,样式单文
件名为,mystyle.xsl”。
返回目录
24
8.4 XML显示样式单 — CSS样式单
CSS的全名是 Cascading Style Sheets,1996年底推出,译为“层叠
样
式单”,文件扩展名,css 。 CSS是一组显示规则的集合,为文档的内
容
逐一设计显示方案,其中的每条规则都规定了适用对象和该对象如何
显示。至于排序、组合、选择等,CSS无能为力。
1,CSS构成
CSS的基本格式如下:
selector{property1,value1; property2,value2; … }
说明:
selector:选择符, 指定 CSS规则适用的对象, 常用的选择符为
XML文档元素 。
property:样式属性, 可以是字体, 颜色等 。
value:样式属性的取值,决定样式结果。
返回目录
25
8.4 XML显示样式单 — CSS样式单
例:一个使用 CSS样式单的 XML文档
( XML文件名,ysd-1.xml, 样式单文件名,hello.css )
XML文件 ysd.xml的代码为:
<?xml version=”1.0” standalone=”yes”?>
<?xml-stylesheet type=”text/css” href=”hello.css” >
<hello>
Hello XML!
</hello>
样式单文件 hello.css的代码为:
hello{display:block; font-size:48pt; font-weight:bold; font-
style:italic;color:red;} 。
返回目录
26
8.4 XML显示样式单 — CSS样式单
2,解释
( 1) CSS文件必须保存为文本文件, 扩展名为,,css”。
( 2) 样式单文件 hello.css中, 选择符为 hello,hello是 XML文件
ysd.xml中的元素 。
( 3) hello.css中包含了许多属性, 如:元素类别属性 ( display),
字体属性 ( fron-size,font-weight,font-style), 颜色属性 ( color),
另外, 还可以为元素加上其他属性, 比如:文本属性 ( text-align) 等,
CSS正是通过这些属性控制 XML文档显示时的外观 。
( 4) hello.css中针对每一属性都有相应属性值, 属性值不用定界,
小写 。
( 5) hello.css为 XML文件 ysd.xml中元素 hello的内容定义的显示规则
为,字号为 48磅, 字体为粗体, 字体风格为倾斜字体, 字体颜色为
红色 。
返回目录
27
8.4 XML显示样式单 — CSS中常用样式属性
1,字体属性, 共有 5种:
( 1) font-family 设置显示对象所使用的字体, 属性值为用
逗号分隔的字体名列表, 当 XML文档在浏览器中显示时, 若第
一种字体不存在就按第二种字体显示, 依次类推, 浏览器将从
现有的字体中选择一种 。
( 2) font-style 设置显示对象所使用的字体风格, 与 WORD中
字体风格一致, 属性值 有三种,normal( 正常, 默认值 ),
italic( 倾斜字体 ), oblique( 也是倾斜字体 ) 。
( 3) font-size 设置显示对象所使用的字号, 即字的大小 。
( 4) font-weight 设置字体粗细, 属性值有 4种,nomal( 正常 ),
bold( 粗体 ), bolder( 子元素字体相对父元素字体 粗些 ), lighter
( 子元素字体相对父元素字体细些 ) 。
返回目录
28
8.4 XML显示样式单 — CSS样式单
( 5) font-variant 变体属性, 属性值只有两个, normal
( 正常, 默认值 ), small-caps( 用比原文本号小些的大写字
母代替文本中的小写字母 。 )
2,颜色属性
颜色属性用 color表示, 常用属性值有,black,blue,green,
red,brown,yellow,white,也可以用 rgb( )函数表示, 如:
{color,rgb(155,0,255)}
3,文本属性, 共有 8种:
( 1) text-align 设置文本在水平方向的对齐方式 。 属性值有 4
种,left( 左对齐 ), right( 右对齐 ), center( 居中对齐 ),
justify( 两端对齐 ) 。
返回目录
29
8.4 XML显示样式单 — CSS样式单
( 2) text-indent 设置块级元素首行的缩进方式。属性值为带
单位的数值,属性值可正可负,若为正值,首行比其他行短,若
为负值,首行比其他行长。
( 3) line-height 设置文本内容行的高度,调整行高实际上
是调整行之间距离。
( 4) vertical-align 设置元素在垂直方向的对齐方式,又
称基线定位。属性值有 8种,baseline(默认值,子元素基线与
父元素基线对齐),sub(将元素表示为下标),super(将元素
表示为上 `标),top(元素顶端与同行最高元素的顶端对齐),
text-top(元素顶端与父元素的顶端对齐),middle(元素顶端
与父元素的基线加上 x字母高度的一半对齐),bottom(元素底
端与同行最低元素的底端对齐),text-bottom(元素底端与父
元素的底端对齐)。
返回目录
30
8.4 XML显示样式单 — CSS样式单
( 5) text-decoration设置文本修饰 。 常用属性值为,none(
默认值, 不设置该属性 ), underline( 下划线 ), overline(
上边线 ), line-through( 删除线 ) 。
( 6) text-transform 西文属性, 设置西文文本的大小写 。
常用属性值为,none( 默认值, 不设置该属性 ), uppercase(
全部转为大写 ), lowercase( 全部转为小写 ), capitalize(
将每个单词首字母转为大写 ) 。
( 7) word-spacing 西文属性, 设置单词间的间隔 。 属性值
通常为带单位的数值, 如,0.5cm或 normal( 默认值 ) 。
( 8) letter-spacing 西文属性,设置字母间的间隔。属性
值通常为带单位的数值,如,0.5cm或 normal(默认值)。
4,背景属性
背景属性设置元素的背景。可以是一种颜色或一幅图像。有 5
种常用属性:
返回目录
31
8.4 XML显示样式单 — CSS样式单
( 1) background-color 设置元素背景色。属性值与 color的属性值
同。
( 2) background-image 设置元素背景图像。属性值为图像的 URL地
址。
( 3) background-repeat 设置图像平铺方式。属性值有,no-
repeat(不进行平铺),repeat-x(只在水平方向平铺),repeat-y(
只在垂直方向平铺),repeat(正常平铺)。
( 4) background-attachment 设置背景图像与文档的连带关系,即
背景图是否滚动。属性值有两种,scroll(背景图像附加在文档上,文
档在浏览器中滚动时图像也随之滚动),fixed(背景图像与文档分离
,不随文档滚动)。
( 5) background-position 设定元素的背景图像与元素的位置关系
。默认背景图像左上角与元素的左上角对齐。共有 5个关键字,top,
bottom,left,right,center,每次采用其 中的两个关键字 来确定
背景图像左上角的坐标,表示背景图像左上角在元素中的位置。
返回目录
32
8.4 XML显示样式单 — XSL样式单
XSL( Extensible Stylesheet Language)是描述 XML文档样式的
一种语言,称为可扩展样式语言,是万维网协会( W3C)正在开发的
一个规范,目的是用一种标准方式对 XML文档进行格式化。
1,关于 XSL
XSL文档本身实际上是一个 XML文档,是 XML的具体应用。它通过
XML定义,遵守 XML语法规则,系统使用同一个 XML分析器对 XML文档
及相关的 XSL文档进行处理。 XSL样式单的文件扩展名为,,xsl”,在
XML文档中用如下声明来引用 XSL样式单:
<?xml-stylesheet type=”text/xsl” href=”mystyle.xsl”?>
说明:
xml-stylesheet 表示该指令为引用样式单指令。
type=”text/xsl” 表明该样式单为 XSL样式单。
href=”mystyle.xsl” 表示引用的样式单在当前目录,
mystyle.xsl是样式单文件名。
返回目录
33
8.4 XML显示样式单 — XSL样式单
2,XSL的组成
XSL由两部分组成,第一部分将 XML文档转换为其他格式文档,又称
为, 转换语言,,典型的转换是将 XML文档转换为结构完整的 HTML文档
,
这一部分现在已比较成熟,第二部分称为, 格式化语言,,直接描述
XML
的显示方案,定义了一套命令集合,这一部分还没有完全成熟。
3,XSL样式表
简单的 XSL样式表实际上是一个特殊形式的 XML标记,定义了元素的
类型和属性,限定它们只能出现在 特定位置上,并赋予它们语义。在
XSL样式单中,只有以,xsl:”开头的标记才是 XSL的真正标记,才能构
成
元素,其他的只是元素的内容。 XSL处理的对象是节点,XSL能够处理
的 XML文档的节点有 7种:根节点、元素、属性、指令、注释、文本和命
名域。
4,包含 XSL样式单的 XML.
几个 XSL常用语句:
xsl,stylesheet 声明语句 。
xsl,template 模板函数, 相当于编程中的函数 。
xsl,template match=”, 相当于调用函数去匹配引号中指定的节
返回目录
34
8.4 XML显示样式单 — XSL样式单
xsl,apply-templates 应用模板函数 。
xsl,apply-templates select=”, 在应用模板函数中调用引号指
定的模板 。
xsl,for-each select=”, 循环语句, 遍历与引号中属性值相同
的节点 。
xsl,value-of select=”, 赋值语句, 取出引号中指定的属性值 。
5,XSL的模式
模式和模板构成模板规则, 模板规则是 XSL样式单的最主要部分 。 XSL
样式单的模式用来匹配适合该模板规则的节点, 再由模板完成对匹配节点
的转换 。 模式中对节点的选择通过 xsl,template元素的 match属性实现 。
下面介绍几种常用的匹配方法
( 1) 匹配根节点
格式,< xsl,template match=”/”>
返回目录
35
8.4 XML显示样式单 — XSL样式单
说明:为使输出文档结构完整, 根节点模板规则必须有
,是样式单第一个模板规则 。
( 2) 匹配元素名
格式,< xsl,template match=”XML文档中的元素名, >
说明,XML文档中所有同名元素都将使用同一个模板规则 。
( 3) 匹配属性
XML文档中的属性隶属于元素, 不能将属性名作为 match
的值, 而是要先匹配元素名, 再匹配属性 。
( 4) 匹配指令
要读取指令节点的值形成新的样式单指令插入到结果文档中
,应使用 pi( ) 函数 。 若 pi( ) 函数的括号内没有参数, 函数将
匹配当前节点的第一个指令子节点, 若包含一个指令名作参数,
将匹配该指令 。
返回目录
36
8.4 XML显示样式单 — XSL样式单
( 5) 匹配注释
若想在文档转换时保留源文档中的注释, 需要用注释匹
配函数 comment( )对注释进行匹配, 该函数不带任何参数
。 见如下例句:
<zhushi> <xsl,value-of select=”comment()”/>
</zhushi>
( 6) 匹配文本
在 XML文档中, 标记和内容共同构成元素, 但在 XSL中,
内容是元素节点的子节点, 它们不再是一个整体, 因为元
素的内容已经独立成为一个文本节点 。 要取得元素的内容
应使用函数 text()。 取元素内容的操作是 XSL样式单中最常
出现的内容 。
返回目录
37
8.4 XML显示样式单 — XSL样式单
6,XSL的模板
XSL模板的作用是描述结果文档的构成, 要做两件事:将源文档的
数据复制到模板和在模板中添加新内容 。 所有这些工作都是由 XSL的元
素完成 。 我们只介绍几个模板中最常用的 XSL元素 。
( 1) xsl,apply-templates元素
xsl,apply-template元素的作用是在当前样式单中遍历它所属节
点的所有子节点, 检查是否有与子节点相匹配的模板规则, 若有则执行
该模板规则 。
( 2) xsl,value-of元素
xsl,value-of元素的作用是将文档节点的值输出到结果文档中 。
( 3) xsl,for-each元素
若一个节点包含多个同名子节点, xsl,value-of元素只处理第一个
,要想处理所有这些同名子节点, 应使用 xsl,for-each元素 。
( 4) xsl:copy元素
xsl:copy元素的作用是将该元素内容输出到结果文档 。
返回目录
38
8.4 XML显示样式单 — XSL样式单
( 5) xsl,comment元素
xsl,comment元素的作用是在模板中生成注释, 元素内容将形成结果
文档中注释的内容
( 6) xsl,sort元素
xsl,sort元素的作用是将所处理的节点按关键字进行排序, 默认按关
键字字母升序排序 。 该元素一般情况下作为 xsl,apply-templates元素和
xsl:for-each元素的子元素出现, 关键字用 select属性定义 。
( 7) xsl,element元素
xsl,element元素的作用是在结果文档中创建新元素 。 若信息在源文档
中以元素属性的形态存在, 却想在新文档中以元素表示, 就需要使用 xsl:
element元素 。 在创建新元素时, xsl,element元素 name属性的属性值形成
新元素的元素名, xsl,element元素的内容形成新元素的内容 。
( 8) xsl,attribute元素
xsl,attribute元素的作用是在结果文档中插入一个与源文档有关的属
性 。
返回目录
39
本 章 小 结
? XML概述
– 为实现计算机处理而在数据中加入附加信息, 这种附加的信
息称为, 标记, 。
– 在普通文本中加入一些有特定含义的标记, 从而对文本内容
进行标识和说明的一种文件表示方法 。
– 如果所使用的标记都是非预定义的, 用户可以按实际需求自
定义标记, 对于自定义标记, 用户可以在文档内或文档外进
行说明, 也可以不说明, 这种性质被称为是可扩展的 。
– XML除了显示数据之外, 主要用来描述数据 。 XML是可扩
展的, 允许用户自定义标记和自定义文档结构 。
? XML语法
– XML文件又分为两部分:声明部分和文件主体部分 。
返回目录
40
本 章 小 结
? XML语法
– XML有七条最常使用的规则 。
– 声明中包括 3部分内容:版本信息, 内码信息, 文件类型
定义 。
– 元素形式为,<标记 >数据内容 </标记 > 。
– 在创建 XML文档过程中增加的内容, 包括指令, 标记, 注
释, DTD等, 都是, 置标, 。
– 属性是元素的可选组成部分, 其作用是对元素及内容的
附加信息进行描述 。
– CDATA段中的所有内容, 包括 XML的关键字符, 全都被当
作纯字符数据对待, XML处理器不会对它们进行解释 。
返回目录
41
本 章 小 结
? XML文档类型说明
– DTD是一套关于标记的语法规则, 它定义了文档的逻辑结构, 规定
了文档中所使用的元素, 实体, 元素的属性, 元素与实体之间的关
系 。
– 一个文档所用的 DTD是由文档类型声明和一连串标签定义组成 。
– 存在两种引用 DTD的方法:内部 DTD的引用和外部 DTD的引用 。
? XSL样式单
– 样式单是描述结构文档表现方式的文档, 必须针对文档的具体结构
或文档的 DTD专门编写 。
– 目前适用于 XML的样式单有两种,CSS和 XSL。
– CSS是一组显示规则的集合, 为文档的内容逐一设计显示方案, 其
中的每条规则都规定了适用对象和该对象如何显示 。
– XSL样式属性是指元素的哪些属性可以在样式单中改变是描述 XML文
档样式的一种语言, 称为可扩展样式语言 。
返回目录
42
本 章 小 结
? XML文档类型说明
– DTD是一套关于标记的语法规则, 它定义了文档的逻辑结构,
规定了文档中所使用的元素, 实体, 元素的属性, 元素与实
体之间的关系 。
– 一个文档所用的 DTD是由文档类型声明和一连串标签定义
组成 。
– 存在两种引用 DTD的方法:内部 DTD的引用和外部 DTD的引
用 。
– 样式单是描述结构文档表现方式的文档, 必须针对文档的具
体结构或文档的 DTD专门编写 。
– CSS是一组显示规则的集合, 为文档的内容逐一设计显示方
案, 其中的每条规则都规定了适用对象和该对象如何显示 。
返回目录