XmlDataSource イベント

名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。 ( Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。 ( Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。 ( Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。 ( Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。 ( Control から継承されます。) |
![]() | Transforming | Transform プロパティで定義されたスタイル シート、または TransformFile プロパティで指定されたスタイル シートが XML データに適用される前に発生します。 |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。 ( Control から継承されます。) |

XmlDataSource クラス
アセンブリ: System.Web (system.web.dll 内)

Public Class XmlDataSource Inherits HierarchicalDataSourceControl Implements IDataSource, IListSource

XmlDataSource コントロールは、データ バインド コントロールの XML データを表すデータ ソース コントロールです。データ バインド コントロールは、XmlDataSource コントロールを使用することにより、階層形式や表形式でデータを表示できます。通常、XmlDataSource コントロールは、階層形式の XML データを読み取り専用で表示するために使用されます。XmlDataSource コントロールは HierarchicalDataSourceControl クラスを継承しているため、階層形式のデータを扱うことができます。また、XmlDataSource コントロールは、IDataSource インターフェイスも実装しており、表形式または一覧形式のデータを扱うこともできます。
ページ開発者は、XmlDataSource コントロールとデータ バインド コントロールを使って XML データを表示できます。
通常、XmlDataSource は、DataFile プロパティで指定された XML ファイルから XML データを読み込みます。Data プロパティを使用して、XML データを文字列形式でデータ ソース コントロールに直接格納することもできます。XML データをデータ バインド コントロールに表示する前に、その XML データを変換しておく必要がある場合は、変換のための XSL (Extensible Sylesheet Language) スタイル シートを指定できます。XML データのときと同様、スタイル シートは、TransformFile プロパティで指定したファイルから読み込むのが一般的ですが、Transform プロパティを使用することで、スタイル シートを文字列形式で直接格納することもできます。
XmlDataSource コントロールは、XML データをデータ バインド コントロールに読み取り専用で表示するような場合に使用するのが一般的です。ただし、XmlDataSource コントロールを使用して、XML データを編集することもできます。XML データを編集するには、GetXmlDocument メソッドを呼び出して、XML データのインメモリ表現である XmlDataDocument オブジェクトを取得します。XmlDataDocument オブジェクトが公開するオブジェクト モデルや、そこに含まれる XmlNode オブジェクトのオブジェクト モデル、または、XPath フィルタ処理式を使用して、ドキュメント内のデータを操作できます。XML データのインメモリ表現に対して変更を加えた場合、そのデータは、Save メソッドを呼び出してディスクに保存できます。
XmlDataSource コントロールの編集機能には、次に示す制限があります。
-
XML データは、Data プロパティで指定されたインラインの XML ではなく、DataFile プロパティで指定された XML ファイルから読み込む必要があります。
-
Save メソッドは、複数の保存要求を同時に処理することはできません。複数のユーザーが XmlDataSource を使用して XML ファイルを編集する場合、必ずしもすべてのユーザーが同じデータを操作しているとは限りません。複数のユーザーが同時に保存要求を発行した場合、Save 操作に失敗する場合があります。
XML データを使った一般的な処理として、ある XML データセットを別の XML データセットに変換するという操作があります。XmlDataSource コントロールは XML 変換をサポートしています。Transform プロパティおよび TransformFile プロパティを使用して、XML データをデータ バインド コントロールに渡す前に、その XML データに XSL スタイル シートを適用したり、TransformArgumentList プロパティを使用して、XSL スタイル シートが変換中に使用する動的 XSLT スタイル シート引数を指定したりできます。XPath プロパティで XPath フィルタ処理式を指定した場合、その式は、変換処理の後で適用されます。
既定では、XmlDataSource コントロールは、DataFile プロパティで指定された XML ファイル、または、Data プロパティにインラインで指定された XML ファイルを対象に、そこに格納されたすべての XML データを読み込みますが、XPath 式を使用することでデータをフィルタ処理できます。XPath プロパティは、XML データの読み込みと変換の後で適用される、XPath 構文のフィルタをサポートしています。
パフォーマンスを向上させるため、XmlDataSource コントロールのキャッシュが既定で有効にされています。ページが要求されるたびに、サーバー上の XML ファイルを開いて読み込むと、アプリケーションのパフォーマンスが低下する場合があります。データをキャッシュに格納することによって、サーバー側の処理の負荷を下げることができます。Web サーバーのメモリが消費されるというトレードオフが生じますが、多くの場合、これによって全体的なパフォーマンスを高めることが可能です。EnableCaching プロパティを true に設定し、CacheDuration プロパティをキャッシュが無効になるまでの秒数、つまり、キャッシュにデータが格納される秒数に設定すると、XmlDataSource はデータを自動的にキャッシュします。CacheExpirationPolicy を使用することで、データ ソース コントロールのキャッシュ動作を、より細かく調整できます。
XmlDataSource コントロールは、階層形式のデータを表示するデータ バインド コントロールのほか、表形式のデータを表示するコントロールにも対応しているため、基になる XML データに対し複数の種類のデータ ソース ビュー オブジェクトをサポートしていると言えます。XmlDataSource コントロールを、表形式のデータを表示するデータ バインド コントロールで使用した場合、単一名の XmlDataSourceView オブジェクトが取得されます。この単一名のビューは、GetViewNames メソッドにより識別されます。XmlDataSource コントロールを、階層形式のデータを表示するデータ バインド コントロールで使用した場合、GetHierarchicalView メソッドに渡された一意の階層パスに対応する XmlHierarchicalDataSourceView が取得されます。

このセクションには、2 つのコード例が含まれています。1 つ目のコード例は、XmlDataSource コントロールを TreeView コントロールと組み合わせて、サンプルの XML ファイルの XML データを表示する方法を示しています。2 つ目の例では、テンプレートの Repeater コントロールと共に XmlDataSource コントロールを使用して XML データを表示する方法を示します。
TreeView コントロールと共に XmlDataSource コントロールを使用して XML データを表示する方法を次のコード例に示します。XmlDataSource は、DataFile プロパティで指定された XML ファイルから XML データを読み込みます。
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <BODY> <form runat="server"> <asp:xmldatasource id="XmlDataSource1" runat="server" datafile="books.xml" /> <!- TreeView uses hierachical data, so the XmlDataSource uses an XmlHierarchicalDataSourceView when a TreeView is bound to it. --> <asp:treeview id="TreeView1" runat="server" datasourceid="XmlDataSource1"> <databindings> <asp:treenodebinding datamember="book" textfield="title"/> </databindings> </asp:TreeView> </form> </BODY> </HTML>
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <BODY> <form runat="server"> <asp:xmldatasource id="XmlDataSource1" runat="server" datafile="books.xml" /> <!- TreeView uses hierachical data, so the XmlDataSource uses an XmlHierarchicalDataSourceView when a TreeView is bound to it. --> <asp:treeview id="TreeView1" runat="server" datasourceid="XmlDataSource1"> <databindings> <asp:treenodebinding datamember="book" textfield="title"/> </databindings> </asp:TreeView> </form> </BODY> </HTML>
<%@ Page Language="VJ#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <BODY> <form runat="server"> <asp:xmldatasource id="XmlDataSource1" runat="server" datafile="books.xml" /> <!- TreeView uses hierachical data, so the XmlDataSource uses an XmlHierarchicalDataSourceView when a TreeView is bound to it. --> <asp:treeview id="TreeView1" runat="server" datasourceid="XmlDataSource1"> <databindings> <asp:treenodebinding datamember="book" textfield="title"/> </databindings> </asp:TreeView> </form> </BODY> </HTML>
コード例の XML ファイルには、次のデータが含まれています。
<books> <computerbooks> <book title="Secrets of Silicon Valley" author="Sheryl Hunter"/> <book title="Straight Talk About Computers" author="Dean Straight"/> <book title="You Can Combat Computer Stress!" author="Marjorie Green"/> </computerbooks> <cookbooks> <book title="Silicon Valley Gastronomic Treats" author="Innes del Castill"/> </cookbooks> </books>
テンプレートの Repeater コントロールと共に XmlDataSource コントロールを使用して XML データを表示する方法を次のコード例に示します。Repeater コントロールは、XmlDataSource が表す XML ドキュメント内のデータ項目に対し、XPath データ バインド式を使ってバインドします。XPath および XPathSelect データ バインディング構文の詳細については、XPathBinder クラスのトピックを参照してください。
<%@ Page Language="VB" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <BODY> <form runat="server"> <asp:XmlDataSource runat="server" id="XmlDataSource1" XPath="orders/order" DataFile="order.xml" /> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"> <ItemTemplate> <h2>Order</h2> <table> <tr> <td>Customer</td> <td><%#XPath("customer/@id")%></td> <td><%#XPath("customername/firstn")%></td> <td><%#XPath("customername/lastn")%></td> </tr> <tr> <td>Ship To</td> <td><%#XPath("shipaddress/address1")%></FONT></td> <td><%#XPath("shipaddress/city")%></td> <td><%#XPath("shipaddress/state")%> , <%#XPath("shipaddress/zip")%></td> </tr> </table> <h3>Order Summary</H3> <asp:Repeater ID="Repeater2" DataSource='<%#XPathSelect("summary/item")%>' runat="server"> <ItemTemplate> <b><%#XPath("@dept")%></b> - <%#XPath(".")%><br /> </ItemTemplate> </asp:Repeater> <hr> </ItemTemplate> </asp:Repeater> </form> </BODY> </HTML>
<%@ Page Language="C#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <BODY> <form runat="server"> <asp:XmlDataSource runat="server" id="XmlDataSource1" XPath="orders/order" DataFile="order.xml" /> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"> <ItemTemplate> <h2>Order</h2> <table> <tr> <td>Customer</td> <td><%#XPath("customer/@id")%></td> <td><%#XPath("customername/firstn")%></td> <td><%#XPath("customername/lastn")%></td> </tr> <tr> <td>Ship To</td> <td><%#XPath("shipaddress/address1")%></FONT></td> <td><%#XPath("shipaddress/city")%></td> <td><%#XPath("shipaddress/state")%>, <%#XPath("shipaddress/zip")%></td> </tr> </table> <h3>Order Summary</H3> <asp:Repeater ID="Repeater2" DataSource='<%#XPathSelect("summary/item")%>' runat="server"> <ItemTemplate> <b><%#XPath("@dept")%></b> - <%#XPath(".")%><br /> </ItemTemplate> </asp:Repeater> <hr> </ItemTemplate> </asp:Repeater> </form> </BODY> </HTML>
<%@ Page Language="VJ#" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <HTML> <BODY> <asp:XmlDataSource runat="server" id="XmlDataSource1" XPath="orders/order" DataFile="order.xml" /> <asp:Repeater ID="Repeater1" runat="server" DataSourceID="XmlDataSource1"> <ItemTemplate> <h2>Order</h2> <table> <tr> <td>Customer</td> <td><%#XPath("customer/@id")%></td> <td><%#XPath("customername/firstn")%></td> <td><%#XPath("customername/lastn")%></td> </tr> <tr> <td>Ship To</td> <td><%#XPath("shipaddress/address1")%></FONT></td> <td><%#XPath("shipaddress/city")%></td> <td><%#XPath("shipaddress/state")%>, <%#XPath("shipaddress/zip")%></td> </tr> </table> <h3>Order Summary</H3> <asp:Repeater ID="Repeater2" DataSource='<%#XPathSelect("summary/item")%>' runat="server"> <ItemTemplate> <b><%#XPath("@dept")%></b> - <%#XPath(".")%><br /> </ItemTemplate> </asp:Repeater> <hr> </ItemTemplate> </asp:Repeater> </form> </BODY> </HTML>
コード例の XML ファイルには、次のデータが含まれています。
<?xml version="1.0" encoding="iso-8859-1"?> <orders> <order> <customer /> <customername> <firstn>John</firstn> <lastn>Smith</lastn> </customername> <transaction /> <shipaddress> <address1>1234 Tenth Avenue</address1> <city>Bellevue</city> <state>Washington</state> <zip>98001</zip> </shipaddress> <summary> <item dept="tools">screwdriver</item> <item dept="tools">hammer</item> <item dept="plumbing">fixture</item> </summary> </order> </orders>


System.Web.UI.Control
System.Web.UI.HierarchicalDataSourceControl
System.Web.UI.WebControls.XmlDataSource


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlDataSource コンストラクタ
アセンブリ: System.Web (system.web.dll 内)


Windows 98, Windows 2000 SP4, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XmlDataSource プロパティ



名前 | 説明 | |
---|---|---|
![]() | System.ComponentModel.IListSource.ContainsListCollection | このメンバの説明については、ContainsListCollection のトピックを参照してください。 |

XmlDataSource メソッド



名前 | 説明 | |
---|---|---|
![]() | System.ComponentModel.IListSource.GetList | このメンバの説明については、GetList のトピックを参照してください。 |
![]() | System.Web.UI.IDataSource.GetView | データ ソース コントロールに関連付けられた名前付きデータ ソース ビューを取得します。 |
![]() | System.Web.UI.IDataSource.GetViewNames | このメンバの説明については、GetViewNames のトピックを参照してください。 |

XmlDataSource メンバ
データ バインド コントロールの XML データ ソースを表します。
XmlDataSource データ型で公開されるメンバを以下の表に示します。






名前 | 説明 | |
---|---|---|
![]() | DataBinding | サーバー コントロールがデータ ソースに連結すると発生します。(Control から継承されます。) |
![]() | Disposed | サーバー コントロールがメモリから解放されると発生します。これは、ASP.NET ページが要求されている場合のサーバー コントロールの有効期間における最終段階です。(Control から継承されます。) |
![]() | Init | サーバー コントロールが初期化されると発生します。これは、サーバー コントロールの有効期間における最初の手順です。(Control から継承されます。) |
![]() | Load | サーバー コントロールが Page オブジェクトに読み込まれると発生します。(Control から継承されます。) |
![]() | PreRender | Control オブジェクトの読み込み後、表示を開始する前に発生します。(Control から継承されます。) |
![]() | Transforming | Transform プロパティで定義されたスタイル シート、または TransformFile プロパティで指定されたスタイル シートが XML データに適用される前に発生します。 |
![]() | Unload | サーバー コントロールがメモリからアンロードされると発生します。(Control から継承されます。) |

名前 | 説明 | |
---|---|---|
![]() | System.ComponentModel.IListSource.GetList | このメンバの説明については、GetList のトピックを参照してください。 |
![]() | System.Web.UI.IDataSource.GetView | データ ソース コントロールに関連付けられた名前付きデータ ソース ビューを取得します。 |
![]() | System.Web.UI.IDataSource.GetViewNames | このメンバの説明については、GetViewNames のトピックを参照してください。 |
![]() | System.Web.UI.IDataSource.DataSourceChanged | このメンバの説明については、DataSourceChanged のトピックを参照してください。 |

- XmlDataSourceのページへのリンク