如果我问一个菜鸟问题,请道歉:
xml中"#"合法吗?
#00CCFF //Is the "#" valid in xml?
我检查了引用列表,它没有提到"#"的任何字符引用,所以这是否意味着"#"在xml中是合法的?
是的,#是在XML元素中使用的合法字符,不需要转义.
如果您阅读官方XML规范,则第2.2节将字符定义为:
字符是ISO/IEC 10646:2000 [ISO/IEC 10646]规定的文本原子单位.合法字符包括制表符,回车符,换行符以及Unicode和ISO/IEC 10646的法律字符.A.1规范性引用文件中引用的这些标准的版本在编写本文档时是最新的.可以通过修订或新版本将新字符添加到这些标准中.因此,XML处理器必须接受为Char指定的范围内的任何字符.]
角色范围
Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
第2.4节进一步说:
在元素的内容中,字符数据是任何字符串,不包含任何标记的起始分隔符,并且不包括CDATA-section-close分隔符,"]]>".在CDATA部分中,字符数据是任何字符串,不包括CDATA-section-close分隔符,"]]>".
CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
因此,要回答你的问题- #
是#x23
,所以它被允许以单元数据出现未编码的,每个的定义Char
和CharData
.