次の方法で共有


XslTransform.Load メソッド (XPathNavigator, XmlResolver, Evidence)

メモ : この名前空間、クラス、およびメンバは、.NET Framework Version 1.1 だけでサポートされています。

XPathNavigator に格納されている XSLT スタイル シートを読み込みます。このメソッドを使用すると、証拠を指定することによって、スタイルシートのアクセス許可を制限できます。

Overloads Public Sub Load( _
   ByVal stylesheet As XPathNavigator, _   ByVal resolver As XmlResolver, _   ByVal evidence As Evidence _)
[C#]
public void Load(XPathNavigatorstylesheet,XmlResolverresolver,Evidenceevidence);
[C++]
public: void Load(XPathNavigator* stylesheet,XmlResolver* resolver,Evidence* evidence);
[JScript]
public function Load(
   stylesheet : XPathNavigator,resolver : XmlResolver,evidence : Evidence);

パラメータ

  • stylesheet
    読み込むスタイルシートを格納している XPathNavigator オブジェクト。

  • resolver
    xsl:import 要素および xsl:include 要素で参照される任意のスタイル シートを読み込むために使用される XmlResolver 。これが null 参照 (Visual Basic では Nothing) の場合は、外部リソースが解決されません。

    Load メソッドが完了した後、 XmlResolver がキャッシュされていません。

  • evidence
    XSLT スタイルシート内のスクリプト ブロックに対して生成されたアセンブリに設定された System.Security.Policy.Evidence

    これが null 参照 (Visual Basic では Nothing) の場合、スクリプト ブロックは処理されません。また、XSLT の document() 関数はサポートされず、特権拡張機能オブジェクトは許可されません。

    呼び出し元には、スクリプト アセンブリの証拠を提供するための ControlEvidence アクセス許可が必要です。信頼度の低い呼び出し元は、このパラメータを null 参照 (Nothing) に設定できます。

例外

例外の種類 条件
XsltCompileException 現在のノードは、有効なスタイル シートに準拠していません。
SecurityException 参照されるスタイルシートは、提供された証拠で許可されない機能を要求します。

呼び出し元は証拠を提供しようとしましたが、 ControlEvidence アクセス許可を持っていません。

解説

XslTransform は、XSLT 1.0 構文をサポートしています。XSLT スタイル シートには、名前空間宣言 xmlns:xsl= http://www.w3.org/1999/XSL/Transform を含める必要があります。

スタイル シートは、 XPathNavigator の現在位置から読み込まれます。読み込まれたドキュメントの一部をスタイル シートとして使用するには、スタイル シートの先頭に対応するノードに移動します。Load メソッドが返されると、 XPathNavigator は、スタイル シートの先頭 (xsl:stylesheet ノード上) に配置されます。

証拠を提供するにはさまざまな方法があります。一般的なユーザー シナリオに対してどの種類の証拠を提供するかを次の表に示します。

シナリオ 提供する証拠の種類
XSLT スタイルシートは、単体で使用できるものか、信頼するコード ベースのものです。 アセンブリからの証拠を使用します。

XsltTransform xslt = new XslTransform();

xslt.Load(xslNav, resolver, this.GetType().Assembly.Evidence);

XSLT スタイルシートは外部ソースのものです。ソースの起点は既知であり、検証可能な URL があります。 URL を使用して証拠を作成します。

XsltTransform xslt = new XslTransform();

Evidence evidence = XmlSecureResolver.CreateEvidenceForUrl(stylesheetURL);

xslt.Load(xslNav,resolver,evidence);

XSLT スタイルシートは外部ソースのものです。ソースの起点が既知ではありません。 証拠を null 参照 (Visual Basic では Nothing) に設定します。スクリプト ブロックは処理されません。また、XSLT の document() 関数はサポートされず、特権拡張機能オブジェクトは許可されません。

さらに、 resolver パラメータを null 参照 (Nothing) に設定することもできます。これによって、 xsl:import 要素および xsl:include 要素が処理されないことが保証されます。

XSLT スタイルシートは外部ソースのものです。ソースの起点は既知ではありませんが、スクリプト サポートは必要です。 読み出し元から証拠を要求します。呼び出し元の API は、証拠、一般的には Evidence クラス、を提供する方法を提供する必要があります。

使用例

[Visual Basic, C#, C++] 外部ソースのスタイルシートを使用して XSLT 変換を実行する例を次に示します。スタイルシートのソースは信頼できません。したがって、 resolver パラメータと evidence パラメータは null 参照 (Visual Basic では Nothing) に設定されています。

 

   public shared sub TransformFile (xsltNav as XPathNavigator) 
    
    ' Load the stylesheet.
    Dim xslt as XslTransform = new XslTransform()
    xslt.Load(xsltNav, nothing, nothing)

    ' Transform the file.
    xslt.Transform("books.xml", "books.html", nothing)
   end sub

[C#] 

   public static void TransformFile (XPathNavigator xsltNav) {
    
    // Load the stylesheet. 
    XslTransform xslt = new XslTransform();
    xslt.Load(xsltNav, null, null);

    // Transform the file.
    xslt.Transform("books.xml", "books.html", null);
   } 

[C++] 

void TransformFile (XPathNavigator* xsltNav) {

    // Load the stylesheet. 
    XslTransform* xslt = new XslTransform();
    xslt->Load(xsltNav, 0, 0);

    // Transform the file.
    xslt->Transform(S"books.xml", S"books.html", 0);
} 

[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン 言語のフィルタ をクリックします。

必要条件

プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

.NET Framework セキュリティ:

参照

XslTransform クラス | XslTransform メンバ | System.Xml.Xsl 名前空間 | XslTransform.Load オーバーロードの一覧 | XmlResolver.Credentials | NetworkCredential | CredentialCache | 証拠 | System.Security.SecurityZone | XmlSecureResolver | XmlSecureResolver.CreateEvidenceForUrl