XmlDataSource.TransformArgumentList プロパティ
アセンブリ: System.Web (system.web.dll 内)
![構文](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
Dim instance As XmlDataSource Dim value As XsltArgumentList value = instance.TransformArgumentList instance.TransformArgumentList = value
public: virtual property XsltArgumentList^ TransformArgumentList { XsltArgumentList^ get (); void set (XsltArgumentList^ value); }
/** @property */ public XsltArgumentList get_TransformArgumentList () /** @property */ public void set_TransformArgumentList (XsltArgumentList value)
public function get TransformArgumentList () : XsltArgumentList public function set TransformArgumentList (value : XsltArgumentList)
XmlDataSource コントロールが XML データを読み込むときに適用される XSLT パラメータおよびオブジェクトを保持する XsltArgumentList オブジェクト。既定値は null 参照 (Visual Basic では Nothing) です。
![解説](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
XML データへの XSLT 変換の適用時に、確実に XSLT パラメータを渡すには、Transforming イベントの発生時に TransformArgumentList プロパティを設定するようにします。
EnableCaching プロパティが true に設定され、かつ TransformArgumentList プロパティが設定されている場合、変換用の引数リストでパラメータを変更しても、キャッシュ エントリは自動的に無効化されません。この場合、CacheKeyDependency プロパティを設定することにより、キャッシュを無効するためのコードを記述する必要があります。
![使用例](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
XmlDataSource と TreeView コントロールを使用し、変換後の XML データを表示する方法を次のコード例に示します。XML 変換は、TransformFile プロパティで指定したスタイル シートを使って実行されます。このスタイル シートは、さらに、データ ソース コントロールに対し実行時に XsltArgumentList オブジェクトとして渡された変換用の引数を使用します。コード例では、カスタムのイベント ハンドラで Transforming イベントを処理することによって XsltArgumentList をデータ ソース コントロールに渡しています。
<%@ Page Language="VB" %> <%@ Import Namespace="System.Xml.Xsl" %> <SCRIPT runat="server"> Private Sub TransformEventHandler(sender As Object, e as EventArgs) ' Add a dynamic transformation argument. Dim d As New DateTime d = DateTime.Now.AddDays(20) 'Create an XsltArgumentList. Dim xslArg As XsltArgumentList = New XsltArgumentList xslArg.AddParam("purchdate", "", d.ToShortDateString()) Dim aXmlDataSource as XmlDataSource = CType(sender, XmlDataSource) aXmlDataSource.TransformArgumentList = xslArg End Sub ' TransformEventHandler </SCRIPT> <!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="bookstore.xml" transformfile="bookswithdiscount.xsl" ontransforming="TransformEventHandler" /> <!- 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 depth="1" datamember="genre" textfield="name" valuefield="name"/> <asp:treenodebinding depth="2" datamember="book" textfield="title" valuefield="title"/> <asp:treenodebinding depth="3" datamember="chapter" textfield="name" valuefield="num"/> </databindings> </asp:treeview> </form> </BODY> </HTML>
<%@ Page Language="C#" %> <%@ Import Namespace="System.Xml.Xsl" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <SCRIPT runat="server"> private void TransformEventHandler(object sender, EventArgs e) { // Add a dynamic transformation argument. DateTime d = new DateTime(); d = DateTime.Now.AddDays(20); // Create an XsltArgumentList. XsltArgumentList xslArg = new XsltArgumentList(); xslArg.AddParam("purchdate", "", d.ToShortDateString()); ((XmlDataSource) sender).TransformArgumentList = xslArg; } </SCRIPT> <HTML> <BODY> <form runat="server"> <asp:XmlDataSource id="XmlDataSource1" runat="server" datafile="bookstore.xml" transformfile="bookswithdiscount.xsl" ontransforming="TransformEventHandler" /> <!- 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 Depth="1" datamember="genre" textfield="name" valuefield="name"/> <asp:treenodebinding depth="2" datamember="book" textfield="title" valuefield="title"/> <asp:treenodebinding depth="3" datamember="chapter" textfield="name" valuefield="num"/> </databindings> </asp:treeview> </form> </BODY> </HTML>
<%@ Page Language="VJ#" %> <%@ Import Namespace="System.Xml.Xsl" %> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <SCRIPT runat="server"> private void TransformEventHandler(Object sender, System.EventArgs e) { // Add a dynamic transformation argument. System.DateTime.get_Now().AddDays(20); // Create an XsltArgumentList. XsltArgumentList xslArg = new XsltArgumentList(); xslArg.AddParam("purchdate", "", System.DateTime.get_Now().AddDays(20). ToShortDateString()); ((XmlDataSource)sender).set_TransformArgumentList(xslArg); }//TransformEventHandler </SCRIPT> <HTML> <BODY> <form runat="server"> <asp:XmlDataSource id="XmlDataSource1" runat="server" datafile="bookstore.xml" transformfile="bookswithdiscount.xsl" ontransforming="TransformEventHandler" /> <!- 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 Depth="1" datamember="genre" textfield="name" valuefield="name"/> <asp:treenodebinding depth="2" datamember="book" textfield="title" valuefield="title"/> <asp:treenodebinding depth="3" datamember="chapter" textfield="name" valuefield="num"/> </databindings> </asp:treeview> </form> </BODY> </HTML>
コード例の XML ファイルには、次のデータが含まれています。
<bookstore> <genre name="fiction"> <book ISBN="0000000000"> <title>Secrets of Silicon Valley</title> <price>12.95</price> <chapters> <chapter num="1" name="Introduction" /> <chapter num="2" name="Body" /> <chapter num="3" name="Conclusion" /> </chapters> </book> </genre> <genre name="novel"> <book genre="novel" ISBN="1111111111"> <title>Straight Talk About Computers</title> <price>24.95</price> <chapters> <chapter num="1" name="Introduction" /> <chapter num="2" name="Body" /> <chapter num="3" name="Conclusion" /> </chapters> </book> </genre> </bookstore>
XML データの変換は、次のスタイル シートを使って実行されます。
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:param name="purchdate"/> <xsl:template match="bookstore"> <bookstore> <xsl:apply-templates select="genre"/> </bookstore> </xsl:template> <xsl:template match="genre"> <genre> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:apply-templates select="book"/> </genre> </xsl:template> <xsl:template match="book"> <book> <xsl:attribute name="ISBN"> <xsl:value-of select="@ISBN"/> </xsl:attribute> <xsl:attribute name="title"> <xsl:value-of select="title"/> Price: <xsl:value-of select="price"/> 15% discount if purchased by: <xsl:value-of select="$purchdate"/> </xsl:attribute> <xsl:apply-templates select="chapters/chapter" /> </book> </xsl:template> <xsl:template match="chapter"> <chapter> <xsl:attribute name="num"> <xsl:value-of select="@num"/> </xsl:attribute> <xsl:attribute name="name"> <xsl:value-of select="@name"/> </xsl:attribute> <xsl:apply-templates/> </chapter> </xsl:template> </xsl:stylesheet>
![プラットフォーム](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
![バージョン情報](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
![参照](http://weblio.hs.llnwd.net/e7/img/dict/msdnc/minus.gif)
- XmlDataSource.TransformArgumentList プロパティのページへのリンク