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


XslCompiledTransform クラスは、XSLT 1.0 構文をサポートする XSLT プロセッサです。これは新しく実装されたクラスで、使用されなくなった XslTransform クラスに比べパフォーマンスが向上しています。XslCompiledTransform クラスの構造は、XslTransform クラスに非常によく似ています。Transform メソッドが XSLT の変換を実行するのに対し、Load メソッドはスタイル シートを読み込んでコンパイルします。
XSLT の document() 関数と埋め込みスクリプト ブロックのサポートは既定で無効になっています。XsltSettings オブジェクトを作成し、それを Load メソッドに渡すと、これらの機能を有効にできます。
詳細については、XslCompiledTransform クラスの使用、XslTransform クラスからの移行 の各トピックを参照してください。
セキュリティについての考慮事項XslCompiledTransform クラスを使用するアプリケーションを作成する場合は、次の項目とその影響に注意してください。
-
既定では、XSLT スクリプトが無効にされています。どうしてもスクリプトをサポートする必要がある場合、または、完全に信頼された環境で使用する場合を除き、XSLT スクリプトは有効にしないでください。
-
既定では、XSLT の document() 関数が無効にされています。document() 関数を有効にした場合は、XmlSecureResolver オブジェクトを Transform メソッドに渡すことによって、アクセス可能なリソースを制限してください。
-
拡張機能オブジェクトは既定で有効になっています。拡張機能オブジェクトは、それを格納している XsltArgumentList オブジェクトが Transform メソッドに渡されると使用されます。
-
XSLT スタイル シートには、他のファイルへの参照および埋め込みスクリプト ブロックを含めることができます。悪意のあるユーザーがこれを利用して、実行するとシステムでの処理によってコンピュータのリソースの低下を招くようなデータまたはスタイル シートを含める可能性があります。
-
信頼レベルが一定ではない環境で XSLT アプリケーションを実行する場合、スタイル シートがすり替えられる可能性があります。たとえば、悪意のあるユーザーが有害なスタイル シートを使ってオブジェクトを読み込み、それを別のユーザーに送ると、それを受け取ったユーザーが Transform メソッドを呼び出して変換を実行する可能性があります。
これらのセキュリティに関する問題は、信頼関係のないソースから取得したスタイル シートの場合はスクリプトまたは document() 関数を無効のままにしたり、信頼関係のないソースからの XslCompiledTransform オブジェクト、XSLT スタイル シート、および XML ソース データを受け入れないようにしたりすることで軽減できます。


System.Xml.Xsl.XslCompiledTransform

XslCompiledTransform オブジェクトは、読み込まれるとスレッド セーフになります。つまり、Load メソッドが正常に完了すると、複数のスレッドから Transform メソッドを同時に呼び出すことができます。
Transform メソッドが、あるスレッドで呼び出されているときに、別のスレッドで Load メソッドがもう一度呼び出されると、XslCompiledTransform オブジェクトは古い状態の使用を継続することにより、Transform 呼び出しの実行を終了します。Load メソッドが正常に完了すると、新しい状態が使用されます。
![]() |
---|

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XslCompiledTransform コンストラクタ ()
アセンブリ: 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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


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


コードにステップ インしてスタイル シートをデバッグするには、次の条件を満たす必要があります。
-
スタイル シートは、Load メソッドに URI として渡すか、IXmlLineInfo インターフェイスを実装する XmlReader クラスの実装として渡します。IXmlLineInfo インターフェイスは、すべてのテキスト解析 XmlReader オブジェクトで実装されます。
つまり、XmlDocument や XPathDocument などの IXPathNavigable オブジェクト、または IXmlLineInfo インターフェイスの実装されていない XmlReader の実装を使用してスタイル シートを読み込むと、スタイル シートをデバッグできません。
-
スタイル シートを読み込むために使用する XmlResolver は、XmlUrlResolver (XslCompiledTransform クラスで使用される既定の XmlResolver) などの、ファイル ベースの XmlResolver にします。

' Enable XSLT debugging. Dim xslt As New XslCompiledTransform(true) ' Load the style sheet. xslt.Load("output.xsl") ' Create the writer. Dim settings As New XmlWriterSettings() settings.Indent=true Dim writer As XmlWriter = XmlWriter.Create("output.xml", settings) ' Execute the transformation. xslt.Transform("books.xml", writer) writer.Close()
// Enable XSLT debugging. XslCompiledTransform xslt = new XslCompiledTransform(true); // Load the style sheet. xslt.Load("output.xsl"); // Create the writer. XmlWriterSettings settings = new XmlWriterSettings(); settings.Indent=true; XmlWriter writer = XmlWriter.Create("output.xml", settings); // Execute the transformation. xslt.Transform("books.xml", writer); writer.Close();

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 によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


XslCompiledTransform コンストラクタ

名前 | 説明 |
---|---|
XslCompiledTransform () | XslCompiledTransform クラスの新しいインスタンスを初期化します。 |
XslCompiledTransform (Boolean) | XslCompiledTransform クラスの新しいインスタンスを、指定されたデバッグ設定を使用して初期化します。 |

XslCompiledTransform プロパティ

名前 | 説明 | |
---|---|---|
![]() | OutputSettings | スタイル シートの xsl:output 要素から派生した出力情報が格納された XmlWriterSettings オブジェクトを取得します。 |
![]() | TemporaryFiles | Load メソッドの呼び出しが正常に完了した後でディスク上に作成される一時ファイルが格納された TempFileCollection を取得します。 |

XslCompiledTransform メソッド

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

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

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


名前 | 説明 | |
---|---|---|
![]() | OutputSettings | スタイル シートの xsl:output 要素から派生した出力情報が格納された XmlWriterSettings オブジェクトを取得します。 |
![]() | TemporaryFiles | Load メソッドの呼び出しが正常に完了した後でディスク上に作成される一時ファイルが格納された TempFileCollection を取得します。 |

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

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

- XslCompiledTransformのページへのリンク