この記事は機械翻訳されています。英語版の記事を表示するには、[英語] のチェック ボックスをオンにしてください。また、テキストにマウス ポインターを合わせると、ポップアップ ウィンドウに英語のテキストを表示することもできます。
翻訳
英語

XslCompiledTransform クラス

 

公開日: 2016年11月

XSLT スタイル シートを使用して、XML データを変換します。

名前空間:   System.Xml.Xsl
アセンブリ:  System.Xml (System.Xml.dll 内)

System.Object
  System.Xml.Xsl.XslCompiledTransform

public sealed class XslCompiledTransform

名前説明
System_CAPS_pubmethodXslCompiledTransform()

XslCompiledTransform クラスの新しいインスタンスを初期化します。

System_CAPS_pubmethodXslCompiledTransform(Boolean)

新しいインスタンスを初期化、 XslCompiledTransform クラスを指定したデバッグ設定を使用します。

名前説明
System_CAPS_pubpropertyOutputSettings

取得、 XmlWriterSettings から派生した出力情報を格納しているオブジェクト、 xsl:output スタイル シートの要素。

System_CAPS_pubpropertyTemporaryFiles

取得、 TempFileCollection ディスク上に呼び出しが成功した後に生成された一時ファイルを含む、 Load メソッドです。

名前説明
System_CAPS_pubmethodSystem_CAPS_staticCompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String)

XSLT スタイル シートを指定された型にコンパイルします。

System_CAPS_pubmethodEquals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。(Object から継承されます。)

System_CAPS_pubmethodGetHashCode()

既定のハッシュ関数として機能します。(Object から継承されます。)

System_CAPS_pubmethodGetType()

現在のインスタンスの Type を取得します。(Object から継承されます。)

System_CAPS_pubmethodLoad(IXPathNavigable)

含まれているスタイル シートがコンパイルされ、 IXPathNavigable オブジェクトです。

System_CAPS_pubmethodLoad(IXPathNavigable, XsltSettings, XmlResolver)

含まれている XSLT スタイル シートがコンパイルされ、 IXPathNavigableです。 XmlResolver XSLT が解決 import または include 要素と、XSLT 設定は、スタイル シートのアクセス許可を確認します。

System_CAPS_pubmethodLoad(MethodInfo, Byte[], Type[])

使用してコンパイルされたスタイル シートからメソッドを読み込み、 XSLTC.exe ユーティリティです。

System_CAPS_pubmethodLoad(String)

指定された URI にあるスタイル シートの読み込みおよびコンパイルを行います。

System_CAPS_pubmethodLoad(String, XsltSettings, XmlResolver)

URI で指定された XSLT スタイル シートの読み込みおよびコンパイルを行います。 XmlResolver XSLT が解決 import または include 要素と、XSLT 設定は、スタイル シートのアクセス許可を確認します。

System_CAPS_pubmethodLoad(Type)

使用して作成されたコンパイル済みスタイル シートを読み込み、 XSLT コンパイラ (xsltc.exe)です。

System_CAPS_pubmethodLoad(XmlReader)

含まれているスタイル シートがコンパイルされ、 XmlReaderです。

System_CAPS_pubmethodLoad(XmlReader, XsltSettings, XmlResolver)

含まれている XSLT スタイル シートがコンパイルされ、 XmlReaderです。 XmlResolver XSLT が解決 import または include 要素と、XSLT 設定は、スタイル シートのアクセス許可を確認します。

System_CAPS_pubmethodToString()

現在のオブジェクトを表す文字列を返します。(Object から継承されます。)

System_CAPS_pubmethodTransform(IXPathNavigable, XmlWriter)

指定された入力ドキュメントを使用して変換を実行、 IXPathNavigable オブジェクトし、結果を出力、 XmlWriterです。

System_CAPS_pubmethodTransform(IXPathNavigable, XsltArgumentList, Stream)

指定された入力ドキュメントを使用して変換を実行、 IXPathNavigable オブジェクトし、結果ストリームを出力します。 XsltArgumentList 追加のランタイム引数を提供します。

