《XML开发技术教程》从底层规范到与各种平台的接口,从相关技术到各类XML的实际应用,通过系统而深入地介绍该领域中的各种技术、规范和程序开发方法,让读者从理论上和实践上对XML和相关应用技术及发展趋势有较完整的认识和了解,并能够在计算机网络、电子商务等实际应用环境中应用XML技术,以实现复杂数据的交换、处理和存储。XML是一种数据表示和交换标准,可以利用层次结构来表示复杂的业务数据,被认为是21世纪里程碑式的IT技术,广泛地应用于数据表示与集成、数据交换、数据存储等各个领域。
《XML开发技术教程》不仅可以作为大学相关课程的教材,而且对从事软件开发及其相关领域研究的技术人员和开发人员也具有重要的学习和参考价值。
《XML开发技术教程》是重点大学计算机教材。W3C为XML技术制定了一系列的规范,主要是面向XML相关软件产品的提供商,比如IBM、SUN和Microsoft等公司。但是对于刚接触相关内容的学生和开发人员来说,这些规范晦涩难懂,而且篇幅冗长,从学习的角度上来说,几乎无法着手。编写《XML开发技术教程》的思路和目的是:结合作者多年的教学和开发经验,通过大量的实例,深入浅出地介绍XML,中关键技术的原理和应用,并结合XML技术的最新发展趋势和应用领域,介绍如何使用Java程序来处理XML数据,如何在各种数据库中对XML数据进行存储和管理。
XML正越来越多地应用于各个计算机的相关领域,从主流的关系数据库对XML的支持、本源XML数据库、SOA和Web Sei-vices,几乎所有涉及数据交换、数据存储和处理的领域中都有XML的广泛应用。随着XML应用的普及,在以网络和数据为中心的信息领域中,应用程序的开发、数据及服务的集成和整合、业务流程的重用和优化,无疑对软件开发人员提出了更高的要求,需要他们在传统计算机知识结构的基础上,进一步掌握XML相关的技术和知识。
W3C为XML技术制定了一系列的规范,主要是面向.XML相关软件产品的提供商,比如IBM、SUN和Microsoft等公司。但是对于刚接触相关内容的学生和开发人员来说,这些规范晦涩难懂,而且篇幅冗长,从学习的角度上来说,几乎无法着手。编写本教程的思路和目的是:结合作者多年的教学和开发经验,通过大量的实例,深入浅出地介绍XML中关键技术的原理和应用,并结合XML技术的最新发展趋势和应用领域,介绍如何使用Java程序来处理XML数据,如何在各种数据库中对XML,数据进行存储和管理。系统全面、内容翔实、案例丰富、条理清晰,正是本书的特点。
在本书中,从底层规范到与各种平台的接口,从相关技术到各类XML,的实际应用,通过系统而深入地介绍该领域中的各种技术、规范和程序开发方法,让读者从理论上和实践上对XML和相关应用技术及其发展趋势有较完整的认识和了解,并能够在计算机网络、电子商务等实际应用环境中应用XML技术,以实现复杂数据的交换、处理和存储。
本书的另一个特点在于面向具有一定程序开发经验的读者,而不仅仅是介绍XML的基础知识。本书在编写过程中,非常注重内容的选择,并不一味地贪多,而是在组织上注重层次和重点,通过实例对关键性的技术和难点内容进行了深入浅出的讲解说明。本书详细地介绍了XPath和XQuery这些与数据库相关的重要内容,目前各大关系数据库(包括SQLServer、Oracle、TBM DB2)都提供了对XML数据存储检索的全面支持,而这些内容在具体开发应用中至关重要,而目前国内出版的图书较少涉及这方面的内容。另外,本书详细介绍了XML数据处理技术方面的内容,结合W3C最新的技术规范,以及Sun公司最新的JDK 6开发平台中的XML数据处理软件包,介绍了最新API使用和基于XML的应用程序开发技术,甚至还前瞻性地介绍了JDK 7中将会包含的XQJAPI。结合最新的程序开发技术和数据处理模型,通过具体的实例,使读者能够将所学的知识直接应用于具体的开发项目中。
本书不仅可以作为大学相关课程的教材,而且对从事软件开发及其相关领域研究的技术人员和开发人员也具有重要的学习和参考价值。
第1章 XML基础知识
1.1 XML及其相关技术概述
1.1.1 XML的发展史
1.1.2 XML的特点
1.1.3 XML的实际应用
1.1.4 XML相关技术
1.2 XML规范及XML文档分类
1.2.1 XML文档中的XML声明
1.2.2 XML文档中的处理指令和注释
1.2.3 XML文档中的元素和属性
1.2.4 XML文档中的文本内容和CDATA段
1.2.5 XML文档的良构性规则
1.2.6 XML文档的分类
1.3 命名空间
1.3.1 命名空间的概念
1.3.2 XML中命名空间的声明和使用
1.4 XML文档的数据模型规范
1.5 UNICODE简介
1.5.1 Unicode的出现
1.5.2 Unicode的编码和实现
1.5.3 XML和Unicode及其他字符集
1.6 XML中的BASE64编码
1.7 XML集成开发环境XMLSPY的基本使用
第2章 文档类型定义DTD
2.1 数据模式与DTD
2.1.1 数据模式的用途
2.1.2 文档类型定义DTD
2.2 DTD基本语法
2.2.1 为XML文档指定DTD规则
2.2.2 元素及其内容模型的声明
2.2.3 元素属性的声明
2.2.4 实体的分类和声明
2.2.5 组合使用内部和外部DTD
2.2.6 条件DTD
2.3 在XMLSPY中编写和使用DTD
第3章 XML模式语言XML Schema
3.1 XML模式语言
3.1.1 XML Schema和DTD之间的比较
3.1.2 XML Schema的一个简单示例
3.2 XML Schema中的数据类型
3.2.1 XML Schema的内置数据类型
3.2.2 XML Schema中的派生简单数据类型
3.2.3 XML Schema中的派生复杂数据类型
3.2.4 有关类型声明的完整语法
3.3 XML Schema申元素和属性的声明
3.3.1 元素的声明
3.3.2 属性、属性组和任意属性的声明
3.4 有关XML Schema的一些关键內容
3.4.1 XML Schema的PSVI数据模型
3.4.2 XML Schema文档的目标命名空间和引用
3.4.3 导入另一个XML Schema文档
3.5 在XMLSPY中编辑和操作XML Schema
3.5.1 创建和编辑XML Schema文档
3.5.2 自动生成以及转换XML Schema文档
第4章 XPath
4.1 XPath中的数据模型
4.1.1 序列
4.1.2 XPath文档树模型
4.2 XPath的语法
4.2.1 一个XPath的简单示例
4.2.2 XPath的完整语法形式
4.2.3 XPath的执行语义
4.2.4 关于XPath查询计划执行效率的思考
4.2.5 XMLSPY中的XPath执行环境
4.3 XPath的类型系统
4.3.1 数据类型
4.3.2 序列类型
4.3.3 类型之间的隐式类型转换
4.3.4 类型之间的显式类型转换以及其他类型操作
4.4 XPath中各种函数的介绍
4.4.1 XPath中的各种运算符
4.4.2 存取函数
4.4.3 数值计算的函数
4.4.4 有关字符串的函数
4.4.5 针对anylJRI的函数
4.4.6 关于布尔值的函数
4.4.7 有关持续时间、日期和时间的函数
4.4.8 与QNames相关的函数
4.4.9 关于节点的函数
4.4.10 有关序列的函数
4.4.11 聚集函数
4.4.12 生成序列的函数
4.4.13 上下文函数
第5章 XSLT
5.1 XSLT(Extensible Stylesheet Language Tansformations)
5.1.1 XSLT的工作原理
5.1.2 XSLT的一个简单示例
5.2 XSLT中模板的创建以及內置模板的使用
5.2.1 XSLT中模板的声明和调用
5.2.2 XSLT中的内置模板
5.3 XSLT模板中各种转换功能的实现
5.3.1 使用xsl:value-of和xsl:text提取或生成所需的文本内容
5.3.2 使用xsl:for-each和xsl:sort进行循环和排序
5.3.3 使用xsl:if进行条件判断
5.3.4 使用xsl:choose、xsl:when和xsl:otherwise进行条件分支选择
5.3.5 在输出结果中创建XML节点
5.3.6 XSLT中变量的声明和使用
5.3.7 一个综合示例
5.4 XSLT中提供的其他编程机制
5.4.1 创建和引用模块化的XSLT文档
5.4.2 同时处理多个XML源文档
5.4.3 通过动态索引提高处理的效率
5.5 在XMLSPY中进行XSLT的开发
5.5.1 创建和编辑XSLT文档
5.5.2 执行和调试XSLT文档
第6章 XQuery
6.1 XML数据查询语言
6.1.1 从结构化数据查询语言SQL到半结构化查询语言XQuery
6.1.2 XQuery的诞生
6.1.3 XML格式的XQuery查询语言
6.2 XQuery基本语法和相关概念
6.2.1 XQuery基本语法
6.2.2 XQuery中的for和lct语句
6.2.3 XQuery中的where和order by语句
6.2.4 XQuery中的return语句以及输出内容构造方法的使用
6.2.5 XQuery中FLOWR表达式之外的其他表达式
6.2.6 在XMLSPY中编写XQuery查询
6.3 灵活地使用XQuery
6.3.1 XQuery 1.0的类型系统及类型操作
6.3.2 在XQuery中编写自定义的函数及模块
6.3.3 在XQuery中声明命名空间、以及导入外部XMLSchema
6.4 XQuery用例分析
6.4.1 用例“XMP”(常用的XQuery示例)
6.4.2 用例“TREE”(保持原始层次结构的查询)
6.4.3 用例“SEQ”(针对序列进行查询)
6.4.4 用例“R”(关系型数据查询)
6.4.5 用例“STRONG”(在查询中利用Schema的类型信息)
第7章 XML与数据库
7.1 XML与关系数据库之间的关系
7.1.1 XML数据的存储和管理方式
7.1.2 XML数据存储管理的要求
7.2 SQL Server 2005申的XML支持
7.2.1 SQL Server 2005中XML数据存储的支持
7.2.2 SQL Server 2005中的xml数据类型
7.2.3 SQL Server 2005中的SQL/XML
7.3 DB2 V9中的pureXML
7.3.1 DB2 V9中XML数据存储的支持
7.3.2 DB2 V9中的xml数据类型
7.3.3 DB2 V9中的SQL/XML
7.3.4 DB2中提供的XML数据分解机制
7.3.5 DB2 V9中XML物理存储的性能优化
7.3.6 XMLSPY提供的DB2支持
7.4 Native XML数据库
7.4.1 NativeXML数据库的特点
7.4.2 XML数据库Tamino
第8章 使用Java语言对XML数据进行解析
8.1 XML数据解析的概念及JAXP简介
8.1.1 XML解析器
8.1.2 DOM和SAX解析模型简介
8.1.3 JAXP简介
8.2 在JAXP中使用DOM解析器处理XML文档
8.2.1 DOM解析器的创建
8.2.2 DOM解析器编程接口
8.2.3 使用DOM模型解析XML文档的示例程序
8.3 在JAXP中使用SAX解析器处理XML数据
8.3.1 JAXP中SAX模型的使用
8.3.2 SAX模型中回调函数的重写
8.3.3 使用SAX模型解析XML文档的示例程序
8.4 DOM和SAX之间的性能分析和比较
8.4.1 创建示例:XML文档
8.4.2 使用两种模型加载/读取示例XML文档
8.4.3 使用两种模型计算示例文档中指定名称的元素的数目
8.4.4 使用两种模型查找示例文档中指定的某个元素
8.4.5 有关DOM和SAX解析模型的说明
8.5 JAXP中的其他XML数据处理API
8.5.1 执行XPath查询
8.5.2 使用Trax API执行数据转换操作
8.5.3 执行XQuery查询
第9章 使用JAXB处理XML数据
9.1 数据绑定
9.1.1 数据绑定的一般概念和XML数据绑定
9.1.2 XML数据绑定API
9.2 JAXB API及其基本使用
9.2.1 JAXB概述
9.2.2 JDK 1.6中提供的JAXB API
9.2.3 使用JAXB从Schema文档自动生成相应的Java类
9.2.4 使用JAXB自动生成的Java类对XML文档进行解组操作
9.3 JAXB API的高级应用
9.3.1 使用JAXB对XML数据进行有效性验证
9.3.2 使用JAXB进行更灵活的XML数据解组
9.3.3 使用JAXB创建XML数据
9.3.4 从Java类生成XML Schema文档
9.3.5 定制Java类的创建
参考文献
第1章 XML基础知识
随着互联网的调整发展和普及,人们可以通过计算机(使用浏览器或者客户端应用程序)与互联网连接,接收和发送大量的、最新的实时业务信息;但在信息交换的过程中,存在着一个突出的问题,即多种多样的数据格式给信息的有效使用带来了障碍。