.NET アプリケーションで XSLT 変換を実行するための情報: ロードマップ

文書翻訳 文書翻訳
文書番号: 313997 - 対象製品
すべて展開する | すべて折りたたむ

目次

概要

ここでは .NET Framework 名前空間とクラスをプログラムで .NET アプリケーションで拡張スタイルシート言語変換 (XSLT) 変換を実行するを導入するためのロードマップについて説明します。 ロードマップ資料では、オンライン ドキュメント、「サポート技術情報」 (Microsoft Knowledge Base) 資料、Microsoft ホワイト ペーパーなど、マイクロソフトの製品またはテクノロジの学習に役立つさまざまな情報へのリンクを提供します。

この資料はない、XSLT のチュートリアルです。 この資料で、World Wide Web Consortium (W3C) XSLT standard を使い慣れている経験を持つ XML データを変換する XSLT スタイル シートを作成します。

概要

XSLT は、World Wide Web コンソーシアム (W3C) 標準の XML データを変換します。 XSLT は、固定長のテキスト、コンマで区切られたテキスト、または別の XML 形式、HTML など他の形式の XML データを変換するスタイル シートを作成するために通常使用されます。

開発者の観点からは XSLT はプログラミング構造および共通の変換要件に対応する要素に対応する要素を実装する多機能な XML ベースの構文でプログラミング言語です。

XSLT スタイル シート頻繁 XML パス言語 (XPath) クエリを使用して、ソース XML ドキュメント内のノードを検索およびこれらのノードを変換する XSLT テンプレートを適用します。 XSLT スタイル シート内の XPath クエリの効率は頻繁に影響し、使用している変換のパフォーマンスにします。

高度なスタンド、ポイントからは、XSLT プロセッサは XSLT 変換を実行し、必要な出力を生成するには、指定されたソース XML ドキュメントに、指定したスタイル シートを適用するソフトウェア コンポーネントです。

XSLT 変換によって生成される最終出力は、通常、指定されたターゲット形式で、元の XML データを表示する結果ドキュメントです。

XSLT 変換を実行するには、.NET アプリケーションでコードの記述

「サポート技術情報」(Microsoft Knowledge Base) 資料次のクイック スタート チュートリアル以下するデモンストレーションを基本的な変換を実行するには、XML ドキュメントに XSLT スタイル シートを適用するには、.NET アプリケーションでコードを記述します
I. の操作方法... XML に、XSL 変換を適用しますか?
http://samples.gotdotnet.com/quickstart/howto/doc/Xml/TransformXml.aspx
307322方法: Visual C# .NET を使用して XML ドキュメントに、XSL 変換を適用
300929方法: Visual Basic .NET を使用して XML ドキュメントに XML ドキュメントから、XSL 変換を適用します。

System.Xml.Xsl 名前空間

System.Xml.Xsl 名前空間内の XslTransform クラスは、.NET Framework の XSLT プロセッサ実装します。 このクラスのオブジェクトのインスタンスが作成され、.NET アプリケーションでの XSLT 変換の実行に使用します。 .NET Framework で XSLT プロセッサの実装は、W3C XSLT Recommendation のバージョン 1. 0 準拠です。

System.Xml.Xsl 名前空間は、XSLT の例外処理と XSLT 変換または XPath クエリの実行に関連付けられている詳細なオプションをサポートするクラスを次も実装します。
  • XsltArgumentList 。 拡張オブジェクトのインスタンスと XSLT スタイル シートを定義する XSLT パラメーターおよび参照の値を入力するこのクラスのオブジェクトのインスタンスを使えます。
  • XsltCompileException 。 このクラスは XSLT スタイル シートをコンパイルするときにエラーが発生したときに、.NET フレームワークの例外を生成します。 XSLT スタイル シートは XslTransform オブジェクトの 読み込み メソッドが実行時にコンパイルされます。
  • XsltException 。 このクラスは XSLT 変換を実行する間、実行時エラーが発生 .NET 例外を生成します。
  • XsltContext IXsltContextFunction IXsltContextVariable コンポーネントの詳細これらの実装し、ユーザー定義関数と XPathNavigator クラスとドキュメント オブジェクト モデル (DOM) クラスを使用して .NET アプリケーションで実行される XPath クエリでの変数を参照する必要があるときに、カスタムの XPath クエリの実行コンテキストを実装する使用されます。

    XPath クエリ式は、XSLT スタイル シートに含まれるでユーザー定義関数と変数をより簡単に実装するには、インライン スクリプト ブロック、拡張オブジェクト、および XSLT 変数またはパラメーターを使用できます。

XSLT の高度な機能

ここではいくつかの高度な XSLT 機能について説明します。

XSLT 変換のパイプライン

パイプラインは、段階的に 2 つ以上の XSLT スタイル シートを適用して、ソース XML ドキュメントを変換するプロセスを指します。 各中間段階で生成される出力は次の段階への入力として提供は、スライダーを使用、最後のフェーズに指定し、適切な出力を生成します。

