Share via


XmlDataDocument.Load メソッド

定義

指定したデータ ソースを使用して XmlDataDocument を読み込み、読み込んだデータと DataSet を同期します。

オーバーロード

Load(Stream)

指定したストリームから XmlDataDocument を読み込みます。

Load(TextReader)

指定した TextReader から XmlDataDocument を読み込みます。

Load(String)

指定した URL を使用して、XmlDataDocument を読み込みます。

Load(XmlReader)

指定した XmlReader から XmlDataDocument を読み込みます。

注釈

注意

XML データをリレーショナルに表示するには、まずデータ マッピングに使用するスキーマを指定する必要があります。 これを行うには、メソッドを ReadXmlSchema 呼び出すか、手動でテーブルと列を DataSet 作成します。 この手順は、呼び出す Load前に実行する必要があります。

XmlDataDocument では、エンティティ参照の作成はサポートされていません。 データにエンティティ参照が含まれている場合、メソッドは Load エンティティ参照を解決して展開します。 ただし、引数として受け取るXmlReaderオーバーロードをLoad使用している場合は、エンティティを解決できるオーバーロードを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)

指定した TextReader から XmlDataDocument を読み込みます。

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

XML データをドキュメントに送るために使用する TextReader

注釈

XmlDataDocument では、エンティティ参照の作成はサポートされていません。 データにエンティティ参照が含まれている場合、メソッドは Load エンティティ参照を解決して展開します。

注意

XML データをリレーショナルに表示するには、まず、データ マッピングに使用するスキーマを指定する必要があります。 これを行うには、メソッドを ReadXmlSchema 呼び出すか、手動でテーブルと列を DataSet 作成します。 この手順は、呼び出す Load前に実行する必要があります。

適用対象

Load(String)

指定した URL を使用して、XmlDataDocument を読み込みます。

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

読み込む XML ドキュメントを格納しているファイルの URL。

注釈

XmlDataDocument では、エンティティ参照の作成はサポートされていません。 データにエンティティ参照が含まれている場合、メソッドは Load エンティティ参照を解決して展開します。

注意

XML データをリレーショナルに表示するには、まず、データ マッピングに使用するスキーマを指定する必要があります。 これを行うには、メソッドを ReadXmlSchema 呼び出すか、手動でテーブルと列を DataSet 作成します。 この手順は、呼び出す Load前に実行する必要があります。

適用対象

Load(XmlReader)

指定した XmlReader から XmlDataDocument を読み込みます。

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

読み込む XML ドキュメントを格納している XmlReader

例外

読み込まれている 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

この例では、次の 2 つの入力ファイルを使用します。

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 では、エンティティ参照の作成はサポートされていません。 データ ソースにエンティティ参照が含まれている場合は、プロパティを EntityHandling.ExpandEntities (これが既定の動作) に設定して作成XmlValidatingReaderEntityHandlingし、メソッドにLoad渡すXmlValidatingReader必要があります。 を使用 XmlValidatingReaderしない場合、メソッドは Load 例外をスローします。

このメソッドでは Load 、常に重要な空白が保持されます。 このプロパティは PreserveWhitespace 、空白を保持するかどうかを決定します。 既定値は false、空白は保持されません。

リーダーが初期状態の場合 (つまり、ReadState=ReadState.Initial) Load 、リーダーの内容全体を使用し、見つけたものから DOM をビルドします。

リーダーが既に深さ "n" のノードに配置されている場合、このメソッドは、そのノードとその後のすべての兄弟を、深度 "n" を閉じる終了タグまで読み込みます。 これには次の結果があります。

現在のノードとその兄弟が次のようになります。

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

Load は例外をスローします。これは、ドキュメントにルート レベルの要素を 2 つ持つことができないためです。 現在のノードとその兄弟が次のようになります。

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

Load は成功します。ただし、ルートレベルの要素がないため、不完全な DOM ツリーがあります。 ドキュメントを保存する前に、ルート レベルの要素を追加する必要があります。それ以外の場合、メソッドは Save 例外をスローします。

ドキュメントのルート レベルとしては無効なリーフ ノード (たとえば空白ノードや属性ノード) にリーダーが位置している場合、リーダーはルートとして使用できるノードに移動するまで読み込みを続行します。 ドキュメントの読み込みは、この位置から開始されます。

適用対象