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