XML TaskXML Task

XML 태스크는 XML 데이터를 통한 작업 시 사용됩니다.The XML task is used to work with XML data. 패키지는 이 태스크를 사용하여 XML 문서를 검색하고, XSLT(Extensible Stylesheet Language Transformations) 스타일시트 및 XPath 식을 통해 문서에 작업을 적용하고, 여러 문서를 병합하거나 업데이트된 문서를 파일 및 변수에 대해 유효성을 검사하고, 비교 및 저장할 수 있습니다.Using this task, a package can retrieve XML documents, apply operations to the documents by using Extensible Stylesheet Language Transformations (XSLT) style sheets and XPath expressions, merge multiple documents, or validate, compare, and save the updated documents to files and variables.

이 태스크를 사용하면 Integration ServicesIntegration Services 패키지에서 XML 문서를 런타임에 동적으로 수정할 수 있습니다.This task enables an Integration ServicesIntegration Services package to dynamically modify XML documents at run time. XML 태스크는 다음 용도로 사용할 수 있습니다.You can use the XML task for the following purposes:

  • XML 문서 형식을 다시 지정합니다.Reformat an XML document. 예를 들어 태스크에서 XML 파일에 있는 보고서에 액세스하고 XSLT 스타일시트를 동적으로 적용하여 문서를 사용자 지정 방식으로 표현할 수 있습니다.For example, the task can access a report that resides in an XML file and dynamically apply an XSLT style sheet to customize the document presentation.

  • XML 문서의 섹션을 선택합니다.Select sections of an XML document. 예를 들어 태스크에서 XML 파일에 있는 보고서에 액세스하고 XPath 식을 동적으로 적용하여 문서의 섹션을 선택할 수 있습니다.For example, the task can access a report that resides in an XML file and dynamically apply an XPath expression to select a section of the document. 이 작업은 문서의 값을 가져오고 처리할 수도 있습니다.The operation can also get and process values in the document.

  • 여러 원본으로부터 문서를 병합합니다.Merge documents from many sources. 예를 들어 태스크에서 여러 원본으로부터 보고서를 다운로드하고 이를 하나의 포괄적인 XML 문서로 동적으로 병합할 수 있습니다.For example, the task can download reports from multiple sources and dynamically merge them into one comprehensive XML document.

  • XML 문서의 유효성을 검사하고 필요에 따라 자세한 오류 출력을 가져옵니다.Validate an XML document and optionally get detailed error output. 자세한 내용은 Validate XML with the XML Task를 참조하십시오.For more info, see Validate XML with the XML Task.

    XML 원본을 사용하여 XML 문서에서 값을 추출하면 데이터 흐름에 XML 데이터를 포함시킬 수 있습니다.You can include XML data in a data flow by using an XML source to extract values from an XML document. 자세한 내용은 XML Source을 참조하세요.For more information, see XML Source.

XML 작업XML Operations

XML 태스크에서 수행하는 첫 번째 동작은 특정 XML 문서를 검색하는 것입니다.The first action the XML task performs is to retrieve a specific XML document. 이 동작은 XML 태스크에 포함되며 자동으로 발생합니다.This action is built into the XML task and occurs automatically. 검색된 XML 문서는 XML 태스크에서 수행하는 작업에 대한 데이터 원본으로 사용됩니다.The retrieved XML document is used as the source of data for the operation that the XML task performs.

비교, 병합 및 패치와 같은 XML 작업에는 두 개의 피연산자가 필요합니다.The XML operations Diff, Merge, and Patch require two operands. 첫 번째 피연산자는 원본 XML 문서를 지정합니다.The first operand specifies the source XML document. 두 번째 피연산자도 XML 문서를 지정하지만 이 문서의 내용은 작업 요구 사항에 따라 달라집니다.The second operand also specifies an XML document, the contents of which depend on the requirements of the operation. 예를 들어 비교 작업은 두 문서를 비교하므로 두 번째 피연산자는 원본 XML 문서가 비교될 비슷한 다른 XML 문서를 지정합니다.For example, the Diff operation compares two documents; therefore, the second operand specifies another, similar XML document to which the source XML document is compared.

XML 태스크는 변수나 파일 연결 관리자를 원본으로 사용하거나 태스크 속성에 XML 데이터를 포함시킬 수 있습니다.The XML task can use a variable or a File connection manager as its source, or include the XML data in a task property.

원본이 변수인 경우 지정된 변수에는 XML 문서의 경로가 포함됩니다.If the source is a variable, the specified variable contains the path of the XML document.

원본이 파일 연결 관리자인 경우 지정된 파일 연결 관리자는 원본 정보를 제공합니다.If the source is a File connection manager, the specified File connection manager provides the source information. 파일 연결 관리자는 XML 태스크와 별도로 구성되며 XML 태스크에서 참조됩니다.The File connection manager is configured separately from the XML task, and is referenced in the XML task. 파일 연결 관리자의 연결 문자열은 XML 파일의 경로를 지정합니다.The connection string of the File connection manager specifies the path of the XML file. 자세한 내용은 File Connection Manager를 참조하세요.For more information, see File Connection Manager.

