在this page中,Microsoft说XML保留字符(及其实体)如下:
> >
< <
& &
% %
但在this other page中,我发现'
也是保留字符(其实体为'
)。
有人可以指出我列出的所有官方参考文献,只列出了XML保留字符吗?
答案 0 :(得分:7)
根据XML spec,当用作角色内容而不是标记时,必须必须转义的唯一字符是&
(&
,{{ 1}}或&
)和&
(如<
,<
或<
),加上<
当它是序列的一部分时>
。此外,必须在单引号属性值中对单引号进行转义(通常为]]>
),在双引号属性值中对双引号(通常为'
)以及任何不可表示的字符进行转义用于序列化文档的字符编码必须作为合适的字符引用进行转义。
你没有拥有来逃避单引号属性中的双引号,反之亦然,但如果这样做,它不会造成任何伤害。
当然,如果您愿意,可能逃脱角色内容中的每个"
,>
和"
(以及任何其他角色),而不会更改意思。
答案 1 :(得分:5)
XML没有“保留字符”的概念。
它有predefined entities代表大多数字符,这些字符可能(取决于上下文)在XML文档中具有特殊含义("
,<
,>
, &
'
)。
它没有空格字符或=
的命名实体,因为它们具有特殊含义的地方是您无法拥有数据的地方。