チュートリアル : データセットへの XML データの読み込み
ADO.NET には、XML データを使用するための簡単な方法が用意されています。このチュートリアルでは、XML データをデータセットに読み込む Windows アプリケーションを作成します。読み込まれたデータセットは DataGridView に表示されます。最後に、XML ファイルの内容に基づいた XML スキーマがテキスト ボックスに表示されます。
このチュートリアルは、主に次の 5 つの手順で構成されています。
新しいプロジェクトを作成します。
データセットに読み込む XML ファイルを作成します。
ユーザー インターフェイスを作成します。
データセットを作成し、XML ファイルを読み込んで DataGridView コントロールに表示します。
XML ファイルに基づく XML スキーマを TextBox コントロールに表示するためのコードを追加します。
[!メモ]
実際に画面に表示されるダイアログ ボックスとメニュー コマンドは、アクティブな設定またはエディションによっては、ヘルプの説明と異なる場合があります。設定を変更するには、[ツール] メニューの [設定のインポートとエクスポート] をクリックします。詳細については、「Visual Studio の設定」を参照してください。
新しいプロジェクトの作成
この手順では、このチュートリアルを含める Visual Basic プロジェクトまたは Visual C# プロジェクトを作成します。
新しい Windows プロジェクトを作成するには
[ファイル] メニューで新しいプロジェクトを作成します。
プロジェクトに「ReadingXML」という名前を付けます。
[Windows アプリケーション] をクリックし、[OK] をクリックします。詳細については、「クライアント アプリケーションの開発」を参照してください。
ReadingXML プロジェクトが作成されてソリューション エクスプローラーに追加されます。
データセットに読み込む XML ファイルの作成
このチュートリアルでは、データセットへの XML データの読み込みについて重点的に説明するため、XML ファイルの内容を説明します。
データセットに読み込む XML ファイルを作成するには
[プロジェクト] メニューの [新しい項目の追加] をクリックします。
[XML ファイル] をクリックし、ファイルに「authors.xml」という名前を付けて、[追加] をクリックします。
XML ファイルがデザイナーに読み込まれ、編集できるようになります。
エディターで XML 宣言の下に次のコードを貼り付けます。
<Authors_Table> <authors> <au_id>172-32-1176</au_id> <au_lname>White</au_lname> <au_fname>Johnson</au_fname> <phone>408 496-7223</phone> <address>10932 Bigge Rd.</address> <city>Menlo Park</city> <state>CA</state> <zip>94025</zip> <contract>true</contract> </authors> <authors> <au_id>213-46-8915</au_id> <au_lname>Green</au_lname> <au_fname>Margie</au_fname> <phone>415 986-7020</phone> <address>309 63rd St. #411</address> <city>Oakland</city> <state>CA</state> <zip>94618</zip> <contract>true</contract> </authors> <authors> <au_id>238-95-7766</au_id> <au_lname>Carson</au_lname> <au_fname>Cheryl</au_fname> <phone>415 548-7723</phone> <address>589 Darwin Ln.</address> <city>Berkeley</city> <state>CA</state> <zip>94705</zip> <contract>true</contract> </authors> <authors> <au_id>267-41-2394</au_id> <au_lname>Hunter</au_lname> <au_fname>Anne</au_fname> <phone>408 286-2428</phone> <address>22 Cleveland Av. #14</address> <city>San Jose</city> <state>CA</state> <zip>95128</zip> <contract>true</contract> </authors> <authors> <au_id>274-80-9391</au_id> <au_lname>Straight</au_lname> <au_fname>Dean</au_fname> <phone>415 834-2919</phone> <address>5420 College Av.</address> <city>Oakland</city> <state>CA</state> <zip>94609</zip> <contract>true</contract> </authors> </Authors_Table>
[ファイル] メニューの [authors.xml の保存] をポイントします。
ユーザー インターフェイスの作成
このアプリケーションのユーザー インターフェイスは、次のコントロールで構成されています。
XML ファイルの内容をデータとして表示する DataGridView コントロール
XML ファイルの XML スキーマを表示する TextBox コントロール
2 つの Button コントロール
1 つのボタンは XML ファイルをデータセットに読み込んで DataGridView コントロールに表示します。
もう 1 つのボタンは、データセットからスキーマを抽出し、StringWriter を使用して TextBox コントロールに表示します。
フォームにコントロールを追加するには
デザイン ビューで Form1 を開きます。
ツールボックスからフォームに次のコントロールをドラッグします。
1 つの DataGridView コントロール
1 つの TextBox コントロール
2 つの Button コントロール
次のプロパティを設定します。
Control
プロパティ
設定
TextBox1
Multiline
true
ScrollBars
[垂直方向]
Button1
名前
ReadXmlButton
テキスト
Read XML
Button2
名前
ShowSchemaButton
テキスト
Show Schema
XML データを受け取るデータセットの作成
次に、authors という名前の新しいデータセットを作成します。データセットの詳細については、「Visual Studio でのデータセットの操作」を参照してください。
XML データを受け取るデータセットを新規作成するには
ソリューション エクスプローラーで Form1 のソース ファイルを選択し、ソリューション エクスプローラーの [デザイナーの表示] をクリックします。
ツールボックス、[データ] タブから Form1 にデータセットをドラッグします。
[ENT3ENT] ダイアログ ボックスの [ENT1ENT] を選択し次に [ENT4ENT] をクリックします。
DataSet1 がコンポーネント トレイに追加されます。
[プロパティ] ウィンドウで、Name プロパティおよび DataSetName プロパティを AuthorsDataSet に設定します。
XML をデータセットに読み込むイベント ハンドラーの作成
[Read XML] ボタンを使うと、XML ファイルがデータセットに読み込まれ、ファイルをデータセットにバインドする DataGridView コントロールのプロパティが設定されます。
ReadXmlButton_Click イベント ハンドラーにコードを追加するには
ソリューション エクスプローラーの [Form1] をクリックし、ソリューション エクスプローラー ツール バーの [デザイナーの表示] をクリックします。
[Read XML] をダブルクリックします。
コード エディターが開き、ReadXmlButton_Click イベント ハンドラーが表示されます。
ReadXmlButton_Click イベント ハンドラー内に次のコードを入力します。
Private Sub ReadXmlButton_Click() Handles ReadXmlButton.Click Dim filePath As String = "Complete path where you saved the XML file" AuthorsDataSet.ReadXml(filePath) DataGridView1.DataSource = AuthorsDataSet DataGridView1.DataMember = "authors" End Sub
private void ReadXmlButton_Click(object sender, EventArgs e) { string filePath = "Complete path where you saved the XML file"; AuthorsDataSet.ReadXml(filePath); dataGridView1.DataSource = AuthorsDataSet; dataGridView1.DataMember = "authors"; }
ReadXMLButton_Click イベント ハンドラーのコードで、filepath = の設定を正しいパスに変更します。
テキスト ボックスにスキーマを表示するイベント ハンドラーの作成
[Show Schema] をクリックすると、StringWriter オブジェクトが作成されます。このオブジェクトは、スキーマを格納しており、TextBox に表示されます。
ShowSchemaButton_Click イベント ハンドラーにコードを追加するには
ソリューション エクスプローラーで Form1 を選択し、[デザイナーの表示] をクリックします。
[Show Schema] をダブルクリックします。
コード エディターが開き、ShowSchemaButton_Click イベント ハンドラーが表示されます。
ShowSchemaButton_Click イベント ハンドラー内に次のコードを入力します。
Private Sub ShowSchemaButton_Click() Handles ShowSchemaButton.Click Dim swXML As New System.IO.StringWriter() AuthorsDataSet.WriteXmlSchema(swXML) TextBox1.Text = swXML.ToString End Sub
private void ShowSchemaButton_Click(object sender, EventArgs e) { System.IO.StringWriter swXML = new System.IO.StringWriter(); AuthorsDataSet.WriteXmlSchema(swXML); textBox1.Text = swXML.ToString(); }
テスト
フォームをテストして、期待どおりに動作することを確認します。
フォームをテストするには
F5 キーを押してアプリケーションを実行します。
[Read XML] をクリックします。
XML ファイルの内容が DataGridView に表示されます。
[Show Schema] をクリックします。
XML ファイルの XML スキーマがテキスト ボックスに表示されます。
次の手順
このチュートリアルでは、データセットに XML ファイルを読み込む方法の基本と、XML ファイルの内容に基づくスキーマの作成方法の基本を示します。次に行う作業は以下のとおりです。
データセットのデータを編集し、XML としてデータセットに書き込みます。詳細については、「WriteXml」を参照してください。
データセットのデータを編集し、データベースに書き込みます。詳細については、「データの保存」を参照してください。