XmlDataDocument.Load Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Загружает XmlDataDocument
с использованием указанного источника данных и синхронизирует объект DataSet с загруженными данными.
Перегрузки
Load(Stream) |
Загружает |
Load(TextReader) |
Загружает объект |
Load(String) |
Загружает объект |
Load(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 в противном случае метод создает исключение.
Если модуль чтения расположен на конечном узле, недопустимом для корневого уровня документа (например, пробел или узел атрибута), он продолжает читать, пока не окажется на узле, который можно использовать в качестве корневого. Документ начинает загружаться в этой точке.