XslCompiledTransform XslCompiledTransform XslCompiledTransform XslCompiledTransform Class

Definition

XSLT スタイル シートを使用して、XML データを変換します。 Transforms XML data using an XSLT style sheet.

public ref class XslCompiledTransform sealed
public sealed class XslCompiledTransform
type XslCompiledTransform = class
Public NotInheritable Class XslCompiledTransform
Inheritance
XslCompiledTransformXslCompiledTransformXslCompiledTransformXslCompiledTransform

Examples

次の例では、変換を実行して、ファイルに出力します。The following example executes a transform and outputs to a file.

// 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");
' Load the style sheet.
Dim xslt As New XslCompiledTransform()
xslt.Load("output.xsl")
        
' Execute the transform and output the results to a file.
xslt.Transform("books.xml", "books.html")

このサンプルでは、次の 2 つの入力ファイルを使用します。The sample uses the following two input files:

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>

Remarks

XslCompiledTransformクラスは、XSLT 1.0 構文をサポートする XSLT プロセッサです。The XslCompiledTransform class is an XSLT processor that supports the XSLT 1.0 syntax. 新しい実装であり、古い形式と比較した場合、パフォーマンスの向上が含まれていますXslTransformクラス。It is a new implementation and includes performance gains when compared to the obsolete XslTransform class. 構造、XslCompiledTransformクラスのとよく似ていますが、XslTransformクラス。The structure of the XslCompiledTransform class is very similar to the XslTransform class. Loadメソッドの読み込みおよびスタイルをコンパイル中に、シート、Transformメソッドは、XSLT 変換を実行します。The Load method loads and compiles the style sheet, while the Transform method executes the XSLT transform.

XSLT のサポートdocument()関数および埋め込みスクリプト ブロックは既定で無効になります。Support for the XSLT document() function and embedded script blocks are disabled by default. 作成して、これらの機能を有効にすることができます、XsltSettingsオブジェクトを渡すと、Loadメソッド。These features can be enabled by creating an XsltSettings object and passing it to the Load method.

詳細については、次を参照してください。 XslCompiledTransform クラスを使用してXslTransform クラスからの移行します。For more information, see Using the XslCompiledTransform Class and Migrating From the XslTransform Class.

セキュリティの考慮事項Security Considerations

XslCompiledTransform クラスを使用するアプリケーションを作成するときには、次の項目とその関連事項に注意する必要があります。When creating an application that uses the XslCompiledTransform class, you should be aware of the following items and their implications:

  • XSLT スクリプトは既定で無効になっています。XSLT scripting is disabled by default. XSLT スクリプトは、スクリプトのサポートが必要であり、完全に信頼された環境で作業している場合のみ有効にします。XSLT scripting should be enabled only if you require script support and you are working in a fully trusted environment.

  • XSLT document() 関数は既定で無効になっています。The XSLT document() function is disabled by default. document() 関数を有効にした場合は、XmlSecureResolver オブジェクトを Transform メソッドに渡すことによって、アクセス可能なリソースを制限してください。If you enable the document() function, restrict the resources that can be accessed by passing an XmlSecureResolver object to the Transform method.

  • 拡張オブジェクトは既定で有効になっています。Extension objects are enabled by default. 拡張オブジェクトを含む XsltArgumentList オブジェクトが Transform メソッドに渡されると、拡張オブジェクトは使用されます。If an XsltArgumentList object containing extension objects is passed to the Transform method, they are utilized.

  • XSLT スタイル シートには、他のファイルへの参照や埋め込みのスクリプト ブロックを含めることができます。XSLT style sheets can include references to other files and embedded script blocks. 悪意のあるユーザーがこれを悪用して、コンピューターがリソース不足に陥るまでシステムに処理を行わせようとするデータやスタイル シートを提供する可能性があります。A malicious user can exploit this by supplying you with data or style sheets that when executed can cause your system to process until the computer runs low on resources.

  • 混在信頼環境で動作する XSLT アプリケーションは、スタイル シートのなりすましを引き起こす可能性があります。XSLT applications that run in a mixed trust environment can result in style sheet spoofing. たとえば、悪意のあるユーザーは、有害なスタイル シートを含むオブジェクトを読み込み、それを Transform メソッドを呼び出して変換を実行する別のユーザーに渡す可能性があります。For example, a malicious user can load an object with a harmful style sheet and hand it off to another user who subsequently calls the Transform method and executes the transformation.

