XmlDataDocument.Load Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Carga XmlDataDocument
utilizando el origen de datos especificado y sincroniza DataSet con los datos cargados.
Sobrecargas
Load(Stream) |
Carga el objeto |
Load(TextReader) |
Carga |
Load(String) |
Carga |
Load(XmlReader) |
Carga |
Comentarios
Nota
Para ver los datos XML de forma relacional, primero debe especificar un esquema que se usará para la asignación de datos. Esto se puede hacer llamando al ReadXmlSchema método o creando las tablas y columnas de DataSet
forma manual. Este paso debe realizarse antes de llamar a Load
.
XmlDataDocument
no admite la creación de referencias de entidad. Si los datos incluyen referencias de entidad, el Load
método resuelve y expande las referencias de entidad. Sin embargo, si usa la Load
sobrecarga que toma un XmlReader como argumento, debe especificar un XmlReader
que pueda resolver entidades.
Load(Stream)
Carga el objeto XmlDataDocument
desde la secuencia especificada.
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)
Parámetros
- inStream
- Stream
Secuencia que contiene el documento XML que se va a cargar.
Comentarios
XmlDataDocument
no admite la creación de referencias de entidad. Si los datos incluyen referencias de entidad, el Load
método resuelve y expande las referencias de entidad.
Nota
Para ver los datos XML de forma relacional, primero debe especificar un esquema que se usará para la asignación de datos. Esto se puede hacer llamando al ReadXmlSchema método o creando las tablas y columnas de DataSet
forma manual. Este paso debe realizarse antes de llamar a Load
.
Se aplica a
Load(TextReader)
Carga XmlDataDocument
desde el TextReader especificado.
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)
Parámetros
- txtReader
- TextReader
TextReader
que se usa para introducir los datos XML en el documento.
Comentarios
XmlDataDocument
no admite la creación de referencias de entidad. Si los datos incluyen referencias de entidad, el Load
método resuelve y expande las referencias de entidad.
Nota
Para ver los datos XML de forma relacional, primero debe especificar un esquema que se usará para la asignación de datos. Esto se puede hacer llamando al ReadXmlSchema método o creando las tablas y columnas de DataSet
forma manual. Este paso debe realizarse antes de llamar a Load
.
Se aplica a
Load(String)
Carga XmlDataDocument
utilizando la dirección URL especificada.
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)
Parámetros
- filename
- String
Dirección URL del archivo que contiene el documento XML que se va a cargar.
Comentarios
XmlDataDocument
no admite la creación de referencias de entidad. Si los datos incluyen referencias de entidad, el Load
método resuelve y expande las referencias de entidad.
Nota
Para ver los datos XML de forma relacional, primero debe especificar un esquema que se usará para la asignación de datos. Esto se puede hacer llamando al ReadXmlSchema método o creando las tablas y columnas de DataSet
forma manual. Este paso debe realizarse antes de llamar a Load
.
Se aplica a
Load(XmlReader)
Carga XmlDataDocument
desde el XmlReader especificado.
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)
Parámetros
- reader
- XmlReader
XmlReader
que contiene el documento XML que se va a cargar.
Excepciones
El documento XML que se está cargando contiene referencias a entidades y el lector no puede resolver entidades.
Ejemplos
En el ejemplo siguiente se modifica el precio de un libro mediante los DataSet
métodos .
#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
En el ejemplo se usan los dos archivos de entrada siguientes.
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>
Comentarios
XmlDataDocument
no admite la creación de referencias de entidad. Si el origen de datos contiene referencias de entidad, debe crear un XmlValidatingReader con la EntityHandling propiedad establecida en EntityHandling.ExpandEntities (este es el comportamiento predeterminado) y pasar al Load
XmlValidatingReader
método . Si no usa un XmlValidatingReader
, el Load
método produce una excepción.
El Load
método siempre conserva un espacio en blanco significativo. La PreserveWhitespace propiedad determina si se conserva o no el espacio en blanco. El valor predeterminado es false
, no se conserva el espacio en blanco.
Si el lector está en estado inicial (es decir, ReadState=ReadState.Initial), Load
consume todo el contenido del lector y compila el DOM a partir de lo que encuentra.
Si el lector ya está colocado en algún nodo en la profundidad "n", este método carga ese nodo y todos los elementos del mismo nivel posteriores hasta la etiqueta final que cierra la profundidad "n". Esto tiene los siguientes resultados.
Si el nodo actual y sus siguientes elementos del mismo nivel tienen un aspecto similar al siguiente:
<!--comment--><element1>one</element1><element2>two</element2>
Load
produce una excepción, porque un documento no puede tener dos elementos de nivel raíz. Si el nodo actual y sus siguientes elementos del mismo nivel tienen un aspecto similar al siguiente:
<!--comment--><?process
instruction?><!--comment--></endtag>
Load
se realizará correctamente; sin embargo, tendrá un árbol DOM incompleto, ya que no hay ningún elemento de nivel raíz. Tiene que agregar un elemento de nivel raíz antes de guardar el documento; de lo contrario, el Save método produce una excepción.
Si el sistema de lectura se encuentra situado en un nodo hoja que no es válido para el nivel raíz de un documento (por ejemplo, un nodo de atributos o espacios en blanco), el sistema de lectura continúa leyendo hasta estar situado en un nodo que se pueda utilizar para el nivel raíz. El documento comienza a cargarse en este punto.