1 句法 1
条款1 包含XML声明 1
version信息 2
encoding声明 3
standalone声明 4
条款2 尽可能使用ASCII码 5
条款3 坚持使用XML1.0 10
在XML名字中引入的新字符 10
C0控制字符 12
C1控制字符 15
NEL作为行中断符 15
Unicode标准化 16
未声明的命名空间前缀 17
条款4 使用标准实体引用 18
条款5 自由地注释DTD 20
Header注释 22
声明 25
条款6 使用Camel字体命名元素 28
条款7 参数化DTD 31
参数化属性 34
参数化命名空间 34
完全参数化 36
条件部分 38
条款8 模块化DTD 40
条款9 区分文本与标记 49
条款10 空白空间 51
xml:space属性 51
可忽略的空白空间 52
标签和空白空间 53
属性中的空白空间 54
模式 55
2 结构 57
条款11 使用标记达到结构明显 57
每个信息单元使用一个独立标签 58
避免隐含结构 61
到何处截止 65
条款12 在属性中存储元数据 67
条款13 注意混合内容 73
条款14 允许使用所有XML句法 77
条款15 依据结构而不依据句法 79
空元素标签 82
CDATA片断 83
字符和实体引用 86
条款16 使用URL引用非解析实体和符号 87
条款17 为需要特殊处理的内容使用处理指令 91
样式定位 92
标记重叠 94
页面格式化 96
超越行的标记 97
误用处理指令 98
条款18 在实例文档中包含所有信息 99
条款19 使用Quoted Printable和Base64编码二进制数据 103
Quoted Printable 104
Base64 105
条款20 使用命名空间增强模块性和可扩展性 106
选择命名空间URI 107
有效性和命名空间 111
条款21 依赖命名空间URI,而不依赖前缀 112
条款22 不要在元素内容和属性值中使用命名空间前缀 115
条款23 为叙述性内容重用XHTML 117
条款24 选择合适的模式语言 123
W3C XML Schema语言 124
Document Type Definitions 125
RELAX NG 126
Schematron 127
Java、C#、Python和Perl 129
分层的模式 131
条款25 装做不存在PSVI类型的事物 132
条款26 版本、模式及样式表 135
条款27 根据含义标记 141
3 语义 146
条款28 用你所需 146
条款29 时时应用解析器 153
条款30 层次功能性 156
条款31 用标准API编程 160
SAX 161
DOM 165
JDOM 167
条款32 选用SAX提高计算机性能 168
条款33 选用DOM支持标准化 172
条款34 读取完全的DTD 175
条款35 应用XPath导航 181
条款36 用XML序列化XML 190
条款37 在你的程序中应用模式进行验证 192
Xerces-J 195
DOM Level 3验证 199
4 实现 202
条款38 用Unicode编写 202
选择一个解码方法 204
UTF-8 204
UTF-16 205
非Unicode字符集 206
一个char不是一个字符 207
标准化形式 208
排序 209
条款39 参数化XSLT样式表 210
条款40 避免锁定某个厂商 214
条款41 继续使用关系数据库 218
条款42 用RDDL定义文档命名空间 221
本质 224
目的 226
条款43 在服务器端预处理XSLT 229
基于伺服机制的解决方法 230
Saxon 230
Xalan 231
Apache 232
条款44 向客户端发送XML+CSS 233
IIS 233
条款45 选择正确的MIME媒体类型 236
条款46 整理你的HTML 240
MIME类型 241
HTMLTidy 242
较老的浏览器 242
条款47 编目公用资源 244
目录句法 245
应用目录文件 246
条款48 应用数字签名来验证文档 250
数字签名句法 251
数字签名工具 260
条款49 用XML加密隐藏机密的数据 262
加密句法 263
加密工具 268
条款50 如果空间是个问题,则进行压缩 269