本文提供了此 API 参考文档的补充说明。
该 XmlConvert 类在功能上等效于 Convert 该类,但它支持 XML 标准。 类型系统基于 XML 架构定义语言 (XSD) 架构类型,返回的值始终独立于区域设置。
编码和解码
根据 W3C XML 1.0 建议,元素和属性名称或 ID 值限制为一系列 XML 字符。 当名称包含无效字符时,可以使用此类中的EncodeName 和 DecodeName方法将它们转换为有效的 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) 数据类型。