下面为你整理一份清晰、系统、易懂的 《XML 指南(XML Guide)》,适合从零开始学习或作为参考手册使用。
📘 XML 指南(XML Guide)
1. XML 是什么?
XML(eXtensible Markup Language,可扩展标记语言) 用于存储和传输数据。
它不是编程语言,也不是用来展示页面的语言(不像 HTML),而是用来描述结构化数据。
✔ 数据传输(如旧式 API)
✔ 配置文件(如 Android、Maven、Spring)
✔ 文档存储(如 Office 文档底层格式)
2. XML 基本语法
一个最简单的 XML 文档示例:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<name>Tom</name>
<age>20</age>
</user>
</users>
3. XML 核心规则(必须掌握)
✔ 3.1 必须有根元素
<root> ... </root>
✔ 3.2 标签必须成对出现
<name>Tom</name>
✔ 3.3 标签不能交叉嵌套(非常重要)
❌ 错误:
<a><b></a></b>
✔ 正确:
<a><b></b></a>
✔ 3.4 大小写敏感
<Age> 和 <age>
是两个不同标签。
✔ 3.5 属性必须使用引号
<book id="1" />
✔ 3.6 文本中的某些符号必须转义
| 符号 | 转义 |
|---|---|
< | < |
> | > |
& | & |
' | ' |
" | " |
4. XML 元素与属性
4.1 元素(推荐用于描述数据结构)
<book>
<title>JavaScript</title>
<price>49.0</price>
</book>
4.2 属性(用于补充信息)
<book id="101" category="web">
<title>JavaScript</title>
</book>
元素 vs 属性 的使用原则:
| 情况 | 选择 |
|---|---|
| 数据内容 | 元素 |
| 元数据(ID、类型、标志) | 属性 |
5. 注释
<!-- 这是注释 -->
6. CDATA(存放特殊字符、HTML、脚本)
不想让 XML 解析器解析文本时使用:
<script>
<![CDATA[
if (a < b) { alert("test"); }
]]>
</script>
7. XML 模式与校验(重点)
XML 文件可以通过 DTD 或 XML Schema (XSD) 来验证结构是否正确。
7.1 DTD(旧的验证方式)
<!DOCTYPE note [
<!ELEMENT note (to,from)>
<!ELEMENT to (#PCDATA)>
]>
7.2 XSD(现代企业级验证方式)
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="name" type="xs:string"/>
</xs:schema>
XSD 的优势
✔ 类型系统更强(string, int, date)
✔ 可扩展
✔ 更严格
8. XML 解析方式
8.1 DOM 解析(一次性解析成树)
- 完整构建树结构
- 操作方便
- 消耗内存更多
适用于:中小型 XML 文件。
8.2 SAX 解析(流式解析)
- 按行扫描事件
- 节省大量内存
- 不能随时回头查看数据
适用于:大型 XML 文件(如日志、配置)。
9. 常见 XML 应用场景
✔ 9.1 配置文件
Spring、Maven、Tomcat 都大量使用 XML:
<beans>
<bean id="userService" class="com.demo.UserService"/>
</beans>
✔ 9.2 数据交换
早期 SOAP Web Service 数据格式:
<message>
<header>
</header>
</message>
✔ 9.3 Office 文档
.docx、.xlsx 内部都是 XML 文件。
✔ 9.4 Android 布局/Manifest
<TextView
android:text="Hello"
android:layout_width="match_parent"/>
10. XML 与 JSON 比较
| 项目 | XML | JSON |
|---|---|---|
| 结构 | 复杂、冗长 | 更简洁 |
| 数据模型 | 文档型 | 数据型 |
| 类型支持 | XSD 提供强类型 | 自带基础类型 |
| 注释 | 支持 | 不支持标准注释 |
| 常用领域 | 配置、文档 | Web API、前端数据 |
现代 Web API 基本已由 XML → JSON。
11. XML 最佳实践
✔ 合理使用元素和属性
✔ 必须保证结构正确(成对标签、无交叉)
✔ 使用 XSD 校验格式稳定性
✔ 注释说明结构(避免迷路)
✔ 避免嵌套过深
✔ 不要把 XML 当编程语言使用
12. 学习路线(简短版)
- 基本语法
- 标签、属性、注释
- DTD
- XSD(必学)
- DOM / SAX 解析
- 真实项目应用:
- Android XML
- Spring XML
- 配置文件
如果你需要,我可以进一步为你提供:
📄 XML 速查表(Cheat Sheet)
📝 XML + XSD 示例项目
📦 将本指南导出为 PDF / Markdown / DOCX
💡 XML → JSON 转换工具示例 JavaScript 代码
🏗 手把手写一个 XML Schema(XSD)
你想继续深入哪一部分?