XML 작업은 XML 데이터를 사용하는 데 사용됩니다. 이 작업을 사용하면 패키지에서 XML 문서를 검색하고 XSLT(Extensible Stylesheet Language Transformations) 스타일시트 및 XPath 식을 사용하여 문서에 작업을 적용하거나, 여러 문서를 병합하거나, 업데이트된 문서의 유효성을 검사하고, 비교하고, 파일 및 변수에 저장할 수 있습니다.
이 작업을 통해 Integration Services 패키지는 런타임에 XML 문서를 동적으로 수정할 수 있습니다. 다음과 같은 용도로 XML 작업을 사용할 수 있습니다.
XML 문서 서식을 다시 지정합니다. 예를 들어 작업은 XML 파일에 있는 보고서에 액세스하고 XSLT 스타일시트를 동적으로 적용하여 문서 프레젠테이션을 사용자 지정할 수 있습니다.
XML 문서의 섹션을 선택합니다. 예를 들어 작업은 XML 파일에 있는 보고서에 액세스하고 XPath 식을 동적으로 적용하여 문서의 섹션을 선택할 수 있습니다. 이 작업은 문서의 값을 가져와서 처리할 수도 있습니다.
여러 원본의 문서를 병합합니다. 예를 들어 태스크는 여러 원본에서 보고서를 다운로드하고 동적으로 하나의 포괄적인 XML 문서에 병합할 수 있습니다.
XML 문서의 유효성을 검사하고 필요에 따라 자세한 오류 출력을 가져옵니다. 자세한 내용은 XML 태스크를 사용하여 XML 유효성 검사를 참조하세요.
XML 원본을 사용하여 XML 문서에서 값을 추출하여 데이터 흐름에 XML 데이터를 포함할 수 있습니다. 자세한 내용은 XML 원본을 참조하세요.
XML 작업
XML 태스크가 수행하는 첫 번째 작업은 특정 XML 문서를 검색하는 것입니다. 이 작업은 XML 작업에 기본 제공되며 자동으로 발생합니다. 검색된 XML 문서는 XML 태스크가 수행하는 작업의 데이터 원본으로 사용됩니다.
XML 작업 "비교", "병합" 및 "패치"에는 두 개의 피연산자가 필요합니다. 첫 번째 피연산자는 원본 XML 문서를 지정합니다. 두 번째 피연산자는 XML 문서도 지정하며, 그 내용은 작업의 요구 사항에 따라 달라집니다. 예를 들어 Diff 작업은 두 문서를 비교합니다. 따라서 두 번째 피연산자는 원본 XML 문서를 비교할 다른 유사한 XML 문서를 지정합니다.
XML 태스크는 변수 또는 파일 연결 관리자를 원본으로 사용하거나 XML 데이터를 작업 속성에 포함할 수 있습니다.
원본이 변수인 경우 지정된 변수에는 XML 문서의 경로가 포함됩니다.
원본이 파일 연결 관리자인 경우 지정된 파일 연결 관리자가 원본 정보를 제공합니다. 파일 연결 관리자는 XML 작업과 별도로 구성되며 XML 작업에서 참조됩니다. 파일 연결 관리자의 연결 문자열은 XML 파일의 경로를 지정합니다. 자세한 내용은 File Connection Manager를 참조하세요.
작업 결과를 변수 또는 파일에 저장하도록 XML 작업을 구성할 수 있습니다. 파일에 저장하는 경우 XML 태스크는 파일 연결 관리자를 사용하여 파일에 액세스합니다. Diff 작업에서 생성된 Diffgram의 결과를 파일 및 변수에 저장할 수도 있습니다.
미리 정의된 XML 작업
XML 태스크에는 XML 문서 작업을 위해 미리 정의된 작업 집합이 포함됩니다. 다음 표에서는 이러한 작업을 설명합니다.
| 수술 | 설명 |
|---|---|
| 차이점 | 두 XML 문서를 비교합니다. 원본 XML 문서를 기본 문서로 사용하여 Diff 연산은 이 문서를 두 번째 XML 문서와 비교하고, 차이점을 감지하고, XML Diffgram 문서에 차이점을 씁니다. 이 작업에는 비교를 사용자 지정하기 위한 속성이 포함됩니다. |
| 병합 | 두 개의 XML 문서를 병합합니다. 원본 XML 문서를 기본 문서로 사용하여 병합 작업을 수행하면 두 번째 문서의 내용이 기본 문서에 추가됩니다. 이 작업은 기본 문서 내에서 병합 위치를 지정할 수 있습니다. |
| 패치 | Diffgram 문서라고 하는 Diff 작업의 출력을 XML 문서에 적용하여 Diffgram 문서의 콘텐츠를 포함하는 새 부모 문서를 만듭니다. |
| 확인 | DTD(문서 형식 정의) 또는 XSD(XML 스키마 정의) 스키마에 대해 XML 문서의 유효성을 검사합니다. |
| XPath (엑스패스) | XPath 쿼리 및 평가를 수행합니다. |
| XSLT | XML 문서에서 XSL 변환을 수행합니다. |
Diff 작업
비교가 빠르거나 정확한지 여부에 따라 다른 비교 알고리즘을 사용하도록 Diff 작업을 구성할 수 있습니다. 비교할 문서의 크기에 따라 빠르고 정확한 비교를 자동으로 선택하도록 작업을 구성할 수도 있습니다.
Diff 작업에는 XML 비교를 사용자 지정하는 옵션 집합이 포함되어 있습니다. 다음 표에서는 옵션에 대해 설명합니다.
| 옵션 | 설명 |
|---|---|
| IgnoreComments | 주석 노드를 비교할지 여부를 지정하는 값입니다. |
| IgnoreNamespaces | 요소의 네임스페이스 URI(Uniform Resource Identifier)와 해당 특성 이름을 비교할지 여부를 지정하는 값입니다. 이 옵션을 설정 true하면 로컬 이름이 같지만 네임스페이스가 다른 두 요소가 동일한 것으로 간주됩니다. |
| IgnorePrefixes | 요소 및 특성 이름의 접두사를 비교할지 여부를 지정하는 값입니다. 이 옵션이 true,로 설정되면 로컬 이름이 동일하지만 네임스페이스 URI와 접두사가 다른 두 요소가 동일한 것으로 간주됩니다. |
| XML 선언 무시 | XML 선언을 비교할지 여부를 지정하는 값입니다. |
| IgnoreOrderOfChildElements | 자식 요소의 순서를 비교할지 여부를 지정하는 값입니다. 이 옵션을 true로 설정하면 형제 목록에서 위치만 다른 자식 요소들이 동일하다고 간주됩니다. |
| IgnoreWhiteSpaces | 공백을 비교할지 여부를 지정하는 값입니다. |
| IgnoreProcessingInstructions | 처리 명령의 비교 여부를 지정하는 값입니다. |
| IgnoreDTD | DTD가 무시되는지 여부를 지정하는 값입니다. |
병합 작업
XPath 문을 사용하여 원본 문서에서 병합 위치를 식별하는 경우 이 문은 단일 노드를 반환해야 합니다. 문장이 여러 노드를 반환하는 경우 첫 번째 노드만 사용됩니다. 두 번째 문서의 내용은 XPath 쿼리가 반환하는 첫 번째 노드 아래에 병합됩니다.
XPath 작업
XPath 작업은 다양한 유형의 XPath 기능을 사용하도록 구성할 수 있습니다.
sum()과 같은 XPath 함수를 구현하려면 평가 옵션을 선택합니다.
선택한 노드를 XML 조각으로 반환하려면 노드 목록 옵션을 선택합니다.
문자열에 연결된 선택한 모든 노드의 내부 텍스트 값을 반환하려면 값 옵션을 선택합니다.
유효성 검사 작업
유효성 검사 작업은 DTD(문서 형식 정의) 또는 XSD(XML 스키마 정의) 스키마를 사용하도록 구성할 수 있습니다.
ValidationDetails를 활성화하여 자세한 오류 출력을 받을 수 있습니다. 자세한 내용은 XML 태스크를 사용하여 XML 유효성 검사를 참조하세요.
XML 문서 인코딩
XML 작업은 유니코드 문서 병합만 지원합니다. 즉, 작업은 유니코드 인코딩이 있는 문서에만 병합 작업을 적용할 수 있습니다. 다른 인코딩을 사용하면 XML 작업이 실패합니다.
비고
Diff 및 패치 작업에는 두 번째 피연산자 XML 데이터에서 XML 선언을 무시하는 옵션이 포함되어 있으므로 이러한 작업에 다른 인코딩이 있는 문서를 사용할 수 있습니다.
XML 문서를 사용할 수 있는지 확인하려면 XML 선언을 검토합니다. 선언은 8비트 유니코드 인코딩을 나타내는 UTF-8을 명시적으로 지정해야 합니다.
다음 태그는 유니코드 8비트 인코딩을 보여줍니다.
<?xml version="1.0" encoding="UTF-8"?>
XML 작업에서 사용할 수 있는 사용자 지정 로깅 메시지
다음 표에서는 XML 태스크에 대한 사용자 지정 로그 항목에 대해 설명합니다. 자세한 내용은 SSIS(Integration Services) 로깅 및 로깅에 대한 사용자 지정 메시지를 참조하세요.
| 로그 항목 | 설명 |
|---|---|
XMLOperation |
태스크가 수행하는 작업에 대한 정보를 제공합니다. |
XML 태스크 구성
SSIS 디자이너를 사용하거나 프로그래밍 방식으로 속성을 설정할 수 있습니다.
SSIS 디자이너에서 설정할 수 있는 속성에 대한 자세한 내용은 다음 항목 중 하나를 클릭합니다.
SSIS 디자이너에서 속성을 설정하는 방법에 대한 자세한 내용은 다음 항목을 클릭합니다.
XML 태스크의 프로그래밍 방식 구성
이러한 속성을 프로그래밍 방식으로 설정하는 방법을 보려면 다음 주제를 클릭하세요.
관련 작업
관련 내용
블로그 항목: XML 대상 스크립트 구성 요소, agilebi.com
CodePlex 샘플, 프로세스 XML 데이터 패키지 샘플, www.codeplex.com에