图书介绍

疯狂XML讲义 第2版PDF|Epub|txt|kindle电子书版本网盘下载

疯狂XML讲义 第2版
  • 李刚编著 著
  • 出版社: 北京:电子工业出版社
  • ISBN:9787121140495
  • 出版时间:2011
  • 标注页数:500页
  • 文件大小:330MB
  • 文件页数:514页
  • 主题词:可扩充语言,XML-程序设计

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

疯狂XML讲义 第2版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第1章 XML概述1

1.1 XML的起源2

1.1.1 标记语言2

1.1.2 XML的基本概念3

1.1.3 XML和HTML3

1.2 XML的优势4

1.2.1 简单易用的标记语言4

1.2.2 格的格式5

1.2.3 数据逻辑和显示逻辑分离5

1.3 XML和Java EE6

1.3.1 配置描述6

学生提问 指定Web组件的配置信息是不是只能采用web.xml文件呢?7

1.3.2 简化的数据交换7

1.3.3 Web Service8

1.4 XML的编辑工具8

1.4.1 普通文本编辑工具8

1.4.2 XMLSpy简介9

1.4.3 使用XMLSpy编辑XML文档9

1.4.4 Stylus Studio简介11

1.4.5 使用Stylus Studio编辑XML文档11

1.5 XML的竞争对手12

1.5.1 Java的Annotation12

1.5.2 轻量级的数据交换格式——JSON15

1.6 本章小结17

第2章 XML文档规则18

2.1 XML文档的分类19

2.1.1 格式不良好的XML文档19

2.1.2 格式良好但无效的XML文档20

2.1.3 有效的XML文档22

2.2 XML文档的整体结构22

2.2.1 有且仅有一个根元素22

2.2.2 元素必须合理结束23

2.2.3 元素之间必须合理嵌套24

2.2.4 元素的属性必须有值24

2.3 XML声明26

学生提问 UTF-8不是兼容Unicode吗?那UTF-8也应该支持中文啊,为什么上面的XML文档会出现字符集错误的情况呢?27

2.4 XML元素的基本规则28

2.4.1 合法的标签名28

2.4.2 嵌套子元素29

2.4.3 空元素29

2.5 字符数据30

2.5.1 使用实体引用31

2.5.2 使用CDATA标记32

2.6 注释33

2.7 处理指令33

2.8 W3C对于属性的使用建议35

2.9 换行处理36

2.10 本章小结36

本章练习36

第3章 DTD详解37

3.1 XML语义约束38

学生提问 我一直有一个疑问:XML太“随意”了,我们想怎样定义元素都可以,想怎样嵌套子元素也行,想怎样定义属性也行,真的是这样吗?38

3.2 引入DTD39

3.2.1 内部DTD39

3.2.2 外部DTD40

3.2.3 公用DTD41

3.3 DTD文档的结构41

3.3.1 验证XML文档的有效性42

3.4 定义元素42

3.4.1 定义任意类型的元素43

3.4.2 定义空元素44

3.4.3 定义字符串内容的元素45

3.4.4 定义混合内容45

3.5 定义子元素47

3.5.1 有序的子元素47

3.5.2 互斥的子元素48

3.5.3 子元素出现的频率48

3.5.4 组合子元素49

3.5.5 无序的子元素51

学生提问 上面的DTD中明明定义了<书名.../>、<价格.../>、<作者.../>和<简要介绍.../>4个元素之间具有互斥关系,它们怎么可以同时出现呢?52

3.6 定义元素属性53

3.6.1 对属性的约束规则53

3.6.2 定义属性类型55

3.7 定义实体57

3.7.1 定义实体57

3.7.2 定义参数实体59

3.7.3 外部实体60

3.7.4 外部参数实体61

3.8 定义符号61

3.8.1 未解析实体62

学生提问 XML文档里的内容不是应该由XML解析器负责处理吗?如果XML解析器不负责处理,那这些数据岂不就失去作用了?62

