XslTransform クラス
アセンブリ: System.Xml (system.xml.dll 内)

<ObsoleteAttribute("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")> _ Public NotInheritable Class XslTransform
[ObsoleteAttribute("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")] public sealed class XslTransform
[ObsoleteAttribute(L"This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")] public ref class XslTransform sealed

![]() |
---|
XslTransform クラスは、Microsoft .NET Framework Version 2.0 では使用されなくなりました。XslCompiledTransform クラスは、新しい XSLT プロセッサです。詳細については、XslCompiledTransform クラスの使用、XslTransform クラスからの移行 の各トピックを参照してください。 |
XslTransform は、XSLT 1.0 構文をサポートしています。XSLT スタイル シートでは、名前空間 http://www.w3.org/1999/XSL/Transform を使用する必要があります。
XsltArgumentList クラスを使用して、引数をスタイル シートに追加することもできます。このクラスには、スタイル シートの入力パラメータと、スタイル シートから呼び出すことができる拡張機能オブジェクトが含まれています。
-
Load メソッドを使用して、変換用のスタイル シートを読み込みます。このメソッドは複数のオーバーロードを持ち、XmlReader、XPathNavigator、IXPathNavigable、またはファイル位置を含む URL を使用して、スタイル シートを読み込むことができます。
-
Transform メソッドを使用して、XML データを変換します。このメソッドはオーバーロードを持ち、異なる型の入出力を処理できます。追加の引数を含む XsltArgumentList を指定して、変換中に入力として使用することもできます。
XslTransform クラスを使用するアプリケーションを作成する場合は、次の項目とその影響に注意してください。
-
拡張機能オブジェクトは既定で有効になっています。拡張機能オブジェクトは、それを格納している XsltArgumentList オブジェクトが Transform メソッドに渡されると使用されます。
-
XSLT スタイル シートには、他のファイルへの参照および埋め込みスクリプト ブロックを含めることができます。悪意のあるユーザーがこれを利用して、実行するとシステムでの処理によってコンピュータのリソースの低下を招くようなデータまたはスタイル シートを含める可能性があります。
-
信頼レベルが一定ではない環境で XSLT アプリケーションを実行する場合、スタイル シートがすり替えられる可能性があります。たとえば、悪意のあるユーザーが有害なスタイル シートを使ってオブジェクトを読み込み、それを別のユーザーに送ると、それを受け取ったユーザーが Transform メソッドを呼び出して変換を実行する可能性があります。
これらのセキュリティの問題は、信頼できないソースからの XslTransform オブジェクト、XSLT スタイル シート、または XML ソース データを受け入れないことで軽減できます。
このクラスは、msxsl:script 要素を使用して埋め込まれたスクリプトをサポートします。
.NET Framework Version 1.1 では、スタイル シートの証拠によって、埋め込みスクリプトに与えられるアクセス許可が決まります。
-
スタイル シートが URI (Uniform Resource Identifier) から読み込まれた場合は、その URI を使用して証拠が作成されます。この証拠には、URI とそのサイトおよびゾーンが格納されています。
-
スタイル シートが他のソースから読み込まれた場合は、Load メソッドに System.Security.Policy.Evidence オブジェクトを渡すことで証拠を提示できます。それ以外の場合は、スクリプト アセンブリは完全に信頼されています。
信頼度の低い呼び出し元の場合 : 埋め込みスクリプトをコンパイルするには UnmanagedCode アクセス許可が必要です。Load メソッドで Evidence を指定するには ControlEvidence アクセス許可が必要です。必要なアクセス許可が呼び出し元にない場合は SecurityException がスローされます。詳細については、System.Security.Permissions.SecurityPermission と System.Security.Permissions.SecurityPermissionFlag のトピックを参照してください。
-
msxsl:script 要素は、urn:schemas-microsoft-com:xslt 名前空間に属します。スタイル シートには、名前空間宣言 xmlns:msxsl=urn:schemas-microsoft-com:xslt を含める必要があります。
-
msxsl:script 要素には、使用するスクリプト言語を指定する language 属性を含めることができます。language 属性の値は、C#、CSharp、VB、VisualBasic、JScript、または JavaScript のいずれかである必要があります。言語名の大文字と小文字は区別されないため、JavaScript と javascript はどちらも有効です。language 属性を指定しないと、既定の JScript が使用されます。
-
msxsl:script 要素には、スクリプト ブロックに関連付けられた名前空間を表すプリフィックスを格納する implements-prefix 属性が含まれている必要があります。この名前空間は、スタイル シート内で定義されている必要があります。スタイル シートには、名前空間でグループ化される複数のスクリプト ブロックを含めることができます。同じ名前空間内で複数の言語のスクリプト ブロックを持つことはできません。スクリプト ブロックが同じ名前空間内にある場合、これらのスクリプト ブロックは別のスクリプト ブロックで定義された関数を呼び出すことができます。スクリプト ブロックの内容は、language 属性で提供されるスクリプト言語の規則や構文に従って解析されます。たとえば、C# スクリプト ブロックがある場合は、コメントに // の先頭文字が付きます。コメントは、有効な XML の内容である必要があります。
Note スクリプト ブロックを CDATA セクションにラップすることをお勧めします。
関数は、msxsl:script 要素内で宣言できます。既定でサポートされる名前空間を次の表に示します。
System.Collection | |
System.Xml.Xsl | |
System.Xml.XPath |
スクリプト関数で定義された、提供される引数と戻り値は、次に示す W3C (World Wide Web Consortium) 仕様の型のいずれかである必要があります。W3C 仕様の型 (XPath または XSLT のいずれか) と、対応する .NET Framework クラス間のマップの詳細を次の表に示します。
System.String | |
System.Boolean | |
System.Double | |
System.Xml.XPath.XPathNavigator | |
System.Xml.XPath.XPathNodeIterator |
スクリプト関数で、Int16、UInt16、Int32、UInt32、Int64、UInt64、単精度浮動小数点型、または 10 進のいずれかの数値型が使用されている場合、これらの型は強制的に倍精度浮動小数点型に変換され、W3C XPath 型の数値に割り当てられます。
引数の結果を必要な型に変換できない関数が呼び出されると、例外がスローされます。
![]() |
---|
msxsl:script と msxsl:node-list は、urn:schemas-microsoft-com:xslt 名前空間の唯一の関数で、XslTransform クラスによってサポートされます。 |
XslTransform には、拡張機構として共通言語ランタイム (CLR) コードを利用する機能が用意されています。これは、クラスのインスタンスを XslTransform クラスに渡して、そのパブリック メソッドを XSLT スタイル シート内で呼び出すことによって実行されます。params キーワードを使用すると、数を指定せずにパラメータを渡すことができますが、このキーワードで定義されるメソッドはこのシナリオでは正しく動作しません。詳細については、params (C# リファレンス) のトピックを参照してください。
詳細については、「XslTransform クラスを使用した XSLT 変換」を参照してください。

指定した XML ドキュメントを変換し、その結果をコンソールに出力する例を次に示します。
'Create a new XslTransform object. Dim xslt As New XslTransform() 'Load the stylesheet. xslt.Load(CType("http://server/favorite.xsl", String)) 'Create a new XPathDocument and load the XML data to be transformed. Dim mydata As New XPathDocument("inputdata.xml") 'Create an XmlTextWriter which outputs to the console. Dim writer As New XmlTextWriter(Console.Out) 'Transform the data and send the output to the console. xslt.Transform(mydata, Nothing, writer, Nothing)
//Create a new XslTransform object. XslTransform xslt = new XslTransform(); //Load the stylesheet. xslt.Load("http://server/favorite.xsl"); //Create a new XPathDocument and load the XML data to be transformed. XPathDocument mydata = new XPathDocument("inputdata.xml"); //Create an XmlTextWriter which outputs to the console. XmlWriter writer = new XmlTextWriter(Console.Out); //Transform the data and send the output to the console. xslt.Transform(mydata,null,writer, null);
//Create a new XslTransform object. XslTransform^ xslt = gcnew XslTransform; //Load the stylesheet. xslt->Load( "http://server/favorite.xsl" ); //Create a new XPathDocument and load the XML data to be transformed. XPathDocument^ mydata = gcnew XPathDocument( "inputdata.xml" ); //Create an XmlTextWriter which outputs to the console. XmlWriter^ writer = gcnew XmlTextWriter( Console::Out ); //Transform the data and send the output to the console. xslt->Transform^(mydata,0,writer,0);
//Create a new XslTransform object. XslTransform xslt = new XslTransform(); //Load the stylesheet. xslt.Load("http://server/favorite.xsl"); //Create a new XPathDocument and load the XML data to be transformed. XPathDocument myData = new XPathDocument("inputdata.xml"); //Create an XmlTextWriter which outputs to the console. XmlWriter writer = new XmlTextWriter(Console.get_Out()); //Transform the data and send the output to the console. xslt.Transform(myData, null, writer, null);

System.Xml.Xsl.XslTransform

XslTransform オブジェクトは、変換操作に対してだけスレッド セーフです。他の操作がスレッド セーフかどうかは保証されていません。読み込み操作中に、オブジェクトで他のメソッドが呼び出されないようにする必要があります。

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


XslTransform コンストラクタ
アセンブリ: System.Xml (system.xml.dll 内)


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


XslTransform プロパティ
XslTransform メソッド

名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 ( Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 ( Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 ( Object から継承されます。) |
![]() | Load | オーバーロードされます。 XSLT スタイル シートを読み込みます。XSLT の xsl:include 要素および xsl:import 要素で参照されるスタイル シートが読み込まれます。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 ( Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 ( Object から継承されます。) |
![]() | Transform | オーバーロードされます。 読み込まれた XSLT スタイル シートを使用して、XML データを変換します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 ( Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 ( Object から継承されます。) |

XslTransform メンバ
XSLT (Extensible Stylesheet Language Transformations) スタイル シートを使用して XML データを変換します。
XslTransform データ型で公開されるメンバを以下の表に示します。



名前 | 説明 | |
---|---|---|
![]() | Equals | オーバーロードされます。 2 つの Object インスタンスが等しいかどうかを判断します。 (Object から継承されます。) |
![]() | GetHashCode | 特定の型のハッシュ関数として機能します。GetHashCode は、ハッシュ アルゴリズムや、ハッシュ テーブルのようなデータ構造での使用に適しています。 (Object から継承されます。) |
![]() | GetType | 現在のインスタンスの Type を取得します。 (Object から継承されます。) |
![]() | Load | オーバーロードされます。 XSLT スタイル シートを読み込みます。XSLT の xsl:include 要素および xsl:import 要素で参照されるスタイル シートが読み込まれます。 |
![]() | ReferenceEquals | 指定した複数の Object インスタンスが同一かどうかを判断します。 (Object から継承されます。) |
![]() | ToString | 現在の Object を表す String を返します。 (Object から継承されます。) |
![]() | Transform | オーバーロードされます。 読み込まれた XSLT スタイル シートを使用して、XML データを変換します。 |

名前 | 説明 | |
---|---|---|
![]() | Finalize | Object がガベージ コレクションにより収集される前に、その Object がリソースを解放し、その他のクリーンアップ操作を実行できるようにします。 (Object から継承されます。) |
![]() | MemberwiseClone | 現在の Object の簡易コピーを作成します。 (Object から継承されます。) |

- XslTransformのページへのリンク