System_CAPS_pubmethodTransform(IXPathNavigable, XsltArgumentList, TextWriter)

指定された入力ドキュメントを使用して変換を実行、 IXPathNavigable オブジェクトし、結果を出力、 TextWriterです。 XsltArgumentList 追加の実行時引数を提供します。

System_CAPS_pubmethodTransform(IXPathNavigable, XsltArgumentList, XmlWriter)

指定された入力ドキュメントを使用して変換を実行、 IXPathNavigable オブジェクトし、結果を出力、 XmlWriterです。 XsltArgumentList 追加の実行時引数を提供します。

System_CAPS_pubmethodTransform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 XsltArgumentList には追加の実行時引数を指定し、XmlResolver は XSLT の document()関数を解決します。

System_CAPS_pubmethodTransform(String, String)

URI で指定された入力ドキュメントを使用して変換を実行し、結果をファイルに出力します。

System_CAPS_pubmethodTransform(String, XmlWriter)

URI で指定された入力ドキュメントを使用して変換を実行し、結果を出力、 XmlWriterです。

System_CAPS_pubmethodTransform(String, XsltArgumentList, Stream)

URI で指定された入力ドキュメントを使用して変換を実行し、結果をストリームに出力します。 XsltArgumentList 追加の実行時引数を提供します。

System_CAPS_pubmethodTransform(String, XsltArgumentList, TextWriter)

URI で指定された入力ドキュメントを使用して変換を実行し、結果を出力する TextWriterです。

System_CAPS_pubmethodTransform(String, XsltArgumentList, XmlWriter)

URI で指定された入力ドキュメントを使用して変換を実行し、結果を出力、 XmlWriterです。 XsltArgumentList 追加の実行時引数を提供します。

System_CAPS_pubmethodTransform(XmlReader, XmlWriter)

指定された入力ドキュメントを使用して変換を実行、 XmlReader オブジェクトし、結果を出力、 XmlWriterです。

System_CAPS_pubmethodTransform(XmlReader, XsltArgumentList, Stream)

指定された入力ドキュメントを使用して変換を実行、 XmlReader オブジェクトし、結果ストリームを出力します。 XsltArgumentList 追加の実行時引数を提供します。

System_CAPS_pubmethodTransform(XmlReader, XsltArgumentList, TextWriter)

指定された入力ドキュメントを使用して変換を実行、 XmlReader オブジェクトし、結果を出力する TextWriterです。 XsltArgumentList 追加の実行時引数を提供します。

System_CAPS_pubmethodTransform(XmlReader, XsltArgumentList, XmlWriter)

指定された入力ドキュメントを使用して変換を実行、 XmlReader オブジェクトし、結果を出力、 XmlWriterです。 XsltArgumentList 追加の実行時引数を提供します。

System_CAPS_pubmethodTransform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

指定された入力ドキュメントを使用して変換を実行、 XmlReader オブジェクトし、結果を出力、 XmlWriterです。 XsltArgumentList 、追加の実行時引数と XmlResolver 解決 XSLT document() 関数です。

XslCompiledTransform クラスは、XSLT 1.0 構文をサポートする XSLT プロセッサです。 新たに実装されて、廃止されたと比較した場合、パフォーマンスの向上を含む XslTransform クラスです。 構造、 XslCompiledTransform クラスとよく似ていますが、 XslTransform クラスです。 Load メソッドの読み込みおよびスタイルをコンパイル中に、2 枚、 Transform メソッドは、XSLT 変換を実行します。

XSLT のサポート document() 関数と埋め込みのスクリプト ブロックが既定で無効になります。 作成することで、これらの機能を有効にすることができます、 XsltSettings オブジェクトを渡すと、 Load メソッドです。

詳細については、XslCompiledTransform クラスの使用 および XslTransform クラスからの移行 を参照してください。

