XML 元素和属性名称及 ID 值的编码和解码

更新:November 2007

根据万维网联合会 (W3C) 可扩展标记语言 (XML) 1.0(第二版)建议(位于 www.w3.org/TR/2000/REC-xml-20001006.html),元素和属性名称或 ID 值限制在一定范围的 XML 字符。 当名称中包含无效字符时,编码和解码方法用于将它们转换为有效的 XML 名称。

许多语言和应用程序(如 Microsoft SQL Server 和 Microsoft Office Word)允许在它们的名称中使用 Unicode 字符,而这在 XML 名称中是无效的。 例如,如果 Order Detail 是数据库中的一个列标题,数据库允许单词 Order 和 Detail 之间有空格,而在 XML 中,Order 和 Detail 之间的空格被认为是无效的 XML 字符。 因此,空格这个无效字符需要转换为转义的十六进制编码,并且可以在以后进行解码。

XmlTextWriter 类默认情况下不执行字符检查。 例如,代码 WriteElementString("Order Detail", "My order"); 将生成一个无效的 <Order Detail>My order</Order Detail>. 元素

若要对元素值进行编码,正确的编码为 writer.WriteElementString(XmlConvert.EncodeName("Order Detail"), "My order"),这将生成有效元素 <Order_0x0020_Detail>My order</Order_0x0020_Detail>。

请参见

概念

XML 数据类型的转换