XslCompiledTransform 클래스

정의

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
상속
XslCompiledTransform

예제

다음 예제에서는 변환을 실행 하 고 파일에 출력 합니다.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")

이 샘플에서는 다음 두 개의 입력된 파일 사용: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>

설명

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 클래스를 사용 하 여 하 고 the 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.

생성자

XslCompiledTransform()

XslCompiledTransform 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the XslCompiledTransform class.

XslCompiledTransform(Boolean)

지정된 디버그 설정을 사용하여 XslCompiledTransform 클래스의 새 인스턴스를 초기화합니다.Initializes a new instance of the XslCompiledTransform class with the specified debug setting.

속성

OutputSettings

스타일시트의 xsl:output 요소에서 파생된 출력 정보를 포함하는 XmlWriterSettings 개체를 가져옵니다.Gets an XmlWriterSettings object that contains the output information derived from the xsl:output element of the style sheet.

TemporaryFiles

TempFileCollection 메서드가 성공적으로 호출된 이후에 디스크에 생성된 임시 파일이 들어 있는 Load을 가져옵니다.Gets the TempFileCollection that contains the temporary files generated on disk after a successful call to the Load method.

메서드

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

XSLT 스타일시트를 지정된 형식으로 컴파일합니다.Compiles an XSLT style sheet to a specified type.

Equals(Object)

지정한 개체와 현재 개체가 같은지 여부를 확인합니다.Determines whether the specified object is equal to the current object.

(다음에서 상속됨 Object)
GetHashCode()

기본 해시 함수로 작동합니다.Serves as the default hash function.

(다음에서 상속됨 Object)
GetType()

현재 인스턴스의 Type을 가져옵니다.Gets the Type of the current instance.

(다음에서 상속됨 Object)
Load(IXPathNavigable)

IXPathNavigable 개체에 포함된 스타일시트를 컴파일합니다.Compiles the style sheet contained in the IXPathNavigable object.

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[])

XSLTC.exe 유틸리티를 사용하여 컴파일된 스타일시트에서 메서드를 로드합니다.Loads a method from a style sheet compiled using the XSLTC.exe utility.

Load(String)

지정된 URI에 있는 스타일시트를 로드하고 컴파일합니다.Loads and compiles the style sheet located at the specified URI.

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)

XSLT Compiler (xsltc.exe)를 사용하여 만든 컴파일된 스타일시트를 로드합니다.Loads the compiled style sheet that was created using the XSLT Compiler (xsltc.exe).

Load(XmlReader)

XmlReader에 포함된 스타일시트를 컴파일합니다.Compiles the style sheet contained in the XmlReader.

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()

현재 Object의 단순 복사본을 만듭니다.Creates a shallow copy of the current Object.

(다음에서 상속됨 Object)
ToString()

현재 개체를 나타내는 문자열을 반환합니다.Returns a string that represents the current object.

(다음에서 상속됨 Object)
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)

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)

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)

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)

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)

URI로 지정된 입력 문서를 사용하여 변환을 실행하고 파일로 결과를 출력합니다.Executes the transform using the input document specified by the URI and outputs the results to a file.

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)

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)

URI로 지정된 입력 문서를 사용하여 변환을 실행하고 TextWriter에 결과를 출력합니다.Executes the transform using the input document specified by the URI and outputs the results to a TextWriter.

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)

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)

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)

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)

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)

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.

적용 대상

스레드 보안

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 메서드를 하는 동안 한 스레드에서 다시 호출 합니다 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.

추가 정보