根据specification字符 [#x10000-#xEFFFF] 在 XML 名称中是合法的。然而,W3 验证器说这个 XML 格式不正确:
<?xml version="1.0"?>
<𐐀>value</𐐀>
(属性的名称是一个 Unicode 字符 #x10400 )。一些浏览器,如 Firefox,也会提示它(Chrome 显示 XML,IE 显示空白页面)。是工具错误还是 XML 真的格式不正确?
最佳答案
Is it an error in tools or the XML is really not well-formed?
是well formed在最新的规范中,即 XML 1.0 第五版。但它是not well-formed上一版,直到 2008 年才有效。
最初的 XML 1.0 规范(自 1998 年起)将名称字符集锁定为当时 Unicode 标准中定义为字母的字符。这不包括几年后才随 Unicode 3.1 一起出现的 𐐀
。
XML 1.1 在名称中接受哪些字符方面更加宽松(主要是出于这个原因,以允许来自 future Unicode 版本的字符),这是一件好事。然而,XML 1.1 从未真正流行起来,因此编辑们决定将更新的、更宽松的 namechar 规则从那里移植到 1.0。这是 controversial总而言之,这可能不是一件好事。
这意味着您可以在 XML 1.0 文档的名称中使用 𐐀
并可供已针对第五版更新的解析器子集使用(或者从一开始就从未实现过严格规则),或者您可以在 XML 1.1 文档中使用它们,并可供一组不同的支持 XML 1.1 的解析器使用。
或者,更现实一点,你可以避开那些完全依赖于良好形式的字符,并感到有点悲伤。
关于xml - XML 名称中是否允许增补字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38919409/