XmlDataSource クラスとは? わかりやすく解説

XmlDataSource クラス

メモ : このクラスは、.NET Framework version 2.0新しく追加されたものです。

データ バインド コントロールXML データ ソース表します

名前空間: System.Web.UI.WebControls
アセンブリ: System.Web (system.web.dll 内)
構文構文

Public Class XmlDataSource
    Inherits HierarchicalDataSourceControl
    Implements IDataSource, IListSource
Dim instance As XmlDataSource
public class XmlDataSource : HierarchicalDataSourceControl,
 IDataSource, IListSource
public ref class XmlDataSource : public
 HierarchicalDataSourceControl, IDataSource, IListSource
public class XmlDataSource extends HierarchicalDataSourceControl
 implements IDataSource, IListSource
public class XmlDataSource extends
 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 データ使った一般的な処理として、ある 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 コントロールではサポートされていません。

フィルタ処理

XPath プロパティは、適切な XPath 式を使って XML データフィルタ処理する場合使用します

ページング

XmlDataSource コントロールではサポートされていません。

更新

XmlDataDocument直接操作してから、Save メソッド呼び出すことによって可能となります

削除

XmlDataDocument直接操作してから、Save メソッド呼び出すことによって可能となります

挿入

XmlDataDocument直接操作してから、Save メソッド呼び出すことによって可能となります

キャッシュ

既定有効になっています。CacheDuration プロパティは 0 (無限) に、CacheExpirationPolicy プロパティAbsolute設定されています。

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>
.NET Framework のセキュリティ.NET Frameworkセキュリティ
継承階層継承階層
System.Object
   System.Web.UI.Control
     System.Web.UI.HierarchicalDataSourceControl
      System.Web.UI.WebControls.XmlDataSource
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバ場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「XmlDataSource クラス」の関連用語

XmlDataSource クラスのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



XmlDataSource クラスのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2024 Microsoft.All rights reserved.

©2024 GRAS Group, Inc.RSS