我无法相信我无法轻易找到这些信息,所以:
1)如果没有对实体进行编码,哪些字符不能合并到XML属性中?
显然,您需要编码引号。那么<
和>
怎么样?还有什么?
2)官方名单到底在哪里?
答案 0 :(得分:50)
以下是what is allowed in an attribute value的定义。
'"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"
所以,你不能拥有:
'
或"
)&
必须为&
)<
必须为<
)您也不应该使用任何在XML文档中任何地方完全不合法的characters(例如换页等)。
答案 1 :(得分:5)
根据(2)current recommendation,特别是关于character data and Markup,它们是(1)&符号(&amp;),左尖括号(&lt;),右尖括号(&gt;)以及单引号(')和双引号(“)。
答案 2 :(得分:1)
请参阅2.2 Characters中的"Extensible Markup Language (XML) 1.0 (Third Edition)"。
请注意,至少在.NET中,如果您使用XML API来处理XML,那么您不必担心这一点。这就是不将XML视为文本的原因。