XML 태스크는 작업 결과를 변수나 파일로 저장하도록 구성될 수 있습니다.The XML task can be configured to save the result of the operation to a variable or to a file. 파일로 저장하는 경우 XML 태스크는 파일 연결 관리자를 사용하여 파일에 액세스합니다.If saving to a file, the XML task uses a File connection manager to access the file. 또한 비교 작업으로 생성된 Diffgram의 결과를 파일 및 변수로 저장할 수 있습니다.You can also save the results of the Diffgram generated by the Diff operation to files and variables.

미리 정의된 XML 작업Predefined XML Operations

XML 태스크에는 XML 문서 작업을 위해 미리 정의된 일련의 작업이 포함됩니다.The XML task includes a predefined set of operations for working with XML documents. 다음 표에서는 이러한 작업을 설명합니다.The following table describes these operations.

연산Operation DescriptionDescription
DiffDiff 두 개의 XML 문서를 비교합니다.Compares two XML documents. 원본 XML 문서를 기본 문서로 사용하는 비교 작업은 원본 XML 문서를 보조 XML 문서와 비교하고, 차이점을 검색하고, 해당 차이점을 XML Diffgram 문서에 기록합니다.Using the source XML document as the base document, the Diff operation compares it to a second XML document, detects their differences, and writes the differences to an XML Diffgram document. 이 작업에는 비교를 사용자 지정하기 위한 속성이 포함됩니다.This operation includes properties for customizing the comparison.
병합Merge 두 개의 XML 문서를 병합합니다.Merges two XML documents. 원본 XML 문서를 기본 문서로 사용하는 병합 작업은 보조 문서의 내용을 기본 문서에 추가합니다.Using the source XML document as the base document, the Merge operation adds the content of a second document into the base document. 이 작업에서는 기본 문서 내의 병합 위치를 지정할 수 있습니다.The operation can specify a merge location within the base document.
PatchPatch Diffgram 문서로 불리는 비교 작업의 출력을 XML 문서에 적용하여 Diffgram 문서 내용이 포함된 새로운 상위 문서를 만듭니다.Applies the output from the Diff operation, called a Diffgram document, to an XML document, to create a new parent document that includes content from the Diffgram document.
유효성 검사Validate DTD(문서 유형 정의) 또는 XSD(XML 스키마 정의) 스키마와 비교하여 XML 문서의 유효성을 검사합니다.Validates the XML document against a Document Type Definition (DTD) or XML Schema definition (XSD) schema.
XPathXPath XPath 쿼리 및 계산을 수행합니다.Performs XPath queries and evaluations.
XSLTXSLT XML 문서에 대해 XSL 변환을 수행합니다.Performs XSL transformations on XML documents.

비교 작업Diff Operation

비교 작업의 속도 또는 정확도가 필요한지 여부에 따라 다른 비교 알고리즘을 사용하도록 비교 작업을 구성할 수 있습니다.The Diff operation can be configured to use a different comparison algorithm depending on whether the comparison must be fast or precise. 또한 비교되는 문서의 크기를 기준으로 빠른 비교나 정확한 비교를 자동으로 선택하도록 작업을 구성할 수 있습니다.The operation can also be configured to automatically select a fast or precise comparison based on the size of the documents being compared.

비교 작업에는 XML 비교를 사용자 지정하는 일련의 옵션이 포함됩니다.The Diff operation includes a set of options that customize the XML comparison. 다음 표에서는 옵션에 대해 설명합니다.The following table describes the options.

옵션Option DescriptionDescription
IgnoreCommentsIgnoreComments 열 노드가 비교되는지 여부를 지정하는 값입니다.A value that specifies whether comment nodes are compared.
IgnoreNamespacesIgnoreNamespaces 요소의 네임스페이스 URI(Uniform Resource Identifier)와 해당 특성 이름이 비교되는지 여부를 지정하는 값입니다.A value that specifies whether the namespace uniform resource identifier (URI) of an element and its attribute names are compared. 이 옵션을 true로 설정하면 로컬 이름이 같지만 네임스페이스가 다른 두 요소는 동일한 것으로 간주됩니다.If this option is set to true, two elements that have the same local name but a different namespace are considered to be identical.
IgnorePrefixesIgnorePrefixes 요소의 접두사 및 특성 이름이 비교되는지 여부를 지정하는 값입니다.A value that specifies whether prefixes of element and attribute names are compared. 이 옵션을 true, 로 설정하면 로컬 이름이 같지만 네임스페이스 URI가 다른 두 요소는 동일한 것으로 간주됩니다.If this option is set to true, two elements that have the same local name but a different namespace URI and prefix are considered identical.
IgnoreXMLDeclarationIgnoreXMLDeclaration XML 선언이 비교되는지 여부를 지정하는 값입니다.A value that specifies whether the XML declarations are compared.
IgnoreOrderOfChildElementsIgnoreOrderOfChildElements 자식 요소의 순서가 비교되는지 여부를 지정하는 값입니다.A value that specifies whether the order of child elements is compared. 이 옵션을 true로 설정하면 형제 목록에서 위치만 다른 자식 요소는 동일한 것으로 간주됩니다.If this option is set to true, child elements that differ only in their position in a list of siblings are considered to be identical.
IgnoreWhiteSpacesIgnoreWhiteSpaces 공백이 비교되는지 여부를 지정하는 값입니다.A value that specifies whether white spaces are compared.
IgnoreProcessingInstructionsIgnoreProcessingInstructions 처리 명령이 비교되는지 여부를 지정하는 값입니다.A value that specifies whether processing instructions are compared.
IgnoreDTDIgnoreDTD DTD가 무시되는지 여부를 지정하는 값입니다.A value that specifies whether the DTD is ignored.

