System.Xml.XmlConvert 类

本文提供了此 API 参考文档的补充说明。

XmlConvert 类在功能上等效于 Convert 该类,但它支持 XML 标准。 类型系统基于 XML 架构定义语言 (XSD) 架构类型,返回的值始终独立于区域设置。

编码和解码

根据 W3C XML 1.0 建议,元素和属性名称或 ID 值限制为一系列 XML 字符。 当名称包含无效字符时,可以使用此类中的EncodeNameDecodeName方法将它们转换为有效的 XML 名称。

例如,如果要在数据库中使用列标题“Order Detail”,则数据库允许两个单词之间的空间。 但是,在 XML 中,“Order”和“Detail”之间的空格被视为无效的 XML 字符。 必须将它转换为转义的十六进制编码,然后对其进行解码。

可以将 EncodeName 该方法与类一起使用 XmlWriter ,以确保所写入的名称是有效的 XML 名称。 以下 C# 代码将名称“Order Detail”转换为有效的 XML 名称并写入元素 <Order_0x0020_Detail>My order</Order_0x0020_Detail>

writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");

以下 XmlConvert 方法执行编码和解码。

方法 DESCRIPTION
EncodeName 获取一个名称,并返回编码的名称以及由转义字符串替换的任何无效字符。 此方法允许在任何位置使用冒号,这意味着根据 W3C XML 1.0 命名空间建议书,名称可能仍然不符合标准。
EncodeNmToken 获取一个名称并返回编码的名称。
EncodeLocalName EncodeName 类似,但它还对冒号字符进行编码,从而保证该名称可以用作命名空间限定名称中的 LocalName 部分。
DecodeName 对所有编码方法进行反向转换。

名称验证

XmlConvert 类包含两种方法用于检查元素或属性名称中的字符,并验证名称是否符合 W3C XML 1.0 建议设置的规则:

  • VerifyName 检查字符并验证名称是否有效。 如果名称有效,该方法将返回该名称,如果名称无效,则引发异常。
  • VerifyNCName 执行相同的验证,但接受非限定名称。

XmlConvert 包含用于验证令牌、空白字符、公共 ID 和其他字符串的其他方法。

数据类型转换

XmlConvert 还提供使你能够将数据从字符串转换为强类型数据类型的方法。 例如,该方法 ToDateTime 将字符串转换为其 DateTime 等效项。 这很有用,因为类中的 XmlReader 大多数方法都以字符串的形式返回数据。 读取数据后,可以在使用之前将其转换为正确的数据类型。 ToString 重载通过将强类型化数据转换为字符串来提供补充操作。 例如,如果要将数据添加到网页上的文本框,这非常有用。 数据转换期间不会考虑区域设置。 数据类型基于 XML 架构 (XSD) 数据类型。