第1章 XML Schema简介
1.1 XML Schema的概念
1.2 模式的用途
1.2.1 数据确认
1.2.2 交易双方的合约
1.2.3 系统文档
1.2.4 数据扩充
1.2.5 应用程序信息
1.3 模式设计
1.3.1 准确性和精确性
1.3.2 明晰性
1.3.3 广泛适用性
1.4 模式语言
1.4.1 文档类型定义
1.4.2 进入模式
1.4.3 W3C的XML Schema
1.4.4 术语说明
1.4.5 其他模式语言
第2章 XML Schema快速入门
2.1 示例模式
2.2 XML Schema的组件
2.2.1 声明与定义的比较
2.2.2 全局组件与局部组件的比较
2.3 元素和属性
2.4 数据类型
2.4.1 简单类型和复杂类型
2.4.2 命名类型和匿名类型
2.4.3 类型定义层次
2.5 简单类型
2.5.1 内置简单类型
2.5.2 限制简单类型
2.5.3 列表类型和联合类型
2.6 复杂类型
2.6.1 内容类型
2.6.2 内容模型
2.6.3 派生复杂类型
2.7 命名空间和XML Schema
2.8 模式组成
2.9 实例和模式
2.10 注解
2.11 高级特性
2.11.1 可重用组
2.11.2 一致性约束
2.11.3 替代组
2.11.4 重定义
第3章 命名空间
3.1 XML中的命名空间
3.1.1 命名空间名称是URI
3.1.2 命名空间声明和前缀
3.1.3 默认命名空间声明
3.1.4 名称术语
3.1.5 命名空间声明的作用域
3.1.6 重写命名空间声明
3.1.7 属性和命名空间
3.1.8 总结示例
3.2 命名空间和模式的关系
3.3 在XSDL中使用命名空间
3.3.1 目标命名空间
3.3.2 XML Schema命名空间
3.3.3 XML Schema实例命名空间
3.3.4 模式文档中的命名空间声明
第4章 模式组成
4.1 模块化模式文档
4.2 定义模式文档
4.3 模式组合
4.3.1 组合多个文档的模式
4.3.2 限定名称的惟一性
4.3.3 缺少的组件
4.3.4 模式文档默认值
4.4 include、redefine和import
4.4.1 包含(include)
4.4.2 重定义(redefine)
4.4.3 导入(import)
第5章 实例和模式
5.1 使用实例属性
5.2 模式处理
5.2.1 验证
5.2.2 扩充实例
5.3 使实例与模式相关
5.4 在实例中使用XSDL提示
5.4.1 xsi:schemaLocation属性
5.4.2 xsi:noNamespaceSchemaLocation属性
5.5 间接引用命名空间
5.6 根元素
5.7 协同使用DTD和模式
5.8 使用特定模式处理器
5.8.1 XSV
5.8.2 Xerces
5.8.3 Oracle XDK
5.8.4 Microsoft MSXML
第6章 模式文档和扩展
6.1 机制
6.1.1 注解
6.1.2 用户文档
6.1.3 应用程序信息
6.1.4 验证注解
6.1.5 非原属性
6.1.6 设计提示:应该使用注解还是非原属性
6.2 用户文档
6.2.1 用户文档类型
6.2.2 数据元素定义
6.2.3 代码文档
6.2.4 分段备证
6.3 应用程序信息
6.3.1 应用程序信息的类型
6.3.2 同现约束的Schematron
6.3.3 RDBMS映射的模式附属框架
6.4 符号
6.4.1 声明符号
6.4.2 声明符号属性
6.4.3 符号和未解析的实体
第7章 元素声明
7.1 全局和局部元素声明
7.1.1 全局元素声明
7.1.2 局部元素声明
7.1.3 设计提示:应该使用全局还是局部元素声明
7.2 声明元素的数据类型
7.3 默认值和固定值
7.3.1 默认值
7.3.2 固定值
7.4 零值和置零性
7.4.1 在实例中使用xsi:nil
7.4.2 使元素可置零
7.5 限定与非限定形式
第8章 属性声明
8.1 全局和局部属性声明
8.1.1 设计提示:应该使用属性还是元素
8.1.2 全局属性声明
8.1.3 局部属性卢明
8.1.4 设计提示:应该在全局还是局部声明属性
8.2 为属性指派类型
8.3 默认值和固定值
8.3.1 默认值
8.3.2 固定值
8.4 限定与非限定形式的比较
第9章 简单类型
9.1 简单类型的种类
9.2 简单类型的定义
9.2.1 命名简单类型
9.2.2 匿名简单类型
9.2.3 设计提示:应该使用命名类型还是匿名类型
9.3 简单类型的限制
9.3.1 定义限制
9.3.2 面的综述
9.3.3 继承与限制面
9.3.4 固定面
9.4 面
9.4.1 界限面
9.4.2 长度面
9.4.3 totalDigits和fractionDigits
9.4.4 枚举
9.4.5 样式
9.4.6 Whitespace
9.5 阻止简单类型派生
第10章 正则表达式
10.1 正则表达式的结构
10.2 基本单元
10.2.1 标准字符
10.2.2 字符类换码
10.2.3 字符类表达式
10.2.4 加括号的正则表达式
10.3 量词
第11章 联合类型与列表类型
11.1 种类和派生类型
11.2 联合类型
11.2.1 定义联合类型
11.2.2 限制联合类型
11.2.3 联合的联合
11.2.4 在实例中指定成员类型
11.3 列表类型
11.3.1 定义列表类型
11.3.2 设计提示:应该何时使用列表
11.3.3 限制列表类型
11.3.4 列表与字符串
11.3.5 联合的列表
11.3.6 列表的列表
11.3.7 限制项目类型
第12章 内置简单类型
12.1 内置类型
12.2 基于字符串的类型
12.2.1 string、normalizedString与token
12.2.2 Name
12.2.3 NCName
12.2.4 language
12.3 数字类型
12.3.1 浮点与双精度
12.3.2 小数
12.3.3 整数类型
12.4 日期和时间类型
12.4.1 date
12.4.2 time
12.4.3 dateTime
12.4.4 gYear
12.4.5 gYearMonth
12.4.6 gMonth
12.4.7 gMonthDay
12.4.8 gDay
12.4.9 duration
12.4.10 表示时区
12.4.11 面
12.4.12 日期和时间排序
12.5 继承类型
12.5.1 ID
12.5.2 IDREF
12.5.3 IDREFS
12.5.4 ENTITY
12.5.5 ENTITIES
12.5.6 NMTOKEN
12.5.7 NMTOKENS
12.5.8 NOTATION
12.6 其他类型
12.6.1 QName
12.6.2 boolean
12.6.3 hexBinary和base64Binary
12.6.4 anyURI
12.7 类型等同性
第13章 复杂类型
13.1 复杂类型的概念
13.2 定义复杂类型
13.2.1 命名复杂类型
13.2.2 匿名复杂类型
13.2.3 复杂类型选择
13.3 内容类型
13.3.1 简单内容
13.3.2 纯元素内容
13.3.3 混合内容
13.3.4 空内容
13.4 使用元素类型
13.4.1 局部元素声明
13.4.2 元素引用
13.4.3 元素通配符
13.4.4 元素类型名称的重复
13.5 使用模型组
13.5.1 sequence组
13.5.2 choice组
13.5.3 sequence和choice组的嵌套
13.5.4 all组
13.5.5 命名模型组引用
13.5.6 确定性内容模型
13.6 使用属性
13.6.1 局部属性声明
13.6.2 属性引用
13.6.3 属性通配符
13.6.4 属性组引用
第14章 派生复杂类型
14.1 派生类型的作用
14.2 限制和扩展
14.3 简单内容和复杂内容
14.3.1 simpleContent元素
14.3.2 complexContent元素
14.4 复杂类型扩展
14.4.1 简单内容扩展
14.4.2 复杂内容扩展
14.4.3 混合内容扩展
14.4.4 空内容扩展
14.4.5 属性扩展
14.4.6 属性通配符扩展
14.5 复杂类型限制
14.5.1 简单内容限制
14.5.2 复杂内容限制
14.5.3 混合内容限制
14.5.4 空内容限制
14.5.5 属性限制
14.5.6 属性通配符限制
14.6 类型替代
14.7 控制类型派生和替代
14.7.1 final:阻止复杂类型派生
14.7.2 block:阻止派生类型的替代
14.7.3 阻止元素声明中的类型替代
14.7.4 abstract:强制派生
第15章 可重用组
15.1 可重用组的作用
15.2 命名模型组
15.2.1 定义命名模型组
15.2.2 引用命名模型组
15.3 属性组
15.3.1 定义属性组
15.3.2 引用属性组
15.4 可重用组与复杂类型派生
第16章 替代组
16.1 替代组的作用
16.2 替代组的层次结构
16.3 声明替代组
16.4 替代组的类型约束
16.5 替代组的替换
16.5.1 可重用choice组
16.5.2 在实例中替代派生类型
16.6 控制替代组
16.6.1 final:阻止替代组声明
16.6.2 block:在实例中阻止替代
16.6.3 abstract:强制替代
第17章 一致性约束
17.1 一致性约束类别
17.2 设计提示:应该使用ID/IDREF还是key/keyref
17.3 一致性约束的结构
17.4 惟一性约束
17.5 关键字约束
17.6 关键字引用
17.7 选择器与字段
17.7.1 选择器
17.7.2 字段
17.8 XML Schema的XPath子集
17.9 一致性约束和命名空间
第18章 重定义模式组件
18.1 重定义基础
18.1.1 包含和重定义
18.1.2 重定义和命名空间
18.1.3 扩大的影响
18.2 重定义机制
18.3 重定义简单类型
18.4 重定义复杂类型
18.5 重定义命名模型组
18.5.1 定义子集
18.5.2 定义超集
18.6 重定义属性组
18.6.1 定义子集
18.6.2 定义超集
第19章 关于DTD
19.1 元素声明
19.1.1 简单类型
19.1.2 带有简单内容的复杂类型
19.1.3 带有复杂内容的复杂类型
19.1.4 混合内容
19.1.5 守内容
19.1.6 任何内容
19.2 属性声明
19.2.1 属性类型
19.2.2 枚举属性类型
19.2.3 Notation属性
19.2.4 默认值
19.3 符号
19.4 可重用的参数实体
19.4.1 重用内容模型
19.4.2 重用属性
19.5 用于可扩展性的参数实体
19.5.1 sequence组的扩展
19.5.2 choice组的扩展
19.5.3 属性扩展
19.5.4 属性组扩展
19.6 外部参数实体
19.7 通用实体
19.7.1 字符和其他已分析的实体
19.7.2 未分析的实体
19.8 注释
19.9 协同使用DTD和模式
第20章 命名考虑事项
20.1 命名指导原则
20.1.1 有效XML名称的规则
20.1.2 分隔符
20.1.3 名称长度
20.1.4 标准术语和缩写
20.1.5 主题术语的使用
20.2 限定与非限定名称
20.2.1 限定的局部名称
20.2.2 非限定的局部名称
20.2.3 使用elementFormDefault
20.2.4 形式和全局元素声明
20.2.5 默认命名空间和非限定名称
20.2.6 设计提示:应该使用限定的还是非限定的局部名称
20.2.7 限定的与非限定的属性名称
20.3 构造命名空间
20.3.1 同一个命名宇间
20.3.2 不同的命名空间
20.3.3 可变命名空间
20.4 多种语言
第21章 可扩展性和重用
21.1 重用
21.2 扩展模式
21.2.1 通配符
21.2.2 类型派生
21.2.3 替代组
21.2.4 类型重定义
21.2.5 命名模型组重定义
21.3 模式的版本管理
21.3.1 模式兼容性
21.3.2 应用程序兼容性
21.3.3 转换功能
21.3.4 使用版本号
21.4 设计支持变化的应用程序
附录A XSDL关键字表
A.1 XSDL元素类型
A.2 XSDL属性
附录B 内置简单类型
B.1 内置简单类型
B.2 对于内置简单类型的适用性