병합 작업Merge Operation

XPath 문을 사용하여 원본 문서의 병합 위치를 식별하는 경우 이 문은 단일 노드를 반환해야 합니다.When you use an XPath statement to identify the merge location in the source document, this statement is expected to return a single node. 여러 노드가 반환되는 경우에는 첫 번째 노드만 사용됩니다.If the statement returns multiple nodes, only the first node is used. 두 번째 문서의 내용은 XPath 쿼리에서 반환하는 첫 번째 노드 아래에 병합됩니다.The contents of the second document are merged under the first node that the XPath query returns.

XPath 작업XPath Operation

XPath 작업은 다른 유형의 XPath 기능을 사용하도록 구성될 수 있습니다.The XPath operation can be configured to use different types of XPath functionality.

  • sum()과 같은 XPath 함수를 구현하려면 Evaluation 옵션을 선택합니다.Select the Evaluation option to implement XPath functions such as sum().

  • 선택된 노드를 XML 조각으로 반환하려면 Node list 옵션을 선택합니다.Select the Node list option to return the selected nodes as an XML fragment.

  • 선택한 모든 노드의 내부 텍스트 값을 연결된 문자열로 반환하려면 Values 옵션을 선택합니다.Select the Values option to return the inner text value of all the selected nodes, concatenated into a string.

유효성 검사 작업Validation Operation

유효성 검사 작업은 DTD(문서 유형 정의) 또는 XSD(XML 스키마 정의) 스키마를 사용하도록 구성될 수 있습니다.The Validation operation can be configured to use either a Document Type Definition (DTD) or XML Schema definition (XSD) schema.

ValidationDetails 를 사용하도록 설정하여 자세한 오류 출력을 가져옵니다.Enable ValidationDetails to get detailed error output. 자세한 내용은 Validate XML with the XML Task를 참조하십시오.For more info, see Validate XML with the XML Task.

XML 문서 인코딩XML Document Encoding

XML 태스크는 유니코드 문서의 병합만 지원합니다.The XML task supports merging of Unicode documents only. 즉, 태스크에서 유니코드 인코딩이 포함된 문서로만 병합 작업을 적용할 수 있습니다.This means the task can apply the Merge operation only to documents that have a Unicode encoding. 다른 인코딩을 사용하면 XML 태스크가 실패합니다.Use of other encodings will cause the XML task to fail.

참고

비교 및 패치 작업에는 두 번째 피연산자 XML 데이터의 XML 선언을 무시하는 옵션이 포함되어 있어서 다른 인코딩이 포함된 문서를 해당 작업에서 사용할 수 있습니다.The Diff and Patch operations include an option to ignore the XML declaration in the second-operand XML data, making it possible to use documents that have other encodings in these operations.

XML 문서를 사용할 수 있는지 여부를 확인하려면 XML 선언을 확인하십시오.To verify that the XML document can be used, review the XML declaration. 선언에는 8비트 유니코드 인코딩을 나타내는 UTF-8이 명시적으로 지정되어야 합니다.The declaration must explicitly specify UTF-8, which indicates 8-bit Unicode encoding.

다음 태그는 유니코드 8비트 인코딩을 보여 줍니다.The following tag shows the Unicode 8-bit encoding.

<?xml version="1.0" encoding="UTF-8"?>

XML 태스크에 사용할 수 있는 사용자 지정 로깅 메시지Custom Logging Messages Available on the XML Task

다음 표에서는 XML 태스크에 대한 사용자 지정 로그 항목을 설명합니다.The following table describes the custom log entry for the XML task. 자세한 내용은 Integration Services(SSIS) 로깅을 참조하세요.For more information, see Integration Services (SSIS) Logging.

로그 항목Log entry DescriptionDescription
XMLOperationXMLOperation 태스크에서 수행한 작업에 대한 정보를 제공합니다.Provides information about the operation that the task performs

XML 태스크 구성Configuration of the XML Task

SSISSSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.You can set properties through SSISSSIS Designer or programmatically.

SSISSSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용을 보려면 다음 항목 중 하나를 클릭하십시오.For more information about the properties that you can set in SSISSSIS Designer, click one of the following topics:

XML 태스크의 프로그래밍 방식 구성Programmatic Configuration of the XML Task

이러한 속성을 프로그래밍 방식으로 설정하는 방법을 보려면 다음 항목을 클릭하십시오.For more information about programmatically setting these properties, click the following topic:

태스크 또는 컨테이너의 속성 설정Set the Properties of a Task or Container