电子教程和随书光盘在一个压缩包
【作 者】张朝明 [同作者作品]
【丛 书 名】 程序天下系列
【出 版 社】 电子工业出版社
【出版日期】 2008 年1月
【内容简介】
XML以其强大的发展态势,迅速在各个领域得到了广泛应用。本书由浅入深、循序渐进地向读者讲述了XML的三大技术——XML Schema、XSLT和XPath。全书内容包括XML基础、XML架构——XML Schema、XML样式表转换语言——XSLT、XML路径语言——XPath,以及XSLT 2.0和XPath 2.0的知识,最后结合Java语言,讲述了JDOM和JAXB两大应用。.
本书既适合XML初学者阅读,也适合专职的XSLT程序员、XML网站开发人员、XML技术爱好者、数据分析人员作为技术参考资料。...
目录
第一篇 XML简介
第1章 XML概述
1.1 什么是XML
1.2 比较XML和HTML
1.3 XML的用途
1.4 小结
第2章 XML基础知识
2.1.1 理解XML文档的本质
2.1.2 文档类型声明
2.1.4 处理指令
2.1.3 文档注释
2.1.5 元素
2.1.6 属性
2.1.7 实体引用
2.1.8 CDATA段
2.1.8 字符引用
2.2 XML文件
2.2.1 XML开发工具
2.2.2 如何书写XML文档
2.2.3 格式良好和有效的XML文档
2.2.4 我的XML出了什么错
2.2.5 小结
2.3 开发前奏:XML和Schema,XSLT的关系
2.3.1 什么是Schema和XSLT
2.3.2 没有Schema和XSLT,XML世界将变成什么样子
2.4 小结
第二篇 XML模式——Schema
第3章 浅析Schema开发
3.1 Schema简介
3.1.1 Schema的本质
3.1.2 比较Schema和DTD
3.2 使用Schema验证XML文档
3.2.1 分析一个Schema
3.2.2 用Schema验证XML文档有效性
3.3 名称空间
3.3.1 什么是名称空间
3.3.2 如何理解名称空间
3.3.3 无名称空间和默认名称空间
3.3.4 名称空间的作用范围
3.3.5 小结
3.4 重新分析Schema文件
3.5 Schema内置数据类型
3.5.1 xs:string(字符型)
3.5.2 xs:decimal(小数型)
3.5.3 xs:integer(整型)
3.5.4 xs:boolean(布尔型)
3.5.5 xs:date(日期型)
3.5.6 xs:time(时间型)
3.5.7 xs:dateTime(日期时间型)
3.5.8 xs:gYearMonth(特定年中的特定月)
3.5.9 xs:gMonthDay(每年都会出现的某一天)
3.5.10 xs:gDay(每月都会出现的某一天)
3.5.11 xs: gMonth(每年都会出现的某个月份)
3.5.12 xs:timeDuration(时间段)
3.5.13 xs: anyURI(统一资源标识符)
3.6 XML元素类型
3.7 小结
第4章 Schema声明简单元素
4.1 基本数据类型的使用
4.1.1 字符型的使用
4.1.2 日期型的使用
4.1.3 数值型的使用
4.1.4 布尔型的使用
4.2 自定义简单类型的使用
4.2.1 枚举型——enumeration
4.2.2 限制长度——minLength、maxLength
4.2.3 取值范围——minInclusive、maxInclusive
4.2.4 小数位数限定——totoalDigits和fractionDigits
4.2.5 模式匹配——pattern
4.2.6 原子类型——atomic
4.2.7 列表类型——list
4.2.8 联合类型
4.2.9 分析type属性值的特殊性
4.2.10 type属性与名称空间
4.2.11 使用比喻来解释type属性和名称空间关系
4.2.12 简单类型小结
4.3 元素的默认值和固定值
4.3.1 元素默认值
4.3.2 元素默认值的用途
4.3.2 元素固定值
4.4 本章小结
第5章 Schema声明复杂元素
5.1 复杂元素的分类:simpleContent和complexContent
5.1.1 理解内容(content)
5.1.2 区分simpleContent和complexContent
5.2 声明simpleContent元素
5.2.1 如何声明simpleContent元素
5.2.2 关于类型派生——restriction和extension
5.2.3 属性声明
5.2.4 使用use定义属性
5.2.5 使用default给属性赋予默认值
5.2.6 使用fixed限制属性
5.3 定义complexContent元素
5.3.1 任意类型anyType
5.3.2 如何定义complexContent
5.3.3 complexContent定义的缩略模式
5.3.4 定义子元素顺序
5.3.5 定义子元素出现次数
5.3.6 顺序指示符及元素出现次数综合使用实例
5.3.7 顺序指示符和元素出现次数小结
5.3.8 综合使用子元素和属性声明
5.3.6 simpleContent和complexContent的几种理解
5.4 特殊的复杂类型
5.4.1 anyType的约束
5.4.2 anyType的约束派生
5.4.3 空元素的定义
5.4.4 混合内容类型的定义
5.5 ref引用
5.5.1 ref引用元素声明
5.5.2 元素组的使用
5.5.3 属性组的使用
5.6 全局声明与局部声明
5.6.1 什么是全局声明和局部声明
5.6.2 目标名称空间(targetNamespace)
5.6.3 限定与非限定
5.6.4 在Schema中声明名称空间
5.6.5 全局声明和局部声明的比较
5.6.6 无名称空间元素(属性)如何验证
5.7 本章小结
第6章 Schema使用技巧
6.1 指定唯一性——使用unqiue
6.1.1 定义元素唯一性
6.1.2 定义属性唯一性
6.1.3 慎用默认名称空间
6.2 key和keyref的使用
6.3 include的使用
6.4 import的使用
6.5 使用xml:lang
6.6 本章小结
第三篇 XML转换——XSLT
第7章 浅析XSLT开发
7.1 XSLT简介
7.1.1 XSLT的本质
7.1.2 XSL和XSLT的关系
7.1.3 XSLT的专用名称空间
7.1.4 XSLT处理器
7.2 第一个XSLT
7.2.1 编写第一个XSLT文档
7.2.2 查看第一个XSLT的输出结果
7.2.3 为XSLT转换选择处理器
7.2.4 修改XSLT文档的参数
7.2.5 分析第一个XSLT文档
2.2.6 在浏览器中使用XSLT
7.2.7 书写XSLT文档的注意事项
7.3 本章小结
第8章 XSLT基础
8.1 进一步思考XSLT的本质
8.1.1 XSLT是一门开发语言
8.1.2 XSLT相对其他语言的特点
8.2 XML文档结构描述——XPath
8.2.1 什么是XPath
8.2.2 XPath表达式简介
8.2.3 XPath和XSLT的关系
8.2.4 典型实例
8.3 常用XSLT函数概述
8.3.1 current()函数——返回当前节点
8.3.2 document()函数——使用外部XML文档
8.3.3 element-available()函数——判断元素可用性
8.3.4 format-number()函数——格式化数字
8.3.5 function-available()函数——判断函数可用性
8.3.6 generate-id()函数——生成节点id
8.3.7 key()函数——返回索引中的节点
8.3.8 system-property()函数——返回系统属性
8.4 XPath节点集函数
8.4.1 count()函数——统计节点个数
8.4.2 position()函数——返回节点位置
8.4.3 last()函数——返回节点总数
8.4.4 name()函数——返回节点名称
8.5 XPath字符串函数
8.5.1 concat()函数——连接字符串
8.5.2 contains()函数——判断包含关系
8.5.3 normalize-space()函数——格式化空白符
8.5.4 starts-with()函数——判断开头字符串
8.5.5 string-length()函数——返回字符串长度
8.5.6 substring()函数——截取字符串
8.5.7 substring-before()函数——向前截取字符串
8.5.8 substring-after()函数——向后截取字符串
8.5.9 translate()函数——替换字符
8.6 XPath数值型函数
8.6.1 ceiling()函数——上取整
8.6.2 floor()函数——下取整
8.6.3 number()函数——数值转换
8.6.4 round()函数——四舍五入取整
8.6.5 sum()函数——求和
8.7 XPath布尔型函数
8.7.1 boolean()函数——计算布尔值
8.7.2 false()函数——返回false
8.7.3 lang()函数——判断xml:lang属性
8.7.4 not()函数——取反操作
8.7.5 true()函数——返回true
8.8 XPath函数小结
8.9 XSLT运算符
8.9.1 算术运算符
8.9.2 逻辑运算符
8.9.3 比较运算符
8.10 概念分析
8.10.1 当前节点和上下文节点
8.10.2 XPath表达式与字符串
8.11 本章小结
第9章 理解模板
9.1 定义和调用模板
9.1.1 模板定义语法
9.1.2 调用节点模板(xsl:apply-templates)
9.1.3 调用命名模板
9.2 模板冲突
9.2.1 最基本的模板冲突
9.2.2 mode属性的使用
9.2.3 设置模板优先级——priority属性的使用
9.2.4 包含模板
9.2.5 导入模板
9.3 XSLT执行过程
9.3.1 XSLT程序的入口点
9.3.2 XSLT程序哪些模板将被执行
9.3.3 模板调用顺序跟XML文档没有任何关系。
9.4 内嵌模板
9.5 模板递归
9.5.1 节点模板递归
9.5.2 命名模板递归
9.6 本章小结
第10章 XSLT应用——输出
10.1 输出文档控制——
10.1.1
10.1.2 定义输出格式——method属性
10.1.3 设置输出编码格式——encoding属性
10.1.4 设置自动换行和缩进——indent属性
10.1.5 输出文档控制小结
10.2 输出文本——
10.2.1
10.2.2 典型实例1——输出复杂元素
10.2.3 典型实例2——输出节点集合
10.3 节点复制——
10.3.1
10.3.2
10.3 生成元素——
10.3.1
10.3.2 典型实例1——动态生成元素名。
10.3.3 典型实例2——特殊名称空间元素
10.3.4 生成元素小结
10.4 生成属性——
10.4.1
10.4.2 典型实例1——动态生成属性
10.4.3 典型实例2——属性值难以获得
10.4.4 典型实例3——所依附的元素为
10.4.5 典型实例4——生成XSLT文档
10.4.6 生成属性小结
10.5 输出指令——
10.5.1
10.5.2 典型实例——创建处理指令
10.6 输出注释——
10.6.1
10.6.2 典型实例——存储报价
10.7 输出消息——
10.7.1
10.7.2 典型实例1——文本提示
10.7.3 典型实例2——指令模板
10.8 替换名称空间——< xsl:namespace-alias >元素
10.8.1 < xsl:namespace-alias >语法
10.8.2 典型实例——生成XSLT文档
10.9 xsl:decimal-format元素
10.9.1
10.9.2 典型实例——常用属性使用
10.9.3 使用模式分割符——pattern-separator属性
10.10 阻止名称空间的输出
10.11 空白符对输出的影响
10.11.1 无意义空白符
10.11.2 有意义空白符
10.11.3 XML Schema与空白符
10.12 本章小结
第11章 XSLT应用——变量定义和流程控制
11.1 定义变量——
11.1.1 使用语法
11.1.2 典型实例——select属性赋值
11.1.3 使用content赋值
11.1.4 select属性和content赋值的区别
11.1.5 临时结果树片段
11.1.6 变量的有效范围
11.1.7 定义变量小结
11.2 条件控制——
11.2.1
11.2.2 分析test属性
11.2.3 字符串类型
11.2.4 数值类型
11.2.5 布尔类型
11.2.6 节点集合类型
11.2.3 典型实例
11.2.4 条件控制小结
11.3 多条件选择——
11.3.1 使用语法
11.3.2 典型实例
11.4 循环处理——
11.4.1
11.4.2 典型实例
11.4.3 循环嵌套
11.4.4 分析
11.4.5 条件约束
11.4.6 多条件约束
11.4.7 循环处理小结
11.5 异常处理——
11.5.1
11.5.2 典型实例
11.5.3 关于element-available ()函数代替
11.6 本章小结
第12章 XSLT应用——排序,索引与编号
12.1 排序处理——
12.1.1
12.1.2 典型实例——单关键字排序
12.1.3 典型实例——多关键字排序
12.1.4 典型实例——求极值
12.2 建立索引——
12.2.1
12.2.2 典型实例——一对一映射
12.2.3 典型实例2——一对多映射
12.2.4 典型实例3——多对多映射
12.3 生成编号——
12.3.1 使用语法
12.3.2 典型实例1——默认输出
12.3.3 典型实例2——指定编号
12.3.4 典型实例3——指定计数层次和节点
12.3.5 典型实例4——指定计数开始位置
12.3.6 典型实例5——指定编号格式
12.4 本章小结
第13章 XSLT应用——分组
13.1 什么是分组
13.2 解决分组问题的思路
13.3 解决分组问题的办法
13.4 MuenChian方法分组
13.5 较为复杂的分组
13.6 本章小结
第14章 XPath的灵魂——轴
14.1 什么是轴
14.1.1 轴的本质
14.1.2 轴的分类
14.2 前驱轴——preceding
14.2.1 前驱轴应用1——分组
14.2.2 前驱轴应用2——统计节点
14.2.3 preceding轴只与源文档有关
14.2.4 preceding轴的方向
14.3 前驱兄弟轴——preceding-sibling
14.3.1 前驱兄弟轴的应用——分组
14.3.2 前驱兄弟轴的应用——统计节点
14.3.3 综合应用实例
14.4 后继轴——following
14.4.1 典型实例
14.4.2 following轴的方向
14.5 后继兄弟轴——following-sibling
14.5.1 典型示例
14.5.2 综合应用实例
14.6 子轴——child
14.6.1 子轴的方向
14.6.2 子轴和前驱、后继轴
14.7 父轴——parent
14.7.1 属性节点的父轴
14.7.2 上下文节点的父轴
14.8 属性轴——attribute
14.8.1 属性轴的方向
14.8.2 属性轴的缩略模式
14.9 本身轴——self
14.10 后代轴——descendant
14.10.1 后代轴的方向
14.10.2 后代轴的缩略模式
14.11 后代或本身轴——descendant-or-self
14.11.1 后代或本身轴的方向
14.11.2 后代或本身轴的应用
14.12 祖先轴——ancestor
14.12.1 祖先轴的方向
14.12.2 祖先轴的应用——输出XPath
14.13 祖先或本身轴——ancestor-or-self
14.13.1 祖先或本身轴的方向
14.13.2 祖先或本身轴应用——输出XPath
14.14 名称空间轴——namespace
14.14.1 名称空间轴的默认节点
14.14.2 名称空间的继承性
14.14.3 名称空间轴上节点的名称
14.15 常见问题
14.15.1 轴的分类问题
14.15.2 节点测试
14.15.3 重新理解XPath表达式
14.15.4 重新理解“/”和“//”
14.16 本章小结
第四篇 EXSLT(扩展XSLT)和XSLT2.0
第15章 EXSLT——扩展XSLT
15.1 EXSLT简介
15.1.1 EXSLT介绍
15.1.2 EXSLT的前景
15.2 应用方向一——获得日期和时间
15.3 应用方向二——将字符串当作XPath表达式进行计算
15.3.1 典型实例1——计算节点
15.3.2 典型实例2——变量传递
15.4 本章小结
第16章 XPath2.0
16.1 XPATH2.0简介
16.1.1 XPath2.0的使用环境
16.1.2 对XML Schema内建数据类型的支持
16.1.3 增加了XPath数据类型名称空间
16.1.4 注意非整数天数的处理
16.2 序列概念的引入
16.2.1 什么是序列
16.2.2 XPATH1.0表达式如何与XPATH2.0兼容起来
16.2.3 典型实例——实现循环次数
16.3 序列运算符
16.3.1 循环操作
16.3.2 条件判断
16.4 字符串函数
16.4.1 compare()函数——比较字符串
16.4.2 ends-with()函数——判断结尾字符串
16.4.3 starts-with()函数——判断开头字符串
16.4.4 string-join()函数——串联序列对象
16.4.5 subsequence()函数——获取子序列
16.4.6 matches()函数——匹配正则表达式
16.4.7 tokenize()函数——分割字符串为序列
16.4.8 replace()函数——替换字符串
16.4.9 lower-case()函数——返回小写字符
16.4.10 upper-case()函数——返回大写字符
16.5 数值型函数
16.5.1 avg()函数——获取平均值
16.5.2 max()函数——获取最大值
16.5.3 min()函数——获取最小值
16.6 日期型函数
16.7 本章小结
第17章 XSLT2.0
17.1 XSLT2.0简介
17.1.1 XSLT2.0的地位
17.1.2 如何使用XSLT2.0
17.1.3 XSLT2.0增加的新内容
17.2 XSLT2.0——分组
17.2.1 分组的使用
17.2.2 分组排序
17.2.3 分组中的上下文节点
17.2.4 分组嵌套
17.2.5 动态分组
17.2.6 利用group-adjacent属性进行相邻分组
17.2.7 利用 group-starting-with和group-ending-with属性指定分组条件
17.3 多文件输出——
17.3.1
17.3.2 典型实例——分割XML文档
17.4 字符映射——
17.4.1
17.4.2 典型实例——生成JSP文档
17.5 分析字符串——
17.5.1
17.5.2 典型实例——获得文件名
17.5.3 关于regex属性中的“{}”
17.5.4 正则表达式分组——regex-group()函数的使用
17.6 定义变量
17.6.1
17.6.2
17.6.3 序列和临时结果树的优劣比较
17.7 本章小结
第18章 正则表达式
18.1 正则表达式在XML中的应用
18.1.1 在XML Schema中的应用
18.1.2 在XPath2.0中的应用
18.1.3 在XSLT2.0中的应用
18.2 XML正则表达式简介
18.2.1 元字符和普通字符
18.2.2 量词
18.2.3 字符转义与字符类
18.2.4 字符组的使用
18.2.5 正则表达式分支
18.3 本章小结
第五篇 XML在Java中的典型应用
第19章 用JDOM解析XML文档
19.1 用JDOM解析XML文档
19.1.1 准备工作
19.1.2 创建Java类
19.2 用JDOM处理XML文档
19.2.1 创建XML文档
19.2.2 删除和修改节点
19.3 本章小节
第20章 用JAXB处理XML文档
20.1 准备工作
20.1.1 下载与安装JAXB
20.1.2 XJC简介
20.1.3 JXL简介
20.1.4 查看用来映射的XML Schema文档
20.2 创建项目
20.2.1 创建项目
20.2.2 利用xjc生成Java类
20.2.3 存储了字典表的Excel文档
20.3 本章小节
第六篇 XML在C#中的典型应用
第21章 使用XML DOM操作节点
21.1 C#中的XML DOM
21.1.1 XML DOM的操作对象XmlDocument
21.1.2 使用XML文件分析XmlDocument中的对象
21.1.3 使用DOM对象获取XML文件
21.1.4 使用DOM对象获取XML文件中的指定节点
21.1.5 使用DOM对象改变XML文件的数据顺序
21.2 XML文件读取器XmlReader
21.2.1 XmlReader的作用
21.2.2 对XML的验证
21.2.3 使用XmlReader读取XML文件的一部分
21.2.4 使用XmlTextReader读取整个XML文件
21.3 XML文件编写器XmlWriter
21.3.1 XmlWriter的作用
21.3.2 XmlWriter对XML文件的验证
21.3.3 用XmlWriter创建并编辑XML文件
21.4 XML与DataSet的交互
21.4.1 将XML文件转化为DataSet数据集
21.4.2 将DataSet数据集转换为XML文件
21.5 小结