外部の XSLT スタイル シートとドキュメントの解決

更新 : November 2007

変換中には、外部リソースの解決が必要になるときがあります。

メモ :

.NET Framework version 2.0 では、XslTransform クラスが廃止されています。XslCompiledTransform クラスを使用して XSLT (Extensible Stylesheet Language for Transformations) 変換を実行できます。詳細については、「XslCompiledTransform クラスの使用」および「XslTransform クラスからの移行」を参照してください。

変換中には、外部リソースの解決が必要になるときがあります。

  • Load メソッドの実行時における外部スタイル シートの検索。

  • Load メソッドの実行時におけるスタイル シート内の <xsl:include> 要素または <xsl:import> 要素の解決。

  • Transform メソッドの実行時におけるすべての document() 関数の解決。

XmlResolver クラスの使い方

ネットワーク リソースにアクセスするのに認証が必要な場合は、XmlResolver パラメータを持っている Load メソッドを使用して、必要な資格情報プロパティが設定された XmlResolver オブジェクトを渡します。

独自の XmlResolver を使用する場合や、異なる資格情報を指定する必要がある場合は、次の表に示すように、解決する必要のある外部リソースの処理に応じて、適切な作業を実行する必要があります。

解決する必要のある処理

必要な作業タスク

Load メソッドの実行時におけるスタイル シートの検索。

スタイル シートが資格情報を必要とするリソース上にある場合は、XmlResolver をパラメータとして受け取るオーバーロードされた Load メソッドを指定します。

Load メソッドの実行時における <xsl:include> または <xsl:import> の解決。

XmlResolver をパラメータとして受け取るオーバーロードされた Load メソッドを指定します。XmlResolver を使用して、import ステートメントまたは include ステートメントが参照しているスタイル シートを読み込みます。null を渡すと、外部リソースは解決されません。

変換中のすべての document() 関数の解決。

XmlResolver 引数を受け取る Transform メソッドを使用して、変換中に XmlResolver を指定します。

document() 関数は、入力ストリームで提供される XML 初期データの他に、スタイル シートから別の XML リソースを取得します。この関数には別の場所にある XML データを含めることができるため、null 値が設定された XmlResolverTransform メソッドに渡すと、document() 関数は実行されません。document() 関数を使用する場合は、適切なアクセス許可セットを取得したうえで、XmlResolver をパラメータとして受け取る Transform メソッドを使用します。

Load メソッドと、このメソッドでの XmlResolver の使い方の詳細については、「XslTransform.Load(String, XmlResolver)」を参照してください。XmlResolver クラスの詳細については、「XmlResolver を使用したリソースの解決」と「XmlResolver Class」を参照してください。

Transform メソッドを呼び出すと、読み込み時に指定された証拠に基づいてアクセス許可が計算され、そのアクセス許可セットが変換処理全体に割り当てられます。document() 関数で、アクセス許可セットにないアクセス許可を必要とする処理を実行しようとすると、例外がスローされます。

参照

概念

XslTransform クラスを使用した XSLT 変換

XslTransform クラスによる XSLT プロセッサの実装

XslTransform からの出力

異なるストアでの XSLT 変換

スタイル シート パラメータと拡張オブジェクト用の XsltArgumentList

<msxsl:script> を使用した XSLT スタイルシートのスクリプト

msxsl:node-set() 関数のサポート

変換における XPathNavigator

変換における XPathNodeIterator

XslTransform への XPathDocument の入力

XslTransform への XmlDataDocument の入力

XslTransform への XmlDocument の入力