XslCompiledTransform クラスを使用するアプリケーションを作成するときには、次の項目とその関連事項に注意する必要があります。

  • XSLT スクリプトは既定で無効になっています。 XSLT スクリプトは、スクリプトのサポートが必要であり、完全に信頼された環境で作業している場合のみ有効にします。

  • XSLT document() 関数は既定で無効になっています。 document() 関数を有効にした場合は、XmlSecureResolver オブジェクトを Transform メソッドに渡すことによって、アクセス可能なリソースを制限してください。

  • 拡張オブジェクトは既定で有効になっています。 拡張オブジェクトを含む XsltArgumentList オブジェクトが Transform メソッドに渡されると、拡張オブジェクトは使用されます。

  • XSLT スタイル シートには、他のファイルへの参照や埋め込みのスクリプト ブロックを含めることができます。 悪意のあるユーザーがこれを悪用して、コンピューターがリソース不足に陥るまでシステムに処理を行わせようとするデータやスタイル シートを提供する可能性があります。

  • 混在信頼環境で動作する XSLT アプリケーションは、スタイル シートのなりすましを引き起こす可能性があります。 たとえば、悪意のあるユーザーは、有害なスタイル シートを含むオブジェクトを読み込み、それを Transform メソッドを呼び出して変換を実行する別のユーザーに渡す可能性があります。

これらのセキュリティ上の問題は、スタイル シートが信頼されたソースからのものでない限り、スクリプトや document() 関数を有効にしないこと、および信頼されていないソースからの XslCompiledTransform オブジェクト、XSLT スタイル シート、または XML ソース データを受け入れないことによって軽減できます。

次の例では、変換を実行して、ファイルに出力します。

// Load the style sheet.
XslCompiledTransform xslt = new XslCompiledTransform();
xslt.Load("output.xsl");

// Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html");

このサンプルでは、次の 2 つの入力ファイルを使用します。

books.xml

<?xml version='1.0'?>
<!-- This file represents a fragment of a book store inventory database -->
<bookstore>
  <book genre="autobiography" publicationdate="1981" ISBN="1-861003-11-0">
    <title>The Autobiography of Benjamin Franklin</title>
    <author>
      <first-name>Benjamin</first-name>
      <last-name>Franklin</last-name>
    </author>
    <price>8.99</price>
  </book>
  <book genre="novel" publicationdate="1967" ISBN="0-201-63361-2">
    <title>The Confidence Man</title>
    <author>
      <first-name>Herman</first-name>
      <last-name>Melville</last-name>
    </author>
    <price>11.99</price>
  </book>
  <book genre="philosophy" publicationdate="1991" ISBN="1-861001-57-6">
    <title>The Gorgias</title>
    <author>
      <name>Plato</name>
    </author>
    <price>9.99</price>
  </book>
</bookstore>

output.xsl

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="bookstore">
  <HTML>
    <BODY>
      <TABLE BORDER="2">
        <TR>
          <TD>ISBN</TD>
          <TD>Title</TD>
          <TD>Price</TD>
        </TR>
        <xsl:apply-templates select="book"/>
      </TABLE>
    </BODY>
  </HTML>
</xsl:template>
<xsl:template match="book">
  <TR>
    <TD><xsl:value-of select="@ISBN"/></TD>
    <TD><xsl:value-of select="title"/></TD>
    <TD><xsl:value-of select="price"/></TD>
  </TR>
</xsl:template>
</xsl:stylesheet>

.NET Framework
2.0 以降で使用可能

XslCompiledTransform が読み込まれた後、オブジェクトはスレッド セーフです。 つまり、後に、 Load メソッドが正常に完了すると、 Transform メソッドは複数のスレッドから同時に呼び出すことができます。

場合、 Load 中に 1 つのスレッドでメソッドが再度呼び出され、 Transform メソッドが別のスレッドで呼び出される、 XslCompiledTransform オブジェクトは、実行が完了した、 Transform を引き続き以前の状態を使用して呼び出します。 新しい状態が使用されるときに、 Load メソッドが正常に完了します。

System_CAPS_noteメモ

Load メソッドはスレッド セーフの複数のスレッドから同時に呼び出されたときではありません。

トップに戻る
表示: