SSRS(XML Report Data)에 대한 XML 쿼리 구문
Reporting Services에서 XML 데이터 원본에 대한 데이터 세트를 만들 수 있습니다. 데이터 원본을 정의한 후 데이터 세트에 대한 쿼리를 만듭니다. 데이터 원본이 가리키는 XML 데이터 형식에 따라 XML 쿼리 또는 요소 경로를 포함하여 데이터 세트 쿼리 를 만듭니다. XML 쿼리는 <Query> 태그로 시작하며 데이터 원본에 따라 달라지는 네임스페이스와 XML 요소를 포함합니다. 요소 경로는 네임스페이스 독립적이며 XPath와 유사한 구문을 사용하여 기본 XML 데이터에서 사용할 노드 및 노드 특성을 지정합니다. 요소 경로에 대한 자세한 내용은 XML 보고서 데이터를 위한 요소 경로 구문(SSRS)을 참조하세요.
다음과 같은 유형의 XML 데이터에 대한 XML 데이터 원본을 만들 수 있습니다.
HTTP 프로토콜을 사용하여 URL에서 가리키는 Xml 문서
XML 데이터를 반환하는 웹 서비스 엔드포인트
포함된 XML 데이터
XML 쿼리 또는 요소 경로를 지정하는 방법은 XML 데이터의 형식에 따라 달라집니다.
XML 문서의 경우 XML Query 는 선택 사항입니다. 포함된 경우 선택적 XML ElementPath를 포함할 수 있습니다. XML ElementPath 값에는 요소 경로 구문이 사용됩니다. 데이터 원본의 XML 데이터에 필요할 때 네임스페이스를 올바르게 처리하기 위해 XML 쿼리 및 XML ElementPath를 포함합니다.
연결 문자열 URL에서 가리키는 웹 서비스 엔드포인트의 경우 XML 쿼리는 웹 서비스 메서드, SOAP 동작 또는 둘 다를 정의합니다. XML 데이터 공급자는 보고서에 사용할 XML 데이터를 검색하는 웹 서비스 요청을 만듭니다.
참고 항목
웹 서비스 네임스페이스에 슬래시(/) 문자가 포함된 경우 XML 데이터 처리 확장 프로그램이 네임스페이스를 올바르게 파생할 수 있도록 웹 서비스 메서드와 SOAP 작업을 모두 포함합니다.
포함된 XML 문서의 경우 XML 쿼리 는 사용할 포함된 XML 데이터를 정의하고, 선택적 네임스페이스를 포함하며, 선택적 XML ElementPath를 포함합니다.
XML 데이터에 대한 쿼리 매개 변수 지정
XML 문서의 쿼리 매개 변수를 지정할 수 있습니다.
URL 요청의 경우 쿼리 매개 변수는 표준 URL 매개 변수로 포함됩니다.
웹 서비스 요청의 경우 쿼리 매개 변수가 웹 서비스 메서드에 전달됩니다. 쿼리 매개 변수를 정의하려면 데이터 세트 속성 대화 상자의 매개 변수 페이지를 사용합니다.
예시
다음 표의 예에서는 보고서 서버 웹 서비스, XML 문서 및 포함 XML 데이터에서 데이터를 검색하는 방법을 보여 줍니다.
XML 데이터 원본 | 쿼리 예시 |
---|---|
웹 서비스 XML 데이터( ListChildren 메서드 사용) | <Query> <Method Name="ListChildren" Namespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices" /> </Query> |
SoapAction의 웹 서비스 XML 데이터입니다. | <Query xmlns=namespace> <SoapAction>https://schemas/microsoft.com/sqlserver/2005/03/23/reporting/reportingservices/ListChildren</SoapAction> </Query> |
네임스페이스를 사용하는 XML 문서 또는 포함된 XML 데이터입니다. 요소 경로에 대한 네임스페이스를 지정하는 쿼리 요소입니다. |
<Query xmlns:es="https://schemas.microsoft.com/StandardSchemas/ExtendedSales"> <ElementPath>/Customers/Customer/Orders/Order/es:LineItems/es:LineItem</ElementPath> </Query> |
포함된 XML 문서입니다. | <Query> <XmlData> <Customers> <Customer ID="1">Bobby</Customer> </Customers> </XmlData> <ElementPath>Customer {@}</ElementPath> </Query> |
기본값을 사용하는 XML 문서입니다. | 쿼리가 없습니다. 요소 경로는 XML 문서 자체에서 파생되며 네임스페이스는 독립적입니다. |
참고 항목
첫 번째 웹 서비스 예에서는 ListChildren 메서드 사용) 이 쿼리를 실행하려면 새 데이터 원본을 만들고 연결 문자열 https://localhost/reportserver/reportservice2006.asmx
설정합니다. 이 메서드는 ListChildren Item 및 Recursive라는 두 개의 매개 변수를 사용합니다. 항목의 기본값을 1로 / 설정하고 재귀 값을 1로 설정합니다.
네임스페이스 지정
XML 쿼리 요소를 사용하여 데이터 원본의 XML 데이터에 사용되는 네임스페이스를 지정합니다. 다음 XML 쿼리는 네임스페이스 판매를 사용합니다. 네임스페이스 판매를 위한 sales:LineItems
XML ElementPath 노드입니다sales:LineItem
.
<Query xmlns:sales=
"https://schemas.microsoft.com/StandardSchemas/ExtendedSales">
<SoapAction>
https://schemas.microsoft.com/SalesWebService/ListOrders
</SoapAction>
<ElementPath>
Customers/Customer/Orders/Order/sales:LineItems/sales:LineItem
</ElementPath>
</Query>
기본 네임스페이스가 비어 있도록 데이터 공급자 네임스페이스를 지정하려면 xmldp를 사용합니다. 이 방법은 다음 예제에서 확인할 수 있습니다.
예시
다음 예제에서는 XML 문서 DPNamespace.xml 사용합니다. 이 문서는 표 뒤의 그림을 위해 제공됩니다. 이 표에서는 네임스페이스 접두사를 포함하는 XML ElementPath 구문의 두 가지 예를 보여 줍니다.
XML 쿼리 요소 | 데이터 세트의 결과 필드 |
---|---|
<Query/> | Value A: https://schemas.microsoft.com/... 값 B: https://schemas.microsoft.com/... 값 C: https://schemas.microsoft.com/... |
<xmldp:Query xmlns:xmldp="https://schemas.microsoft.com/sqlserver/2005/02/reporting/XmlDPQuery" xmlns:ns="https://schemas.microsoft.com/..."> <xmldp:ElementPath>Root {}/ns:Element2/Node</xmldp:ElementPath> </xmldp:Query> |
Value D 값 E 값 F |
XML 문서: DPNamespace.xml
이 XML을 복사한 후 보고서 디자이너에서 XML 데이터 원본으로 사용할 수 있는 URL에 저장할 수 있습니다(예: https://localhost/DPNamespace.xml.).
<Root xmlns:ns="https://schemas.microsoft.com/...">
<ns:Element1>
<Node>Value A</Node>
<Node>Value B</Node>
<Node>Value C</Node>
</ns:Element1>
<ns:Element2>
<Node>Value D</Node>
<Node>Value E</Node>
<Node>Value F</Node>
</ns:Element2>
</Root>