XmlDataDocument.Load メソッド
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
指定したデータ ソースを使用して XmlDataDocument
を読み込み、読み込んだデータと DataSet を同期します。
オーバーロード
Load(Stream) |
指定したストリームから |
Load(TextReader) |
指定した TextReader から |
Load(String) |
指定した URL を使用して、 |
Load(XmlReader) |
指定した XmlReader から |
注釈
注意
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 例外をスローします。
ドキュメントのルート レベルとしては無効なリーフ ノード (たとえば空白ノードや属性ノード) にリーダーが位置している場合、リーダーはルートとして使用できるノードに移動するまで読み込みを続行します。 ドキュメントの読み込みは、この位置から開始されます。