このメソッドは、変換プロセスには直接結び付けられていない追加の処理用の中間のフェーズでは、生成される出力を保持する必要がある場合に便利です。 このトピックに関する追加情報とコード サンプルは、その使用法を示していますがをクリックして資料以下「サポート技術情報」(Microsoft Knowledge Base) 資料を参照。
320847[HOW TO パイプラインでアプリケーションの XSLT 変換

パラメーター化された XSLT 変換

スタイル シートでパラメーターを使用し、定義するには、一般的な XSLT 方法です。 パラメーター化された XSLT スタイル シートでは、<xsl:param> 要素を使用して XPath クエリ式を検索し、ソース XML データ内のノードの変換で参照されているパラメーターを定義をします。 定義されたパラメーターの値はスタイル シートでハードコーディングしたり、実行時に指定できます。 動的に、変換プロセスを制御する入力パラメーターの値を指定するの後者のプラクティスは、この機能の最も一般的な使用法です。

.NET アプリケーションでは、 XsltArgumentList オブジェクトが実行時に XSLT パラメーターの値を指定するに使用します。 AddParam メソッドは、スタイル シートとその価値 XsltArgumentList オブジェクトで定義されているパラメーターを表す名前-値のペアを追加するには使用されます。 XsltArgumentList オブジェクトは、変換の実行に使用される XslTransform オブジェクトの 変換 </a0> メソッドの実行時パラメーターとして指定します。

GetParam RemoveParam メソッドにアクセスし、 XsltArgumentList オブジェクトに追加される各パラメーターを削除するには使用されます。 .NET アプリケーションでパラメーター化された XSLT 変換を実行する方法についてはをクリック資料以下、「サポート技術情報」(Microsoft Knowledge Base) を表示します。
321704方法: .NET アプリケーションでパラメーター化された XSL 変換を実行します。

インライン スクリプト ブロック

インライン スクリプト関数は、オプションのユーザー定義関数を実装し、XSLT スタイル シートで使用されている XPath クエリ式で参照されているプロシージャの Sub を使用しての 1 つです。 XSLT スタイル シートにインライン スクリプト ブロックを含める機能は、W3C 拡張機能です。

.NET Framework では、カスタム インライン関数とサブルーチンは XSLT スタイル シートで <msxsl:script> ブロックにコーディングします。 これらのルーチンを実装する Microsoft Visual Basic .NET または Microsoft Visual C# .NET などの Microsoft Visual Studio .NET プログラミング言語を使えます。

インライン スクリプト ブロックを使用して関連付けられている欠点の 1 つの XSLT スタイル シート移植-に加えることです。 テクノロジ、タグ、およびインライン スクリプト ブロックの実装に使用されるセマンティクスは、ベンダー固有の拡張機能 W3C XSLT 仕様は標準化しないことです。

XSLT スタイル シートを定義し、関連のセマンティクスを解釈およびコードの実行にするテクノロジの統合が可能な変換、XSLT プロセッサを使用して実行されるインライン スクリプト ブロックを正常に使用するしか使用できません。

.NET Framework では、マネージ アセンブリは生成で <msxsl:script> をインラインでコードが含まれているを実行するには、暗黙的を読み込まれたスクリプト ブロックを作成します。 変換処理の完了時に正しくアンロードされてからこれらのアセンブリを防止する .NET Framework では現在、既知の問題があります。 この異常になる可能性のメモリ使用量が増加する XSLT 変換を実行する対象となるスタイル シートが読み込まれた繰り返し場合があります。 ホスト プロセスがリサイクルされる場合にのみ、未リリース メモリは解放します。 この問題は、.NET Framework での追加についてはをクリック資料以下、資料の「サポート技術情報」(Microsoft Knowledge Base) を表示します。
316775PRB: アセンブリを作成してスクリプトを使用して XSLT によって負荷をアンロードできません。
Microsoft ASP.NET アプリケーションでこの問題解決するには、アプリケーションの存続中に一度だけ、影響を受けるスタイル シートを読み込む、ASP.NET キャッシュ) に影響を受けるスタイル シートをキャッシュでき、キャッシュされたバージョン変換の後再利用できます。

Windows フォームでコンソール アプリケーション、グローバル XslTransform オブジェクトのインスタンスをアプリケーションが起動したときに、影響を受けるスタイル シートを読み込むおよびそれ以降の変換を実行する使用できます。 これらの回避策は、XSLT 変換があるステートレスな環境 (たとえば、中間層の Enterprise Services コンポーネント) で実行する場合に適用されません。

マイクロソフトは、この問題を回避するカスタムの XPath 拡張関数を実装する XSLT 拡張オブジェクトを使用することを勧めします。

XSLT 拡張オブジェクト

マイクロソフトは、XSLT スタイル シートで使用されている XPath クエリ式でカスタム サブルーチンと参照される関数を実装する拡張オブジェクトを使用することを勧めします。

.NET アプリケーションで変換を実行して、拡張オブジェクトを使用し、実装する .NET Framework の DLL を作成できます。 おり、カスタム サブルーチンと関数が DLL に実装されている DLL コンポーネントのオブジェクトのインスタンス付属しています、実行時パラメーターとして XslTransform オブジェクトの 変換 メソッドを実行する XsltArgumentList オブジェクトを使用しています。