3.8.2 ENTITY和ENTITIES类型的属性63

3.8.3 NOTATION类型的属性63

3.9 使用XMLSpy创建DTD64

3.10 本章小结65

本章练习65

第4章 XML Schema基本语法66

4.1 DTD和Schema67

4.1.1 Schema概述及其优势67

4.1.2 Schema在Java EE中的应用68

4.2 XML Schema入门69

4.2.1 XML Schema根元素69

4.2.2 在XML中引用无命名空间的Schema70

4.2.3 在XML中引用有命名空间的Schema71

4.3 Schema中的注释72

4.4 理解Schema的数据类型72

4.5 Schema内置类型74

4.5.1 字符串及相关类型76

4.5.2 数值类型77

4.5.3 日期、时间类型78

4.5.4 boolean类型80

4.5.5 anyURI类型80

4.5.6 二进制数据81

4.6 使用限制派生新类型81

4.6.1 指定基类型的两种方式82

4.6.2 指定类型的两种方式84

4.6.3 范围约束86

4.6.4 长度约束86

4.6.5 精度约束86

4.6.6 枚举约束87

4.6.7 正则表达式约束88

4.6.8 空白处理88

4.7 使用<list.../>派生列表类型91

4.7.1 限制列表类型92

4.8 使用<union.../>派生联合类型94

4.8.1 限制联合类型96

4.9 列表和联合结合使用97

4.10 阻止派生新的简单类型98

4.10.1 使用final属性98

4.10.2 为约束指定fixed属性99

4.11 合并多个Schema100

4.11.1 使用include元素100

4.11.2 使用redefine元素101

4.11.3 使用import元素102

4.12 XMLSpy中关于Schema的操作103

4.12.1 创建新的Schema103

4.12.2 为XML创建Schema104

4.12.3 为XML分配Schema104

4.13 本章小结105

第5章 XML Schema高级知识106

5.1 使用anyType定义任意类型107

5.2 定义复杂类型108

5.2.1 定义复杂类型的方式109

5.2.2 扩展简单类型109

学生提问 既然派生复杂类型的方式有两种,那接下来是不是应该介绍“限制简单类型来派生复杂类型”了?110

5.2.3 包含属性的两种方式111

5.2.4 扩展包含简单内容的复杂类型112

5.2.5 使用派生类型的另一种方式114

学生提问 在上面的Schema中先定义了一个book_Type类型,然后扩展该类型增加了一个price属性,为何不在定义book_Type类型时一次性添加isbn、name和price三个属性,而非要一次一次地添加呢?这样做有实际意义吗?114

5.2.6 限制包含简单内容的复杂类型115

5.2.7 限制anyType派生新类型116

学生提问 为什么没有通过扩展anyType来派生新类型呢?117

5.2.8 包含子元素的两种方式120

5.2.9 空元素类型123

5.2.10 混合内容类型124

5.3 复杂类型的进一步派生125

5.3.1 限制空元素类型125

5.3.2 扩展空元素类型126

5.3.3 限制包含子元素的类型127

5.3.4 扩展包含子元素的类型128

5.3.5 限制混合内容类型131

5.3.6 扩展混合内容类型133

5.4 阻止派生新的类型133

5.5 通配符135

5.5.1 元素通配符135

5.5.2 属性通配符137

5.6 元素替换138

5.6.1 阻止自己被替换139

5.6.2 阻止指定派生类型的替换141

5.7 抽象元素和抽象类型143

5.7.1 抽象元素143

5.7.2 抽象类型144

5.8 一致性约束145

5.8.1 key约束147

5.8.2 unique约束149

5.8.3 keyref约束150

5.9 元素组与属性组152

5.10 定义符号153

5.11 本章小结154

本章练习155

学生提问 如何确定一个XML元素所在的命名空间呢?157

第6章 命名空间详解156

6.1 使用命名空间157

6.2 Schema的命名空间支持159

6.2.1 在Schema中使用命名空间159

