如果我问一个菜鸟问题,请道歉:
xml中“#”合法吗?
<?xml version="1.0" encoding="UTF-8"?>
<mmi_legend>
<element value="1">
<sky_blue>#00CCFF</sky_blue> //Is the "#" valid in xml?
</element>
</mmi_legend>
我检查了reference list,它没有提到“#”的任何字符引用,所以这是否意味着“#”在xml中是合法的?
答案 0 :(得分:5)
是的,#是在XML元素中使用的合法字符,不需要转义。
答案 1 :(得分:5)
如果您阅读官方XML spec,则第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分隔符,“]]&gt;”。在CDATA部分,字符数据是任何字符串,不包括CDATA-section-close分隔符,“]]&gt;”。
CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)
因此,要回答您的问题 - #
为#x23
,因此根据Char
和CharData
的定义,允许在元素数据中显示未编码。< / p>
答案 2 :(得分:3)
//
评论肯定不是。{{1}}。