会发生这种错误的环境:ASP.NET 或 XML
情况:一个原本运行正常的C#页面,因为SQL的密码更改后一直出现“分析 EntityName 时出错”错误,验证过web.config的SQL ConnectionString的密码是更改后的。在百思不得其解中,发现VisualStudio(2008)打开web.config会把SQL密码的某两个字符&N打上红色标记“未定义实体"N"”,突然明白,由于web.config是XML内容,而XML中会把“&”用于特定义的字符实体,即XML的&N=实体N,所以在分析SQL ConnectionString时出错。解决:把SQL密码改为不带“&字符”的形式附上:XML字符实体XML 字符实体
正如上面所提到的那样,在编写 XAML 标记时经常用到的大部分字符实体和转义都是由 XML 定义的。本主题不提供类似实体的完整列表;对于这些实体的更具确定性的参考可以在外部文档(如 XML 规范)中找到。但是,为方便起见,本主题列出了一些经常用于 XAML 标记的特定 XML 字符实体。
字符 | 实体 | 说明 | |
---|---|---|---|
&(“and”符) | & | 必须既用于属性值,又用于元素的内容。 | |
>(大于号字符) | < | 必须用于属性值,但是,只要前面没有 <,就可以接受 > 作为元素的内容。 | |
<(小于号字符) | < | 必须用于属性值,但是,只要后面没有 >,就可以接受 < 作为元素的内容。 | |
"(双引号字符) | " | 必须用于属性值,但是可接受 " 作为元素的内容。请注意,属性值本身可以用 ' 或 " 引起来;属性值外壳由首先出现的引号定义,另一个引号随后可以用作值中的文本。 | |
'(单引号字符) | ' | 必须用于属性值,但是可接受 ' 作为元素的内容。请注意,属性值本身可以用 ' 或 " 引起来;属性值外壳由首先出现的引号定义,另一个引号随后可以用作值中的文本。 | |
(数字字符映射) | &#[integer]; 或者 &#x[hex]; | XAML 支持将数字字符映射到处于活动状态的编码。 | |
(不间断空格) |  (采用 UTF-8 编码) | 对于流文档元素或者使用文本的元素(如 TextBox),不间断空格不会在标记外部规范化,对于 xml:space="default" 也是如此(有关详细信息,请参见 )。 |
XML 注释格式
XAML 使用 XML 注释格式:注释以 <!-- 开头,以 -->, 结尾,注释中不得出现 -- 序列。