XmlConvert Class
Microsoft Silverlight will reach end of support after October 2021. Learn more.
Encodes and decodes XML names and provides methods for converting between common language runtime types. When converting data types the values returned are locale independent.
Inheritance Hierarchy
System.Object
System.Xml.XmlConvert
Namespace: System.Xml
Assembly: System.Xml (in System.Xml.dll)
Syntax
'Declaration
Public Class XmlConvert
public class XmlConvert
The XmlConvert type exposes the following members.
Methods
Name | Description | |
---|---|---|
DecodeName | Decodes a name. This method does the reverse of the EncodeName and EncodeLocalName methods. | |
EncodeLocalName | Converts the name to a valid XML local name. | |
EncodeName | Converts the name to a valid XML name. | |
EncodeNmToken | Verifies the name is valid according to the XML specification. | |
Equals(Object) | Determines whether the specified Object is equal to the current Object. (Inherited from Object.) | |
Finalize | Allows an object to try to free resources and perform other cleanup operations before the Object is reclaimed by garbage collection. (Inherited from Object.) | |
GetHashCode | Serves as a hash function for a particular type. (Inherited from Object.) | |
GetType | Gets the Type of the current instance. (Inherited from Object.) | |
IsNCNameChar | Checks if the passed-in character is a valid Name Character type. | |
IsPublicIdChar | Checks if the passed in character is a valid PUBLIC ID character. | |
IsStartNCNameChar | Checks if the passed-in character is a valid Start Name Character type. | |
IsWhitespaceChar | Checks if the passed in character is a valid XML whitespace character. | |
IsXmlChar | Checks if the passed in character is a valid XML character. | |
IsXmlSurrogatePair | Checks if the passed in surrogate pair of characters is a valid XML character. | |
MemberwiseClone | Creates a shallow copy of the current Object. (Inherited from Object.) | |
ToBoolean | Converts the String to a Boolean equivalent. | |
ToByte | Converts the String to a Byte equivalent. | |
ToChar | Converts the String to a Char equivalent. | |
ToDateTime(String, String) | Converts the String to a DateTime equivalent. | |
ToDateTime(String, array<String[]) | Converts the String to a DateTime equivalent. | |
ToDateTime(String, XmlDateTimeSerializationMode) | Converts the String to a DateTime using the XmlDateTimeSerializationMode specified | |
ToDateTimeOffset(String) | Converts the supplied String to a DateTimeOffset equivalent. | |
ToDateTimeOffset(String, String) | Converts the supplied String to a DateTimeOffset equivalent. | |
ToDateTimeOffset(String, array<String[]) | Converts the supplied String to a DateTimeOffset equivalent. | |
ToDecimal | Converts the String to a Decimal equivalent. | |
ToDouble | Converts the String to a Double equivalent. | |
ToGuid | Converts the String to a Guid equivalent. | |
ToInt16 | Converts the String to a Int16 equivalent. | |
ToInt32 | Converts the String to a Int32 equivalent. | |
ToInt64 | Converts the String to a Int64 equivalent. | |
ToSByte | Converts the String to a SByte equivalent. | |
ToSingle | Converts the String to a Single equivalent. | |
ToString() | Returns a string that represents the current object. (Inherited from Object.) | |
ToString(Boolean) | Converts the Boolean to a String. | |
ToString(Char) | Converts the Char to a String. | |
ToString(DateTimeOffset) | Converts the supplied DateTimeOffset to a String. | |
ToString(Decimal) | Converts the Decimal to a String. | |
ToString(Double) | Converts the Double to a String. | |
ToString(Guid) | Converts the Guid to a String. | |
ToString(Int16) | Converts the Int16 to a String. | |
ToString(Int32) | Converts the Int32 to a String. | |
ToString(Int64) | Converts the Int64 to a String. | |
ToString(SByte) | Converts the SByte to a String. | |
ToString(Single) | Converts the Single to a String. | |
ToString(TimeSpan) | Converts the TimeSpan to a String. | |
ToString(UInt32) | Converts the UInt32 to a String. | |
ToString(UInt64) | Converts the UInt64 to a String. | |
ToString(DateTime, XmlDateTimeSerializationMode) | Converts the DateTime to a String using the XmlDateTimeSerializationMode specified. | |
ToString(DateTimeOffset, String) | Converts the supplied DateTimeOffset to a String in the specified format. | |
ToTimeSpan | Converts the String to a TimeSpan equivalent. | |
ToUInt16 | Converts the String to a UInt16 equivalent. | |
ToUInt32 | Converts the String to a UInt32 equivalent. | |
ToUInt64 | Converts the String to a UInt64 equivalent. | |
VerifyName | Verifies that the name is a valid name according to the W3C Extended Markup Language recommendation. | |
VerifyNCName | Verifies that the name is a valid NCName according to the W3C Extended Markup Language recommendation. | |
VerifyNMTOKEN | Verifies that the string is a valid NMTOKEN according to the W3C XML Schema Part2: Datatypes recommendation | |
VerifyPublicId | Verifies whether all the character is in the string argument are valid PUBLIC ID characters. | |
VerifyWhitespace | Verifies whether all the characters in the string argument are valid whitespace characters. | |
VerifyXmlChars | Verifies if all the characters and surrogate pair characters in the passed in string are valid XML characters. |
Top
Remarks
Element and attribute names or ID values are limited to a range of XML characters according to the Extensible Markup Language (XML) 1.0 (Fourth Edition) recommendation, located at http://www.w3.org/TR/2006/REC-xml-20060816/. When names contain invalid characters, the EncodeName and DecodeName methods are used to translate them into valid XML names.
Many languages and applications such as Microsoft SQL Server and Microsoft Word, allow Unicode characters in their names, which are not valid in XML names. For example, if 'Order Detail' were a column heading in a database, the database allows the space between the words Order and Detail. However, in XML, the space between Order and Detail is considered an invalid XML character. Thus, the space, the invalid character, needs to be converted into an escaped hexadecimal encoding and can be decoded later.
The EncodeName method can be used with the 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>.
writer.WriteElementString(XmlConvert.EncodeName("Order Detail"),"My order");
XmlConvert also provides methods that enable you to convert from a string to a.NET Framework data type and vice-versa. Locale settings are not taken into account during data conversion.
Examples
'Define the order data. They will be converted to string
'before being written out.
Dim custID As Int16 = 32632
Dim orderID As String = "367A54"
Dim orderDate As New DateTime()
orderDate = DateTime.Now
Dim price As Double = 19.95
Dim output As New StringBuilder()
'Create a writer that outputs to the console.
Dim writer As XmlWriter = XmlWriter.Create(output)
'Write an element (this one is the root)
writer.WriteStartElement("order")
'Write the order date.
writer.WriteAttributeString("date", XmlConvert.ToString(orderDate, "yyyy-MM-dd"))
'Write the order time.
writer.WriteAttributeString("time", XmlConvert.ToString(orderDate, "HH:mm:ss"))
'Write the order data.
writer.WriteElementString("orderID", orderID)
writer.WriteElementString("custID", XmlConvert.ToString(custID))
writer.WriteElementString("price", XmlConvert.ToString(price))
'Write the close tag for the root element
writer.WriteEndElement()
'Write the XML and close the writer
writer.Close()
' Display the output to the TextBlock control
OutputTextBlock.Text = output.ToString()
//Define the order data. They will be converted to string
//before being written out.
Int16 custID = 32632;
String orderID = "367A54";
DateTime orderDate = new DateTime();
orderDate = DateTime.Now;
Double price = 19.95;
StringBuilder output = new StringBuilder();
//Create a writer that outputs to the console.
using (XmlWriter writer = XmlWriter.Create(output))
{
//Write an element (this one is the root)
writer.WriteStartElement("order");
//Write the order date.
writer.WriteAttributeString("date", XmlConvert.ToString(orderDate, "yyyy-MM-dd"));
//Write the order time.
writer.WriteAttributeString("time", XmlConvert.ToString(orderDate, "HH:mm:ss"));
//Write the order data.
writer.WriteElementString("orderID", orderID);
writer.WriteElementString("custID", XmlConvert.ToString(custID));
writer.WriteElementString("price", XmlConvert.ToString(price));
//Write the close tag for the root element
writer.WriteEndElement();
//Write the XML and close the writer
}
// Display the output to the TextBlock control
OutputTextBlock.Text = output.ToString();
Version Information
Silverlight
Supported in: 5, 4, 3
Silverlight for Windows Phone
Supported in: Windows Phone OS 7.1, Windows Phone OS 7.0
XNA Framework
Supported in: Xbox 360, Windows Phone OS 7.0
Platforms
For a list of the operating systems and browsers that are supported by Silverlight, see Supported Operating Systems and Browsers.
Thread Safety
Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.
See Also