これらのセキュリティ上の問題は、スタイル シートが信頼されたソースからのものでない限り、スクリプトや document() 関数を有効にしないこと、および信頼されていないソースからの XslCompiledTransform オブジェクト、XSLT スタイル シート、または XML ソース データを受け入れないことによって軽減できます。These security issues can be mitigated by not enabling scripting or the document() function unless the style sheet comes from a trusted source, and by not accepting XslCompiledTransform objects, XSLT style sheets, or XML source data from an untrusted source.

Constructors

XslCompiledTransform() XslCompiledTransform() XslCompiledTransform() XslCompiledTransform()

XslCompiledTransform クラスの新しいインスタンスを初期化します。 Initializes a new instance of the XslCompiledTransform class.

XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) XslCompiledTransform(Boolean) XslCompiledTransform(Boolean)

XslCompiledTransform クラスの新しいインスタンスを、指定されたデバッグ設定を使用して初期化します。 Initializes a new instance of the XslCompiledTransform class with the specified debug setting.

Properties

OutputSettings OutputSettings OutputSettings OutputSettings

スタイル シートの xsl:output 要素から派生した出力情報が格納された XmlWriterSettings オブジェクトを取得します。 Gets an XmlWriterSettings object that contains the output information derived from the xsl:output element of the style sheet.

TemporaryFiles TemporaryFiles TemporaryFiles TemporaryFiles

TempFileCollection メソッドの呼び出しが正常に完了した後でディスク上に作成される一時ファイルが格納された Load を取得します。 Gets the TempFileCollection that contains the temporary files generated on disk after a successful call to the Load method.

Methods

CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String) CompileToType(XmlReader, XsltSettings, XmlResolver, Boolean, TypeBuilder, String)

XSLT スタイル シートを指定された型にコンパイルします。 Compiles an XSLT style sheet to a specified type.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

指定したオブジェクトが、現在のオブジェクトと等しいかどうかを判断します。 Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetHashCode() GetHashCode() GetHashCode() GetHashCode()

既定のハッシュ関数として機能します。 Serves as the default hash function.

(Inherited from Object)
GetType() GetType() GetType() GetType()

現在のインスタンスの Type を取得します。 Gets the Type of the current instance.

(Inherited from Object)
Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable) Load(IXPathNavigable)

IXPathNavigable オブジェクトに格納されているスタイル シートをコンパイルします。 Compiles the style sheet contained in the IXPathNavigable object.

Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver) Load(IXPathNavigable, XsltSettings, XmlResolver)

IXPathNavigable に格納されている XSLT スタイル シートをコンパイルします。 Compiles the XSLT style sheet contained in the IXPathNavigable. XmlResolver は、XSLT の import 要素または include 要素を解決し、XSLT 設定でスタイル シートに対するアクセス許可を確認します。 The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

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

XSLTC.exe ユーティリティを使用してコンパイルされたスタイル シートからメソッドを読み込みます。 Loads a method from a style sheet compiled using the XSLTC.exe utility.

Load(String) Load(String) Load(String) Load(String)

指定された URI にあるスタイル シートの読み込みおよびコンパイルを行います。 Loads and compiles the style sheet located at the specified URI.

Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver) Load(String, XsltSettings, XmlResolver)

URI で指定された XSLT スタイル シートの読み込みおよびコンパイルを行います。 Loads and compiles the XSLT style sheet specified by the URI. XmlResolver は、XSLT の import 要素または include 要素を解決し、XSLT 設定でスタイル シートに対するアクセス許可を確認します。 The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

Load(Type) Load(Type) Load(Type) Load(Type)

XSLT コンパイラ (xsltc.exe) を使用して作成されたコンパイル済みスタイル シートを読み込みます。 Loads the compiled style sheet that was created using the XSLT Compiler (xsltc.exe).

Load(XmlReader) Load(XmlReader) Load(XmlReader) Load(XmlReader)

XmlReader に格納されているスタイル シートをコンパイルします。 Compiles the style sheet contained in the XmlReader.

Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver) Load(XmlReader, XsltSettings, XmlResolver)

XmlReader に格納されている XSLT スタイル シートをコンパイルします。 Compiles the XSLT style sheet contained in the XmlReader. XmlResolver は、XSLT の import 要素または include 要素を解決し、XSLT 設定でスタイル シートに対するアクセス許可を確認します。 The XmlResolver resolves any XSLT import or include elements and the XSLT settings determine the permissions for the style sheet.

MemberwiseClone() MemberwiseClone() MemberwiseClone() MemberwiseClone()