6.2.2 命名空间对XML文档的作用162

6.2.3 为属性使用命名空间限定166

6.2.4 命名空间对一致性约束的影响168

6.2.5 局部元素和局部属性的强制限定170

6.3 命名空间和DTD174

6.4 本章小结176

第7章 使用CSS显示XML文件177

7.1 样式单简介178

7.1.1 显示XML的两种常用样式单178

7.1.2 样式单的优势178

7.2 CSS的基本用法179

7.2.1 CSS基本语法179

7.2.2 引入外部样式文件180

7.2.3 使用内部CSS样式181

7.2.4 使用内联样式183

7.3 对XML文档有效的CSS选择器184

7.4 使用CSS显示XML186

7.5 本章小结187

第8章 使用XSLT显示XML188

8.1 XSL概述189

8.2 XSLT入门189

8.2.1 XSLT转换入门189

学生提问 XSLT为什么不直接将XML根元素当成根元素呢?192

8.2.2 使用template元素定义模板192

8.2.3 使用apply-templates处理子节点193

8.2.4 使用value-of输出节点内容196

8.2.5 匹配节点的模式198

8.2.6 mode属性200

8.3 XSLT转换分类202

8.3.1 客户端转换和服务器端转换202

8.3.2 Xalan处理器202

8.3.3 Saxon处理器205

学生提问 我发现用Saxon进行实时转换和用Xalan进行实时转换的JSP页面代码完全相同,这是为什么呢?207

8.4 XSLT的内置模板规则208

8.5 流程控制元素209

8.5.1 分支处理209

8.5.2 循环控制211

8.5.3 排序控制213

8.6 控制空白的处理方式215

8.7 创建结果树215

8.7.1 创建元素和属性216

8.7.2 创建文本221

8.7.3 创建处理指令222

8.7.4 创建注释222

8.7.5 复制223

8.7.6 输出格式化数值225

8.8 变量和参数230

8.8.1 为变量和参数指定值231

8.8.2 全局和局部的变量和参数232

8.8.3 改变参数值234

8.9 使用命名模板235

8.10 包含和导入238

8.10.1 使用import导入238

8.10.2 使用include包含239

8.10.3 解决模板定义冲突241

8.11 XSLT 1.1的fallback支持241

8.12 指定输出格式242

8.12.1 转换XML文档的相关格式242

8.12.2 转换HTML文档的相关格式244

8.13 XSLT的内置函数245

8.13.1 使用system-property函数245

8.13.2 使用current函数返回当前节点集246

8.13.3 使用element-available和function-available函数246

8.13.4 使用unparsed-entity-uri函数247

8.13.5 使用document函数处理多个源XML文档248

8.13.6 使用format-number函数250

8.13.7 使用key函数251

8.13.8 使用generate-id函数254

8.14 XSLT 2.0的常用新功能255

8.14.1 分组255

8.14.2 多文档输出257

8.14.3 字符映射259

8.14.4 <xsl:value-of>元素的改进260

8.14.5 数据类型绑定260

8.14.6 正则表达式支持261

8.14.7 用户自定义函数263

8.15 使用XMLSpy管理XSLT操作264

8.16 本章小结265

本章练习265

第9章 XPath语言详解266

9.1 XPath语言简介267

9.1.1 XPath节点267

9.1.2 XPath基本概念268

9.1.3 节点关系268

9.2 绝对路径和相对路径269

9.2.1 XPath基路径269

9.3 XPath基础语法270

9.3.1 轴(axis)271

9.3.2 节点测试(node-test)271

9.3.3 限定谓语(predicate)272

9.3.4 简化写法272

9.4 运算符和表达式273

9.4.1 算术运算符273

9.4.2 比较运算符274

9.4.3 逻辑运算符274

9.4.4 组合多个路径的运算符275

9.5 XPath 2.0新增的表达式275

9.5.1 for表达式275

9.5.2 if表达式278

9.5.3 some/every判断表达式279

