XmlDataDocument.Load Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Carica XmlDataDocument
utilizzando l'origine dati specificata e sincronizza il DataSet con i dati caricati.
Overload
Load(Stream) |
Carica |
Load(TextReader) |
Carica |
Load(String) |
Carica |
Load(XmlReader) |
Carica |
Commenti
Nota
Per visualizzare i dati XML in modo relazionale, è prima necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet
manualmente. Questo passaggio deve essere eseguito prima di chiamare Load
.
XmlDataDocument
non supporta la creazione di riferimenti alle entità. Se i dati includono riferimenti alle entità, il Load
metodo risolve e espande qualsiasi riferimento alle entità. Tuttavia, se si usa l'overload Load
che accetta XmlReader come argomento, è necessario specificare un XmlReader
oggetto che può risolvere le entità.
Load(Stream)
Carica XmlDataDocument
dal flusso specificato.
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)
Parametri
- inStream
- Stream
Flusso che contiene il documento XML da caricare.
Commenti
XmlDataDocument
non supporta la creazione di riferimenti alle entità. Se i dati includono riferimenti alle entità, il Load
metodo risolve e espande qualsiasi riferimento alle entità.
Nota
Per visualizzare i dati XML in modo relazionale, è prima necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet
manualmente. Questo passaggio deve essere eseguito prima di chiamare Load
.
Si applica a
Load(TextReader)
Carica XmlDataDocument
dall'oggetto TextReader specificato.
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)
Parametri
- txtReader
- TextReader
Oggetto TextReader
usato per inserire i dati XML nel documento.
Commenti
XmlDataDocument
non supporta la creazione di riferimenti alle entità. Se i dati includono riferimenti all'entità, il Load
metodo risolve ed espande tutti i riferimenti alle entità.
Nota
Per visualizzare i dati XML in modo relazionale, è innanzitutto necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet
manualmente. Questo passaggio deve essere eseguito prima di chiamare Load
.
Si applica a
Load(String)
Carica XmlDataDocument
utilizzando l'URL specificato.
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)
Parametri
- filename
- String
URL del file che contiene il documento XML da caricare.
Commenti
XmlDataDocument
non supporta la creazione di riferimenti a entità. Se i dati includono riferimenti all'entità, il Load
metodo risolve ed espande tutti i riferimenti alle entità.
Nota
Per visualizzare i dati XML in modo relazionale, è innanzitutto necessario specificare uno schema da usare per il mapping dei dati. Questa operazione può essere eseguita chiamando il ReadXmlSchema metodo o creando le tabelle e le colonne all'interno dell'oggetto DataSet
manualmente. Questo passaggio deve essere eseguito prima di chiamare Load
.
Si applica a
Load(XmlReader)
Carica XmlDataDocument
dall'oggetto XmlReader specificato.
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)
Parametri
- reader
- XmlReader
XmlReader
contenente il documento XML da caricare.
Eccezioni
L'XML che viene caricato contiene riferimenti alle entità e il lettore non è in grado di risolvere le entità.
Esempio
Nell'esempio seguente viene modificato il prezzo di un libro utilizzando i DataSet
metodi .
#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
Nell'esempio vengono usati i due file di input seguenti.
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>
Commenti
XmlDataDocument
non supporta la creazione di riferimenti a entità. Se l'origine dati contiene riferimenti a entità, è necessario creare un XmlValidatingReader oggetto con la EntityHandling proprietà impostata su EntityHandling.ExpandEntities (comportamento predefinito) e passare al XmlValidatingReader
Load
metodo . Se non si usa un XmlValidatingReader
oggetto , il Load
metodo genera un'eccezione.
Il Load
metodo mantiene sempre uno spazio vuoto significativo. La PreserveWhitespace proprietà determina se lo spazio vuoto viene mantenuto. Il valore predefinito è false
, lo spazio vuoto non viene mantenuto.
Se il lettore si trova nello stato iniziale , ovvero ReadState=ReadState.Initial, Load
utilizza l'intero contenuto del lettore e compila il DOM da ciò che trova.
Se il lettore è già posizionato in un nodo alla profondità "n", questo metodo carica il nodo e tutti i successivi elementi di pari livello fino al tag finale che chiude la profondità "n". I risultati sono i seguenti.
Se il nodo corrente e i relativi elementi di pari livello sono simili ai seguenti:
<!--comment--><element1>one</element1><element2>two</element2>
Load
genera un'eccezione, perché un documento non può avere due elementi di livello radice. Se il nodo corrente e i relativi elementi di pari livello sono simili ai seguenti:
<!--comment--><?process
instruction?><!--comment--></endtag>
Load
avrà esito positivo; Tuttavia, si avrà un albero DOM incompleto, perché non è presente alcun elemento di livello radice. È necessario aggiungere un elemento di livello radice prima di salvare il documento; in caso contrario, il Save metodo genera un'eccezione.
Se il lettore è posizionato su un nodo foglia non valido per il livello radice di un documento, quale un nodo spazio vuoto o attributo, il lettore continuerà a leggere finché non si posizionerà su un nodo che può essere usato per il livello radice. Il caricamento del documento avverrà a partire da questo punto.