XmlDataDocument.Load Метод

Определение

Загружает XmlDataDocument с использованием указанного источника данных и синхронизирует объект DataSet с загруженными данными.

Перегрузки

Load(Stream)

Загружает XmlDataDocument из указанного потока.

Load(TextReader)

Загружает объект XmlDataDocument из указанного объекта TextReader.

Load(String)

Загружает объект XmlDataDocument по указанному URL-адресу.

Load(XmlReader)

Загружает объект XmlDataDocument из указанного объекта XmlReader.

Комментарии

Примечание

Чтобы просмотреть данные XML относительно, необходимо сначала указать схему, используемую для сопоставления данных. Это можно сделать либо путем вызова ReadXmlSchema метода, либо путем создания таблиц и столбцов в ручном режиме DataSet . Этот шаг необходимо выполнить перед вызовом Load.

XmlDataDocument не поддерживает создание ссылок на сущности. Если данные содержат ссылки на сущности, Load метод разрешает и расширяет все ссылки на сущности. Однако если вы используете перегрузку Load , которая принимает в XmlReader качестве аргумента, необходимо указать XmlReader , что может разрешать сущности.

Load(Stream)

Загружает XmlDataDocument из указанного потока.

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)

Параметры

inStream
Stream

Поток, содержащий загружаемый документ XML.

Комментарии

XmlDataDocument не поддерживает создание ссылок на сущности. Если данные содержат ссылки на сущности, Load метод разрешает и расширяет все ссылки на сущности.

Примечание

Чтобы просмотреть данные XML относительно, необходимо сначала указать схему, используемую для сопоставления данных. Это можно сделать либо путем вызова ReadXmlSchema метода, либо путем создания таблиц и столбцов в ручном режиме DataSet . Этот шаг необходимо выполнить перед вызовом Load.

Применяется к

Load(TextReader)

Загружает объект XmlDataDocument из указанного объекта 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)

Параметры

txtReader
TextReader

TextReader, используемый для передачи данных XML в документ.

Комментарии

XmlDataDocument не поддерживает создание ссылок на сущности. Если данные содержат ссылки на сущности, Load метод разрешает и расширяет все ссылки на сущности.

Примечание

Чтобы просмотреть XML-данные относительно, сначала необходимо указать схему, используемую для сопоставления данных. Это можно сделать либо путем вызова ReadXmlSchema метода, либо путем создания таблиц и столбцов вручную DataSet . Этот шаг необходимо выполнить перед вызовом Load.

Применяется к

Load(String)

Загружает объект XmlDataDocument по указанному 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)

Параметры

filename
String

Универсальный код ресурса (URI) файла, содержащего загружаемый XML-документ.

Комментарии

XmlDataDocument не поддерживает создание ссылок на сущности. Если данные содержат ссылки на сущности, Load метод разрешает и расширяет все ссылки на сущности.

Примечание

Чтобы просмотреть XML-данные относительно, сначала необходимо указать схему, используемую для сопоставления данных. Это можно сделать либо путем вызова ReadXmlSchema метода, либо путем создания таблиц и столбцов вручную DataSet . Этот шаг необходимо выполнить перед вызовом Load.

Применяется к

Load(XmlReader)

Загружает объект XmlDataDocument из указанного объекта 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)

Параметры

reader
XmlReader

Объект XmlReader, содержащий загружаемый XML-документ.

Исключения

Загружаемый XML содержит ссылки на сущность, и средство чтения не может разрешить сущности.

Примеры

В следующем примере цена книги изменяется с помощью DataSet методов.

#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

В этом примере используются следующие два входных файла.

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>

Комментарии

XmlDataDocument не поддерживает создание ссылок на сущности. Если источник данных содержит ссылки на сущности, необходимо создать XmlValidatingReader свойство EntityHandling EntityHandling.ExpandEntities (это поведение по умолчанию) и передать XmlValidatingReader методу Load . Если вы не используете Load исключениеXmlValidatingReader, метод создает исключение.

Метод Load всегда сохраняет значительные пробелы. Свойство PreserveWhitespace определяет, сохраняется ли пробел. Значение по умолчанию — falseпробелы не сохраняются.

Если средство чтения находится в начальном состоянии (то есть ReadState=ReadState.Initial), Load использует все содержимое средства чтения и создает модель DOM на основе того, что она находит.

Если модуль чтения уже расположен на некотором узле на глубине "n", этот метод загружает этот узел и все последующие одноуровневые элементы до конечного тега, закрывающего глубину "n". Это имеет следующие результаты.

Если текущий узел и его следующие одноуровневые элементы выглядят примерно так:

<!--comment--><element1>one</element1><element2>two</element2>  

Load вызывает исключение, так как документ не может содержать два элемента корневого уровня. Если текущий узел и его следующие одноуровневые элементы выглядят примерно так:

<!--comment--><?process  
    instruction?><!--comment--></endtag>  

Load будет выполнено успешно; однако у вас будет неполное дерево DOM, так как нет элемента корневого уровня. Перед сохранением документа необходимо добавить элемент корневого уровня; Save в противном случае метод создает исключение.

Если модуль чтения расположен на конечном узле, недопустимом для корневого уровня документа (например, пробел или узел атрибута), он продолжает читать, пока не окажется на узле, который можно использовать в качестве корневого. Документ начинает загружаться в этой точке.

Применяется к