title: “XML基础 - Web Services核心技术讲义” source: “田浩然上传的资料” original_path: “/田浩然上传的资料/0_WebServices/XMLFundamentals.pdf” author: “Lian Yu, 北京大学软件与微电子学院” size: “564.86 KB” pages: 108 date: “2026-09-29” method: “PDF文本提取(pdf-inspector)” status: “done” tags:
- XML
- Web服务
- Schema
- Namespace
- XSLT
XML基础 - Web Services核心技术讲义
概述
北京大学软件与微电子学院 Lian Yu 老师的 Web Services Technologies 课程讲义第2章,系统讲解 XML 作为 Web Services 基础技术的核心概念。
核心观点
XML 是 Web Services 的 Lingua Franca
XML 是 Web Services 架构的基础构建块,具有以下关键特性:
- 平台无关、语言无关:天然适合构建互操作性的分布式系统
- 结构化数据表达:将电子表格、通讯录、配置文件等结构化数据标准化
- Unicode 完全兼容:支持国际化和本地化
- 严格语法:相比 HTML,XML 不允许模糊解析,增强了机器可读性
XML 十要点(W3C 平台概览)
- XML 用于结构化数据
- 外观类似 HTML,但语义由应用定义
- 文本格式,但不为人读(为机器读)
- 设计时有意冗余(便于解析和调试)
- 技术家族(不单单是 XML 1.0)
- 历史深厚(1996年开始开发,1998年成为 W3C 推荐标准)
- 催生 XHTML(HTML 的 XML 化)
- 模块化设计
- RDF 和语义网的基础
- 免费、平台无关、广泛支持
XML 文档语法要素
- 元素:由标签
<element>和</element>界定 - 属性:name=“value” 形式
- 严格规则:
- 所有标签必须有结束标签(或自闭合)
- 元素不能重叠,只能嵌套
- 文档只能有一个根元素
- 属性名在标签内唯一
XML Namespaces(命名空间)
解决元素名称冲突的核心机制:
- 作用:区分来自不同命名空间但名称相同的元素
- 实现:使用 URI 标识命名空间(通常用 HTTP URL)
- 声明方式:
- 显式:
xmlns:prefix="URI" - 默认:
xmlns="URI"
- 显式:
- 继承规则:默认命名空间自动传播到所有子元素,除非子元素显式声明其他命名空间
XML Schema(XSD)
XML Schema 是定义 XML 文档结构和约束的语言,核心功能包括:
Simple Type 定义
-
Restriction:基于基本类型施加约束
length,minLength,maxLength:字符串长度约束pattern:正则表达式约束enumeration:枚举值约束whiteSpace:空白字符处理(preserve/replace/collapse)minInclusive,maxInclusive,minExclusive,maxExclusive:数值范围约束fractionDigits,totalDigits:数字精度约束
-
List:创建空格分隔的列表类型
-
Union:合并多个类型的值空间
Complex Type 定义
使用三种 compositor 组合元素:
- sequence:元素按顺序出现(默认 minOccurs=1, maxOccurs=1)
- choice:元素二选一或多选一
- all:元素无序出现(minOccurs/maxOccurs 不适用)
通配符元素:
<any>:允许任意元素占位,支持未来扩展<anyAttribute>:允许任意属性占位
processContents 控制验证严格程度:
strict:默认,必须找到 schema 并验证lax:找不到 schema 时检查 well-formednessskip:不验证
Schema 管理
- include:在相同 namespace 内分片 schema
- import:跨 namespace 引用其他 schema
XML 处理技术
SAX(Simple API for XML)
- 事件驱动的流式解析
- 正向、只读、低内存占用
- 适合大文档处理
DOM(Document Object Model)
- 树形结构对象模型
- 随机访问任意节点
- 内存占用较高
XSLT 和 XPath
- XSLT:声明式规则-based 转换语言
- XPath:表达式语言,用于定位 XML 文档中的节点
- 典型应用:将一种 XML 格式转换为另一种格式
XML Schema 最佳实践
- 始终使用
elementFormDefault="qualified"和attributeFormDefault="unqualified" - 全局声明类型,局部声明元素(根元素除外)
- 用类型表达内容模型,用元素控制文档结构
- 根据对象模型选择最贴近的 Schema 特性
知识关联
- Web Services 架构:XML 是 WS 的基础层
- SOAP 协议:基于 XML 的消息传递协议
- WSDL:基于 XML 的服务描述语言
- RDF 语义网:XML 在语义网中的应用
行动点
- 实际项目中应建立 XML Schema 设计规范
- 考虑使用 XSLT 实现数据格式转换
- 大文档处理优先选择 SAX 而非 DOM