哪些字符在XML属性中是无效的(除非编码)?
我不敢相信我找不到这个信息,所以:
1)哪些字符不能在没有实体编码的情况下合并到XML属性中?
显然,你需要编码报价。 那么<
和>
呢? 还有什么?
2)正式名单到底在哪里?
以下是属性值中允许的定义。
'"' ([^<&"] | Reference)* '"' | "'" ([^<&'] | Reference)* "'"
所以,你不能有:
- 打开/closures属性值(
'
或"
)的相同字符 - 一个赤裸裸的&(必须
&
) - 左尖括号(
<
必须是<
)
你也不应该使用任何在XML文档中任何地方都不合法的字符 (比如表单提要等)。
根据(2) 当前的build议 ,特别是关于字符数据和标记 ,它们是(1)和号(&),左尖括号(<),右尖括号(>)以及单引号(')和双“(”)。
请参阅“可扩展标记语言(XML)1.0(第三版)”中的 2.2字符 。
请注意,至less在.NET中,如果您使用XML API来处理XML,那么您将不必担心这一点。 这是不把XML当作文本的原因。