使用&#38;,&#62;转义"&",">"和"<"是否正确?和&#60; 用XML?

JPe*_*ita 3 xml encode entities

如果我使用数字实体而不是通常推荐的alpha实体用于XML中的保留字符,会有什么"破坏"吗?

这是一个相当复杂的应用程序的一部分,允许用户通过XML,CSV或基于Web的表单输入书目元数据.然后可以使用用户选择的编码以XML(使用ONIX标准)提取此数据:utf-8,win-1252等.

原来的程序员(现在已经很久......)决定对所有不能用所选编码表示的字符使用数字实体.XML保留的字符在任何编码下都被视为不可表示.它们被给予相同的处理并使用数字实体进行编码.

一些用户抱怨&,<,>等被编码为&等,而不是使用通常的alpha代码,我想知道这些投诉是否有任何实质内容.

如果我可以避免挖掘遗留代码来改变这种行为,那么它将为我节省大量资源.

Dan*_*ley 6

是的,可以使用数字字符引用进行转义.

规范(强调我的):

&符号(&)和左尖括号(<)不得以其文字形式出现,除非用作标记分隔符,或用于注释,处理指令或CDATA部分.如果在其他地方需要它们,则必须分别使用数字字符引用或字符串" &amp;"和" &lt;" 来转义它们.右尖括号(>)可以使用字符串" &gt;" 来表示,并且为了兼容性,&gt;当它出现]]>在内容中的字符串" "中时,必须使用" "或字符引用进行转义,当该字符串未标记时CDATA部分的结尾.

您还可以使用十六进制实体引用...

&amp;= &#38;=&#x26;

&lt;= &#60;=&#x3C;

&gt;= &#62;=&#x3E;