XML属性中哪些字符无效(除非编码)?

Eur*_*lli 47 xml xml-serialization

我无法相信我无法轻易获得这些信息,因此:

1)如果没有对它们进行实体编码,哪些字符不能合并到XML属性中?

显然,您需要编码引号.怎么样<>?还有什么?

2)官方名单到底在哪里?

gre*_*ama 52

以下是属性值中允许内容的定义.

'"' ([^<&"] | Reference)* '"'  |  "'" ([^<&'] | Reference)* "'" 
Run Code Online (Sandbox Code Playgroud)

所以,你不能有:

  • 打开的相同的字符/关闭所述属性值(无论是 '")
  • 一个裸露的&符号(&必须&amp;)
  • 左角括号(<必须&lt;)

您也不应该使用任何在XML文档中任何地方完全不合法的字符(例如换页等).


cod*_*ead 5

根据(2)当前的建议,特别是关于字符数据和标记,它们是(1)&符号(&),左尖括号(<),右尖括号(>)和单引号(')和双-quote(").

  • -1 不需要转义 `&gt;`,也不需要转义 `'` 或 `"`(不用于分隔属性。 (2认同)

Joh*_*ers 1

参见《可扩展标记语言(XML)1.0(第三版)》中的2.2 字符

请注意,至少对于 .NET,如果您使用 XML API 来处理 XML,则不必担心这一点。这就是不将 XML 视为文本的原因。