現在の Object の簡易コピーを作成します。 Creates a shallow copy of the current Object.

(Inherited from Object)
ToString() ToString() ToString() ToString()

現在のオブジェクトを表す文字列を返します。 Returns a string that represents the current object.

(Inherited from Object)
Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter) Transform(IXPathNavigable, XmlWriter)

IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter.

Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream) Transform(IXPathNavigable, XsltArgumentList, Stream)

IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をストリームに出力します。 Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to a stream. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional runtime arguments.

Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter) Transform(IXPathNavigable, XsltArgumentList, TextWriter)

IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を TextWriter に出力します。 Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an TextWriter. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter) Transform(IXPathNavigable, XsltArgumentList, XmlWriter)

IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform using the input document specified by the IXPathNavigable object and outputs the results to an XmlWriter. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional run-time arguments.

Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver) Transform(IXPathNavigable, XsltArgumentList, XmlWriter, XmlResolver)

IXPathNavigable オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform by using the input document that is specified by the IXPathNavigable object and outputs the results to an XmlWriter. XsltArgumentList には追加の実行時引数を指定し、XmlResolver で XSLT の document() 関数を解決します。 The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Transform(String, String) Transform(String, String) Transform(String, String) Transform(String, String)

URI で指定された入力ドキュメントを使用して変換を実行し、結果をファイルに出力します。 Executes the transform using the input document specified by the URI and outputs the results to a file.

Transform(String, XmlWriter) Transform(String, XmlWriter) Transform(String, XmlWriter) Transform(String, XmlWriter)

URI で指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter.

Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream) Transform(String, XsltArgumentList, Stream)

URI で指定された入力ドキュメントを使用して変換を実行し、結果をストリームに出力します。 Executes the transform using the input document specified by the URI and outputs the results to stream. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional run-time arguments.

Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter) Transform(String, XsltArgumentList, TextWriter)

URI で指定された入力ドキュメントを使用して変換を実行し、結果を TextWriter に出力します。 Executes the transform using the input document specified by the URI and outputs the results to a TextWriter.

Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter) Transform(String, XsltArgumentList, XmlWriter)

URI で指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform using the input document specified by the URI and outputs the results to an XmlWriter. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter) Transform(XmlReader, XmlWriter)

XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter.

Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream) Transform(XmlReader, XsltArgumentList, Stream)

XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果をストリームに出力します。 Executes the transform using the input document specified by the XmlReader object and outputs the results to a stream. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter) Transform(XmlReader, XsltArgumentList, TextWriter)

XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を TextWriter に出力します。 Executes the transform using the input document specified by the XmlReader object and outputs the results to a TextWriter. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter) Transform(XmlReader, XsltArgumentList, XmlWriter)

XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. XsltArgumentList には、追加の実行時引数を指定します。 The XsltArgumentList provides additional run-time arguments.

Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver) Transform(XmlReader, XsltArgumentList, XmlWriter, XmlResolver)

XmlReader オブジェクトで指定された入力ドキュメントを使用して変換を実行し、結果を XmlWriter に出力します。 Executes the transform using the input document specified by the XmlReader object and outputs the results to an XmlWriter. XsltArgumentList には追加の実行時引数を指定し、XmlResolver で XSLT の document() 関数を解決します。 The XsltArgumentList provides additional run-time arguments and the XmlResolver resolves the XSLT document() function.

Applies to

Thread Safety

XslCompiledTransformが読み込まれた後、オブジェクトがスレッド セーフであります。 The XslCompiledTransform object is thread safe once it has been loaded. つまり、後に、Loadメソッドが正常に完了すると、Transformメソッドは複数のスレッドから同時に呼び出すことができます。 In other words, after the Load method has successfully completed, the Transform method can be called simultaneously from multiple threads. 場合、Load中に 1 つのスレッドでメソッドが再度呼び出される、Transformメソッドが別のスレッドで呼び出される、XslCompiledTransformオブジェクトでは、実行が完了すると、Transform以前の状態の使用を継続して、呼び出します。 If the Load method is called again in one thread while the Transform method is being called in another thread, the XslCompiledTransform object finishes executing the Transform call by continuing to use the old state. 新しい状態が使用されるときに、Loadメソッドが正常に完了します。 The new state is used when the Load method successfully completes.

Loadメソッドはスレッド セーフである複数のスレッドから同時に呼び出されたときにではありません。 The Load method is not thread safe when called simultaneously from multiple threads.

See Also