다음을 통해 공유


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 ItemRecursive라는 두 개의 매개 변수를 사용합니다. 항목의 기본값을 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>