XsltArgumentList オブジェクトに拡張オブジェクトのインスタンスを追加するには、 XsltArgumentList クラスの AddExtensionObject メソッドを使用します。 使えます 取得 および拡張機能オブジェクトの 削除 メソッドにアクセスし、 XsltArgumentList オブジェクトに追加される拡張機能オブジェクト インスタンスを削除するには。

W3C XSLT 仕様の概念および拡張要素の使用に対応しておよびせず関数注意または参照基本テクノロジを使用してそれらを実装する必要があります。 定義し、関数とサブルーチン拡張オブジェクトで実装される参照をスタイル シートで標準ベースの XML 名前空間のプレフィックスを使用して必要があります。 ベンダー、テクノロジは、プラットフォーム、拡張オブジェクトの実装の側面に対処するに最適ですを選択できます。 概念と、.NET Framework で XSLT 拡張オブジェクトの使用に関する追加情報と .NET アプリケーションで XSLT 変換を実行する場合は、拡張オブジェクトを使用する方法を示すエンド ツー エンド アプリケーションを作成する手順はをクリックして資料以下「サポート技術情報」(Microsoft Knowledge Base) 資料を参照。
321702Visual Basic .NET アプリケーションで XSL 変換を実行すると、拡張オブジェクトが使用する方法。

.NET Framework クラスを使用して XSLT 変換を実行するの一般的なガイドライン

  • XPathDocument クラスは、XSLT と XPath の処理に対して高度な最適化されます。 XSLT 変換を実行する中にソース XML を XPathDocument オブジェクトを使用する常に最適なパフォーマンスを得る。
  • キャッシュし、以降の変換を実行する頻繁に使用される XSLT スタイル シートの読み込みに使用される XslTransform </a0> オブジェクトを再利用できます。
  • XSLT プロセッサは XSLT 変換で使用されている拡張オブジェクトのインスタンスを自動的にキャッシュしません。 キャッシュし、後変換を実行するときに頻繁に使用される XSLT スタイル シートの拡張機能オブジェクトのインスタンスを提供する使用される XsltArgumentList オブジェクトを再利用できます。 これは、.NET Framework での XSLT 変換で使用するキャッシュ拡張オブジェクトにメソッドです。
  • インライン スクリプト ブロックを実装する XSLT スタイル シートの 1 回読み込まれたし、キャッシュだけあります。 変換後のキャッシュされた XslTransform オブジェクトを再利用する必要があります。 この実習は、スタイル シートでインライン スクリプト関数を使用する必要があるときに、「サポート技術情報」(Microsoft Knowledge Base) 資料 Q316775 に記載がいるメモリ管理問題を解決するに使えます。
  • マイクロソフトは、XSLT スタイル シートで使用されている XPath クエリ式で参照されているカスタム関数を実装する拡張オブジェクトを使用することを勧めします。 実装し、 XPathNavigator と DOM クラスを使用して .NET アプリケーションで実行される XPath クエリ式でのカスタム拡張関数を参照する場合にだけは、カスタムの XsltContext IXsltContextFunction IXsltContextVariable クラスを実装します。
  • 例外処理の XSLT 変換を実行するコードを記述する場合に、 XsltCompileException XsltException 、および XmlException の .NET 例外クラスを処理するコードを実装します。 これらの例外クラスは、XSLT 固有または XML 固有の XSLT 変換を実行しようとしたときに発生する問題に関する情報を提供します。 また、他の特定の .NET 例外を処理するコードを実装することおよび XSLT 変換を実行するコード ブロックで実装されているほか、XSLT 関連以外の機能に基づいて、汎用 System.Exception クラスを実装することお勧めします。

.NET Framework での XSLT 変換のパフォーマンス

関連情報、その原因と、.NET アプリケーションでは、XSLT 変換を実行する場合に、既知のパフォーマンス問題の解決策については、クリックして資料以下「サポート技術情報」(Microsoft Knowledge Base) 資料を参照します。
325689.NET Framework での XSLT 変換の情報: パフォーマンス

トラブルシューティング

問題が発生したり、疑問が生じたりした場合は、MSDN ニュースグループを参照して、他のユーザーと問題を共有できます。 マイクロソフト サポート技術に関する特定の問題に関する記事を検索またはマイクロソフト製品サポート サービスにお問い合わせくださいできますも使えます。
MSDN ニュースグループ
http://msdn.microsoft.com/newsgroups/

サポート情報の検索
http://support.microsoft.com/search

マイクロソフト製品サポート サービス
http://support.microsoft.com

関連情報

詳細については %1 をクリック資料 %2 以下「サポート技術情報」(Microsoft Knowledge Base) 資料 %2 を表示します。
313651.NET Framework での XML の情報: ロードマップ

プロパティ

文書番号: 313997 - 最終更新日: 2005年8月12日 - リビジョン: 4.4
この資料は以下の製品について記述したものです。
  • Microsoft .NET Framework 1.1
  • Microsoft .NET Framework 1.0
キーワード:?
kbinfo kbarttyperoadmap kbmt KB313997 KbMtja
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。
英語版 KB:313997
Microsoft Knowledge Base の免責: Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。

フィードバック

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com