XmlDataDocument.Load Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Loads the XmlDataDocument
using the specified data source and synchronizes the DataSet with the loaded data.
Overloads
Load(Stream) |
Loads the |
Load(TextReader) |
Loads the |
Load(String) |
Loads the |
Load(XmlReader) |
Loads the |
Remarks
Note
In order to view the XML data relationally, you must first specify a schema to use for data mapping. This can be done either by calling the ReadXmlSchema method or by creating the tables and columns within the DataSet
manually. This step must be done before calling Load
.
XmlDataDocument
does not support creating entity references. If the data includes entity references, the Load
method resolves and expands any entity references. However, if you are using the Load
overload that takes a XmlReader as an argument, you must specify an XmlReader
that can resolve entities.
Load(Stream)
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
Loads the XmlDataDocument
from the specified stream.
public:
override void Load(System::IO::Stream ^ inStream);
public override void Load (System.IO.Stream inStream);
override this.Load : System.IO.Stream -> unit
Public Overrides Sub Load (inStream As Stream)
Parameters
- inStream
- Stream
The stream containing the XML document to load.
Remarks
XmlDataDocument
does not support creating entity references. If the data includes entity references, the Load
method resolves and expands any entity references.
Note
In order to view the XML data relationally, you must first specify a schema to use for data mapping. This can be done either by calling the ReadXmlSchema method or by creating the tables and columns within the DataSet
manually. This step must be done before calling Load
.
Applies to
Load(TextReader)
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
Loads the XmlDataDocument
from the specified TextReader.
public:
override void Load(System::IO::TextReader ^ txtReader);
public override void Load (System.IO.TextReader txtReader);
override this.Load : System.IO.TextReader -> unit
Public Overrides Sub Load (txtReader As TextReader)
Parameters
- txtReader
- TextReader
The TextReader
used to feed the XML data into the document.
Remarks
XmlDataDocument
does not support creating entity references. If the data includes entity references, the Load
method resolves and expands any entity references.
Note
In order to view the XML data relationally, you must first specify a schema to use for data mapping. This can be done either by calling the ReadXmlSchema method or by creating the tables and columns within the DataSet
manually. This step must be done before calling Load
.
Applies to
Load(String)
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
Loads the XmlDataDocument
using the specified URL.
public:
override void Load(System::String ^ filename);
public override void Load (string filename);
override this.Load : string -> unit
Public Overrides Sub Load (filename As String)
Parameters
- filename
- String
The URL of the file containing the XML document to load.
Remarks
XmlDataDocument
does not support creating entity references. If the data includes entity references, the Load
method resolves and expands any entity references.
Note
In order to view the XML data relationally, you must first specify a schema to use for data mapping. This can be done either by calling the ReadXmlSchema method or by creating the tables and columns within the DataSet
manually. This step must be done before calling Load
.
Applies to
Load(XmlReader)
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
- Source:
- XmlDataDocument.cs
Loads the XmlDataDocument
from the specified XmlReader.
public:
override void Load(System::Xml::XmlReader ^ reader);
public override void Load (System.Xml.XmlReader reader);
override this.Load : System.Xml.XmlReader -> unit
Public Overrides Sub Load (reader As XmlReader)
Parameters
- reader
- XmlReader
The XmlReader
containing the XML document to load.
Exceptions
The XML being loaded contains entity references, and the reader cannot resolve entities.
Examples
The following example modifies the price of a book using the DataSet
methods.
#using <System.dll>
#using <System.Data.dll>
#using <System.Xml.dll>
using namespace System;
using namespace System::Data;
using namespace System::Xml;
int main()
{
// Create an XmlDataDocument.
XmlDataDocument^ doc = gcnew XmlDataDocument;
// Load the schema file.
doc->DataSet->ReadXmlSchema( "store.xsd" );
// Load the XML data.
XmlTextReader^ reader = gcnew XmlTextReader( "2books.xml" );
reader->MoveToContent(); // Moves the reader to the root node.
doc->Load( reader );
// Update the price on the first book using the DataSet methods.
DataTable^ books = doc->DataSet->Tables["book"];
books->Rows[0]["price"] = "12.95";
Console::WriteLine( "Display the modified XML data..." );
doc->Save( Console::Out );
}
using System;
using System.Data;
using System.Xml;
public class Sample {
public static void Main() {
// Create an XmlDataDocument.
XmlDataDocument doc = new XmlDataDocument();
// Load the schema file.
doc.DataSet.ReadXmlSchema("store.xsd");
// Load the XML data.
XmlTextReader reader = new XmlTextReader("2books.xml");
reader.MoveToContent(); // Moves the reader to the root node.
doc.Load(reader);
// Update the price on the first book using the DataSet methods.
DataTable books = doc.DataSet.Tables["book"];
books.Rows[0]["price"] = "12.95";
Console.WriteLine("Display the modified XML data...");
doc.Save(Console.Out);
}
} // End class
Imports System.Data
Imports System.Xml
public class Sample
public shared sub Main()
'Create an XmlDataDocument.
Dim doc as XmlDataDocument = new XmlDataDocument()
'Load the schema.
doc.DataSet.ReadXmlSchema("store.xsd")
'Load the XML data.
Dim reader as XmlTextReader = new XmlTextReader("2books.xml")
reader.MoveToContent() 'Moves the reader to the root node.
doc.Load(reader)
'Change the price on the first book imports the DataSet methods.
Dim books as DataTable = doc.DataSet.Tables.Item("book")
books.Rows.Item(0).Item("price") = "12.95"
Console.WriteLine("Display the modified XML data...")
doc.Save(Console.Out)
end sub
end class
The example uses the following two input files.
2books.xml
<!--sample XML fragment-->
<bookstore>
<book genre='novel' ISBN='10-861003-324'>
<title>The Handmaid's Tale</title>
<price>19.95</price>
</book>
<book genre='novel' ISBN='1-861001-57-5'>
<title>Pride And Prejudice</title>
<price>24.95</price>
</book>
</bookstore>
store.xsd
<xsd:schema xmlns:xsd="http://www.w3.org/2000/10/XMLSchema">
<xsd:element name="bookstore" type="bookstoreType"/>
<xsd:complexType name="bookstoreType">
<xsd:sequence maxOccurs="unbounded">
<xsd:element name="book" type="bookType"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="bookType">
<xsd:sequence>
<xsd:element name="title" type="xsd:string"/>
<xsd:element name="author" type="authorName"/>
<xsd:element name="price" type="xsd:decimal"/>
</xsd:sequence>
<xsd:attribute name="genre" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="authorName">
<xsd:sequence>
<xsd:element name="first-name" type="xsd:string"/>
<xsd:element name="last-name" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
Remarks
XmlDataDocument
does not support creating entity references. If the data source contains entity references, you must create an XmlValidatingReader with the EntityHandling property set to EntityHandling.ExpandEntities (this is the default behavior) and pass the XmlValidatingReader
to the Load
method. If you do not use an XmlValidatingReader
, the Load
method throws an exception.
The Load
method always preserves significant white space. The PreserveWhitespace property determines whether or not white space is preserved. The default is false
, white space is not preserved.
If the reader is in the initial state (that is, ReadState=ReadState.Initial), Load
consumes the entire contents of the reader and builds the DOM from what it finds.
If the reader is already positioned on some node at depth "n", then this method loads that node and all subsequent siblings up to the end tag that closes depth "n". This has the following results.
If the current node and its following siblings look similar to the following:
<!--comment--><element1>one</element1><element2>two</element2>
Load
throws an exception, because a document cannot have two root-level elements. If the current node and its following siblings look similar to the following:
<!--comment--><?process
instruction?><!--comment--></endtag>
Load
will succeed; however, you will have an incomplete DOM tree, because there is no root-level element. You have to add a root-level element before you save the document; otherwise, the Save method throws an exception.
If the reader is positioned on a leaf node that is invalid for the root level of a document (for example, a white space or attribute node), the reader continues to read until it is positioned on a node that can be used for the root. The document begins loading at this point.