9.6 XPath 2.0的类型支持280

9.7 内置函数库281

9.7.1 字符串相关函数281

9.7.2 数值相关函数283

9.7.3 日期和时间相关函数284

9.7.4 boolean值相关函数287

9.7.5 节点相关函数287

9.7.6 序列相关函数288

9.8 本章小结290

第10章 DOM、SAX和JAXP解析291

10.1 DOM、SAX和JAXP概述292

学生提问 接口的实现不是类吗,怎么接口的实现还是接口啊?294

10.2 JAXP的DOM支持297

10.2.1 XML文档和DOM模型297

10.2.2 DOM树中的对象类型298

10.2.3 DOM解析器299

10.2.4 使用DTD验证XML文档300

10.2.5 使用DOM解析XML文档302

10.2.6 使用DOM创建XML文档304

10.2.7 使用DOM修改XML文档307

10.2.8 解析DTD信息308

学生提问 如果我想获取DTD中的元素定义、属性定义等信息该怎么办?311

10.2.9 DOM和命名空间310

10.3 JAXP的SAX支持312

10.3.1 SAX的处理机制312

10.3.2 SAX解析器和监听器313

学生提问 为何XMLReader在调用时不需要传入SAX解析事件的监听器呢?SAX解析不是总是基于事件机制的吗?314

学生提问 XMLReader和SAXParser到底什么关系?我们到底应该用哪个呢?316

10.3.3 使用DTD验证XML的有效性316

10.3.4 使用SAX解析XML文档317

10.3.5 SAX和命名空间320

10.4 DOM和SAX的比较323

10.5 使用XML Schema验证XML文档324

10.5.1 SchemaFactory和验证324

学生提问 上面的SchemaFactory的newInstance()方法中怎么还有一个schemaLanguage参数,它代表什么呢?326

10.5.2 获取节点的类型信息328

10.6 浏览器对DOM的支持330

10.7 本章小结334

本章练习334

第11章 使用dom4j处理XML文档335

11.1 dom4j简介336

11.1.1 dom4j的封装和优势336

11.1.2 下载和安装dom4j337

11.2 dom4j常用API338

11.3 使用dom4j访问XML文档339

11.3.1 验证XML文档339

11.3.2 使用dom4j解析XML文档340

11.3.3 使用访问者模式遍历XML文档342

11.4 使用dom4j创建XML文档344

11.5 修改XML文档345

11.6 使用dom4j获取命名空间信息346

11.7 本章小结349

本章练习349

第12章 使用JDOM处理XML文档350

12.1 JDOM简介351

12.1.1 JDOM常用API351

12.1.2 下载和安装JDOM352

12.2 使用JDOM访问XML文档的实例352

12.2.1 验证XML文档的有效性353

12.2.2 使用JDOM解析XML文档354

12.3 使用JDOM创建XML文档356

12.4 修改XML文档357

12.5 使用JDOM获取命名空间信息358

12.6 选择dom4j还是JDOM361

12.7 本章小结361

本章练习361

第13章 XQuery详解362

13.1 XQuery简介363

13.1.1 XQuery和XPath的关系363

13.1.2 XQuery和XSLT的关系363

13.2 使用XQuery364

13.2.1 使用XMLSpy查看XQuery结果365

13.2.2 使用Saxon执行XQuery查询366

13.3 基本表达式(Primary Expressions)367

13.3.1 直接量(Literal)367

13.3.2 变量引用367

13.3.3 圆括号表达式367

13.3.4 上下文项表达式367

13.3.5 函数调用367

13.4 序列表达式368

13.4.1 构造序列368

13.4.2 过滤表达式368

13.4.3 组合节点序列369

13.5 算术表达式370

13.6 比较表达式370

13.6.1 值比较371

13.6.2 通用比较371

13.6.3 节点比较371

13.7 逻辑表达式372

13.8 构造器373

13.8.1 直接构造373

13.8.2 计算构造373

13.9 FLWOR表达式373

