在编写XML文档时,文件头部的声明经常看到<?xml version="1.0" encoding="UTF-8"?>这样的写法。不少开发者会好奇,version写成1.1行不行,两者之间到底该怎么选。本文从实际开发和解析兼容的角度,把XML 1.0与1.1的差异讲清楚。

XML 1.0与1.1的核心差异
XML 1.0自1998年发布,是目前使用最广泛的版本。XML 1.1在2004年推出,主要调整了字符集相关规则。
字符允许范围不同
XML 1.0基于较早的Unicode版本,禁止在内容中使用部分控制字符,例如一些不可见的控制码。XML 1.1则允许在合法范围内使用更多控制字符,并且对行结束符的表示更宽松,可以接受U+000D、U+000A以及U+0085等。
解析器默认支持情况
虽然规范定义了1.1,但大量老牌解析器、编辑器以及中间件的默认行为仍围绕1.0设计。很多工具在看到version="1.1"时并不会开启特殊处理,甚至直接报不支持。
| 对比项 | XML 1.0 | XML 1.1 |
|---|---|---|
| 发布时间 | 较早,生态成熟 | 较晚,支持有限 |
| 控制字符 | 限制较严 | 允许更多 |
| 兼容性 | 几乎所有解析器支持 | 部分解析器不支持 |
什么时候该用哪个版本
如果你的XML用于普通配置文件、接口报文、数据交换,那么直接使用<?xml version="1.0"?>即可。只有在确实需要嵌入某些特殊控制字符,且确认上下游系统都明确支持1.1时,才考虑升级版本。
常见声明写法
<?xml version="1.0" encoding="UTF-8"?> <root> <item>默认使用1.0即可满足大多数场景</item> </root>
下面这段演示了如果强行使用1.1,但在不支持的解析器中可能出错:
<?xml version="1.1" encoding="UTF-8"?> <root> <note>需要解析器支持1.1才能稳定处理</note> </root>
总结建议
实际项目里,version="1.0"是更安全、兼容性更好的选择。除非有明确的特殊字符处理需求并且技术栈完全支持,否则不必切换到1.1。写XML头部时,保持简单清晰,往往比追新更重要。
XMLXML_versionencoding修改时间:2026-07-28 13:54:19