XML是一种可扩展标记语言,常用于数据存储和传输,它的格式要求非常严格,不符合规范的文档会导致解析失败。掌握XML的格式要求是使用它的基础。

XML核心格式要求
1. 文档声明
XML文档开头通常需要添加文档声明,用来说明XML的版本和编码方式,声明必须放在文档的第一行,前面不能有其他内容。
<?xml version="1.0" encoding="UTF-8"?>
其中version是必填属性,目前常用的是1.0版本,encoding指定文档的字符编码,避免中文等字符出现乱码。
2. 标签规则
XML的标签需要严格遵循以下规则:
- 标签必须成对出现,有开始标签就要有对应的结束标签,比如<user>对应的结束标签是</user>
- 标签名区分大小写,<User>和<user>是两个不同的标签
- 标签名不能以数字或标点符号开头,不能包含空格,建议使用字母开头
- 如果没有内容,可以使用自闭合标签,比如<br/>,但自闭合标签也要符合语法规范
3. 属性定义规则
XML标签的属性需要放在开始标签中,遵循以下要求:
- 属性值必须用英文双引号或单引号包裹,不能省略引号
- 同一个标签中不能有同名的属性
- 属性名同样区分大小写,命名规则和标签名一致
正确的属性示例:
<user id="1001" name="张三"></user>
4. 特殊字符处理
XML中有几个特殊字符不能直接使用,需要进行转义,否则会导致文档格式错误:
| 特殊字符 | 转义后写法 | 说明 |
|---|---|---|
| < | < | 小于号,标签开始符号 |
| > | > | 大于号,标签结束符号 |
| & | & | 和号,转义字符前缀 |
| " | " | 双引号,属性值包裹符号 |
| ' | ' | 单引号,属性值包裹符号 |
如果文档中有大量特殊字符,也可以使用CDATA段来包裹内容,CDATA段中的内容不会被解析器解析:
<content>
<![CDATA[
这里可以写任意内容,包括< > &等字符,不需要转义这是一段HTML内容
]]>
</content>5. 根元素要求
一个规范的XML文档必须有且仅有一个根元素,所有其他元素都必须放在根元素内部,不能存在游离在根元素之外的内容。
正确的结构示例:
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user id="1001">
<name>张三</name>
<age>25</age>
</user>
<user id="1002">
<name>李四</name>
<age>28</age>
</user>
</users>上面的示例中<users>就是根元素,所有<user>元素都包含在它内部,符合格式要求。
常见格式错误示例
以下是几个常见的XML格式错误,开发者可以避免:
- 标签没有闭合:<user>张三</user 缺少结束标签的>
- 属性值没有引号:<user id=1001></user>
- 标签名包含空格:<user name></user name>
- 有多个根元素:<user></user><user></user> 没有外层根元素包裹
只要遵循上述格式要求,就可以写出规范的XML文档,避免解析时出现不必要的错误。在实际开发中,也可以使用XML编辑器或校验工具来检查文档格式是否符合规范。