Create Method (TextReader, XmlReaderSettings, XmlParserContext)

XmlReader.Create Method (TextReader, XmlReaderSettings, XmlParserContext)


Creates a new XmlReader instance by using the specified text reader, settings, and context information for parsing.

Namespace:   System.Xml
Assembly:  System.Xml (in System.Xml.dll)

public static XmlReader Create(
	TextReader input,
	XmlReaderSettings settings,
	XmlParserContext inputContext


Type: System.IO.TextReader

The text reader from which to read the XML data. Atext reader returns a stream of Unicode characters, so the encoding specified in the XML declaration isn't used by the XML reader to decode the data stream.

Type: System.Xml.XmlReaderSettings

The settings for the new XmlReader instance. This value can be null.

Type: System.Xml.XmlParserContext

The context information required to parse the XML fragment. The context information can include the XmlNameTable to use, encoding, namespace scope, the current xml:lang and xml:space scope, base URI, and document type definition.

This value can be null.

Return Value

Type: System.Xml.XmlReader

An object that is used to read the XML data in the stream.

Exception Condition

The input value is null.


The XmlReaderSettings.NameTable and XmlParserContext.NameTable properties both contain values. (Only one of these NameTable properties can be set and used).

By default an XmlUrlResolver with no credentials is used to access any external resources such as a document type definition (DTD), entities, schemas, and so on.


Starting with the .NET Framework 4.5.2, no default XmlUrlResolver is provided. If your solution targets the .NET Framework 4.5.2 or later versions, specify an XmlResolver using the XmlReaderSettings.XmlResolver property.

If the external resource is located on a network resource that requires authentication, use the XmlReaderSettings.XmlResolver property to specify an XmlResolver with the necessary credentials.

System_CAPS_security Security Note

You can use one of the following methods to control which resources the XmlReader can access:


  • Do not allow the XmlReader to open any external resources by setting the XmlResolver property to null.

The created XmlReader object expands entity references and performs XML normalization of new line characters.

The following example creates an XmlReader object that reads an XML fragment.

string xmlFrag ="<item rk:ID='abc-23'>hammer</item> " +
                        "<item rk:ID='r2-435'>paint</item>" +
                        "<item rk:ID='abc-39'>saw</item>";

// Create the XmlNamespaceManager.
NameTable nt = new NameTable();
XmlNamespaceManager nsmgr = new XmlNamespaceManager(nt);
nsmgr.AddNamespace("rk", "urn:store-items");

// Create the XmlParserContext.
XmlParserContext context = new XmlParserContext(null, nsmgr, null, XmlSpace.None);

// Create the reader. 
XmlReaderSettings settings = new XmlReaderSettings();
settings.ConformanceLevel = ConformanceLevel.Fragment;
XmlReader reader = XmlReader.Create(new StringReader(xmlFrag), settings, context);

Universal Windows Platform
Available since 4.5
.NET Framework
Available since 2.0
Portable Class Library
Supported in: portable .NET platforms
Available since 2.0
Windows Phone Silverlight
Available since 7.0
Windows Phone
Available since 8.1
Return to top
© 2015 Microsoft