在XML文件头部,是选用1.0版还是1.1版更为合适?

2026-04-29 13:191阅读0评论SEO基础
  • 内容介绍
  • 相关推荐

本文共计764个文字,预计阅读时间需要4分钟。

在XML文件头部,是选用1.0版还是1.1版更为合适?

XML 1.1 几乎没有实际应用场景,连主流解析器(如 Python 的 xml.etree.ElementTree、Java 的 DocumentBuilder、浏览器 DOM 解析)都默认不支持或需显式启用且作为不一致处理。

XML 1.1 唯一“合法”用途:处理含控制字符的遗留数据

XML 1.1 放宽了对某些 C0/C1 控制字符(如 \x01\x08\x0B\x0C\x0E\x1F)的限制,允许它们出现在字符数据中(需转义或声明为 CDATA)。但现实是:

  • 现代系统几乎不会生成这类数据;若真遇到,优先清洗掉控制字符,而非迁移到 XML 1.1
  • libxml2(被 lxml、PHP、GNOME 等大量依赖)对 XML 1.1 的支持不完整,比如不校验 U+0085(NEL)是否合法
  • HTTP Content-Type 头不区分 1.0/1.1,服务器和客户端根本不管这个 version 声明

声明 version="1.0" 不等于“强制校验”——它只是提示

XML 声明里的 version 属性本身不触发任何版本特定的语法检查。

阅读全文

本文共计764个文字,预计阅读时间需要4分钟。

在XML文件头部,是选用1.0版还是1.1版更为合适?

XML 1.1 几乎没有实际应用场景,连主流解析器(如 Python 的 xml.etree.ElementTree、Java 的 DocumentBuilder、浏览器 DOM 解析)都默认不支持或需显式启用且作为不一致处理。

XML 1.1 唯一“合法”用途:处理含控制字符的遗留数据

XML 1.1 放宽了对某些 C0/C1 控制字符(如 \x01\x08\x0B\x0C\x0E\x1F)的限制,允许它们出现在字符数据中(需转义或声明为 CDATA)。但现实是:

  • 现代系统几乎不会生成这类数据;若真遇到,优先清洗掉控制字符,而非迁移到 XML 1.1
  • libxml2(被 lxml、PHP、GNOME 等大量依赖)对 XML 1.1 的支持不完整,比如不校验 U+0085(NEL)是否合法
  • HTTP Content-Type 头不区分 1.0/1.1,服务器和客户端根本不管这个 version 声明

声明 version="1.0" 不等于“强制校验”——它只是提示

XML 声明里的 version 属性本身不触发任何版本特定的语法检查。

阅读全文