System.Xml.XmlConvert Class

Encodes and decodes XML names, and provides methods for converting between common language runtime types and XML Schema definition language (XSD) types. When converting data types, the values returned are locale-independent.

See Also: XmlConvert Members

Syntax

public class XmlConvert

Remarks

The System.Xml.XmlConvert class is functionally equivalent to the Convert class, but it supports XML standards. The type system is based on the XML Schema definition language (XSD) schema type, and the values returned are always locale-independent.

Encoding and decoding

Element and attribute names or ID values are limited to a range of XML characters according to the W3C tp://www.w3.org/TR/2006/REC-xml-20060816/. When names contain invalid characters, you can use the XmlConvert.EncodeName(string) and XmlConvert.DecodeName(string) methods in this class to translate them into valid XML names.

For example, if you want to use the column heading "Order Detail" in a database, the database allows the space between the two words. However, in XML, the space between "Order" and "Detail" is considered an invalid XML character. You have to convert it into an escaped hexadecimal encoding and decode it later.

You can use the XmlConvert.EncodeName(string) method with the System.Xml.XmlWriter class to ensure the names being written are valid XML names. The following C# code converts the name "Order Detail" into a valid XML name and writes the element <Order_0x0020_Detail>My order</Order_0x0020_Detail>.

Example

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

The following System.Xml.XmlConvert methods perform encoding and decoding.

XmlConvert.EncodeName(string)

Takes a name and returns the encoded name along with any invalid character that is replaced by an escape string. This method allows colons in any position, which means that the name may still be invalid according to the W3C w.w3.org/TR/REC-xml-names.

XmlConvert.EncodeNmToken(string)

Takes a name and returns the encoded name.

XmlConvert.EncodeLocalName(string)

Same as XmlConvert.EncodeName(string) except that it also encodes the colon character, guaranteeing that the name can be used as the LocalName part of a namespace-qualified name.

XmlConvert.DecodeName(string)

Reverses the transformation for all the encoding methods.

Name validation

The System.Xml.XmlConvert class contains two methods that check the characters in an element or attribute name and verify that the name conforms to the rules set by the W3C tp://www.w3.org/TR/2006/REC-xml-20060816/:

The System.Xml.XmlConvert contains additional methods that validate tokens, white-space characters, public IDs, and other strings.

Data type conversion

System.Xml.XmlConvert also provides methods that enable you to convert data from a string to a strongly typed data type. For example, the erload:System.Xml.XmlConvert.ToDateTime method converts a string to its DateTime equivalent. This is useful because most methods in the XmlReader class return data as a string. After the data is read, it can be converted to the proper data type before being used. The erload:System.Xml.XmlConvert.ToString overloads provide the complementary operation by converting strongly typed data to strings. For example, this is useful when you want to add the data to text boxes on a webpage. Locale settings are not taken into account during data conversion. The data types are based on the XML Schema (XSD) data types.

Thread Safety

All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.

Requirements

Namespace: System.Xml
Assembly: System.Xml (in System.Xml.dll)
Assembly Versions: 1.0.5000.0, 2.0.0.0, 4.0.0.0