13.9.1 for、let和return子句374

13.9.2 where子句375

13.9.3 order by子句376

13.10 if表达式376

13.11 some/every判断表达式377

13.12 与序列类型有关的表达式378

13.12.1 instance of378

13.12.2 typeswitch378

13.12.3 cast378

13.12.4 castable379

13.13 模块和序言379

13.13.1 序言380

13.13.2 版本声明380

13.13.3 模块声明380

13.13.4 设置器(setter)381

13.13.5 导入设置382

13.13.6 命名空间声明384

13.13.7 默认命名空间声明384

13.13.8 变量声明385

13.13.9 函数声明386

13.13.10 选项声明387

13.14 使用XQJ执行XQuery388

13.14.1 XQJ和JDBC的类比性388

学生提问 JDBC API和接口我都知道,但JDBC实现好像很少听说啊?389

13.14.2 XQJ的编程步骤389

13.15 本章小结392

第14章 Web Service详解393

14.1 XML和Web Service394

14.1.1 Web Service概述394

14.1.2 Web Service平台概述395

14.1.3 Web Service的广泛应用396

14.2 SOA和云计算398

14.2.1 SOA和Web Service398

14.2.2 云计算和Web Service399

14.3 XML和Web Service400

14.3.1 SOAP基本语法400

14.3.2 Header元素401

14.3.3 Body元素403

14.3.4 Fault元素403

14.4 XML和WSDL404

14.4.1 WSDL基本语法405

14.4.2 portType元素409

14.4.3 binding元素410

14.4.4 service元素412

14.4.5 WSDL和UDDI412

14.5 使用CXF开发Web Service413

14.5.1 CXF概述413

14.5.2 下载和安装CXF414

14.5.3 使用CXF开发Web Service415

学生提问 是否必须将Web Service服务接口的.class文件复制到客户端呢?419

14.5.4 动态客户端419

14.5.5 复杂类型的处理421

14.5.6 使用拦截器425

14.5.7 使用拦截器进行权限控制427

14.6 整合与Spring开发Web Service431

14.6.1 在Spring中使用CXF431

14.6.2 通过Spring启用CXF拦截器434

14.6.3 在Spring容器中配置Web Service客户端436

14.7 本章小结437

第15章 基于XML的电子公告系统438

15.1 系统设计439

15.1.1 系统组件的交互关系439

15.2 设计XML文档439

15.2.1 保存状态的XML文档440

15.2.2 定义XML Schema442

15.3 定义XSLT样式单444

15.3.1 为公告列表定义样式单444

15.3.2 为用户评论设计样式单446

15.4 实现控制器449

15.4.1 添加公告449

15.4.2 查看评论列表452

学生提问 为什么不直接将XML文档保存在Web应用根路径下呢?这样不是就可以让浏览者直接访问这些XML文档了么?453

15.4.3 添加评论453

15.5 本章小结455

本章练习455

第16章 Web Service案例——电子拍卖系统456

16.1 系统功能简介和架构设计457

16.1.1 系统功能简介457

16.1.2 系统架构设计458

16.2 持久层设计458

16.2.1 系统实体459

16.2.2 系统E-R图和数据表459

16.2.3 实现Hibernate PO461

16.2.4 管理SessionFactory469

16.3 实现系统DAO层470

16.3.1 DAO的基础配置472

16.3.2 实现系统DAO组件472

16.3.3 配置系统DAO组件478

16.4 实现业务逻辑层479

16.4.1 定义业务逻辑组件接口479

16.4.2 依赖注入DAO组件481

16.4.3 业务逻辑组件中的异常处理482

16.4.4 处理用户竞价484

16.4.5 判断拍卖物品状态486

16.4.6 事务管理488

16.4.7 配置业务层组件489

16.5 使用CXF提供Web Service491

16.5.1 启用CXF支持492

16.5.2 实现Web Service493

16.5.3 测试Web Service498

16.6 本章小结499

本章练习500

热门推荐