Compartilhar via


Sintaxe de consulta XML para especificar dados de relatório XML

No Reporting Services, você pode criar conjuntos de dados para fontes de dados XML. Após definir uma fonte de dados, crie uma consulta para o conjunto de dados. Dependendo do tipo de dados XML apontado pela fonte de dados, a consulta do conjunto de dados é criada incluindo uma Query XML ou um caminho de elemento. Uma Query XML é iniciada com uma marca de <Query> e inclui namespaces e elementos XML que variam dependendo da fonte de dados. Um caminho de elemento é independente do namespace e especifica quais nós e atributos de nós devem ser usados nos dados XML subjacentes com uma sintaxe do tipo XPath. Para obter mais informações sobre caminhos de elemento, consulte Sintaxe do caminho do elemento para especificar dados de relatório XML.

É possível criar uma fonte de dados XML para os seguintes tipos de dados XML:

  • Documentos Xml apontados por uma URL que usa protocolo http

  • Pontos de extremidade do serviço Web que retornam dados XML

  • Dados XML incorporados

Como especificar uma Query XML ou um caminho de elemento no tipo de dados XML.

Para um documento XML, a Query XML é opcional. Se ela for incluída, poderá conter um ElementPath XML opcional. O valor do ElementPath XML usa a sintaxe de caminho de elemento. A Query XML e o ElementPath XML são incluídos para processar namespaces corretamente quando for necessário pelos dados XML da fonte de dados.

Para um ponto de extremidade de serviço Web apontado por uma URL de cadeia de conexão, a Query XML define o método de serviço Web, a ação SOAP ou ambos. O provedor de dados XML cria uma solicitação de serviço Web que recupera dados XML a serem usados para o relatório.

ObservaçãoObservação

Quando um namespace de serviço Web inclui um caractere de barra (/), inclua o método de serviço Web e a ação SOAP de modo que a extensão de processamento de dados XML possa derivar o namespace corretamente.

Para um documento XML incorporado, a Query XML define os dados XML incorporados a serem usados, inclui namespaces opcionais e contém um ElementPath XML opcional.

Especificando parâmetros de consulta para dados XML

É possível especificar parâmetros de consulta para documentos XML.

  • Para solicitações de URL, os parâmetros de consulta são incluídos como parâmetros de URL padrão.

  • Para solicitações de serviço Web, os parâmetros de consulta são passados para o método de serviço Web. Para definir um parâmetro de consulta, use a página Parâmetros da caixa de diálogo Propriedades do Conjunto de Dados. Para obter mais informações, consulte Caixa de diálogo Propriedades do Conjunto de Dados, Parâmetros.

Exemplo

Os exemplos da tabela a seguir ilustram como recuperar dados do serviço Web Servidor de Relatórios, de um documento XML e de dados XML incorporados.

Fonte de dados XML

Exemplo de consulta

Dados XML de serviço Web do método ListChildren.

<Query>

<Method Name="ListChildren" Namespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices" />

</Query>

Dados XML de serviço Web do SoapAction.

<Query xmlns=namespace>

<SoapAction>http://schemas/microsoft.com/sqlserver/2005/03/23/reporting/reportingservices/ListChildren</SoapAction>

</Query>

Documento XML ou dados XML incorporados que usam namespaces.

Elemento de consulta que especifica namespaces para um caminho de elemento.

<Query xmlns:es="https://schemas.microsoft.com/StandardSchemas/ExtendedSales">

<ElementPath>/Customers/Customer/Orders/Order/es:LineItems/es:LineItem</ElementPath>

</Query>

Documento XML incorporado.

<Query>

<XmlData>

<Customers>

<Customer ID="1">Bobby</Customer>

</Customers>

</XmlData>

<ElementPath>Customer {@}</ElementPath>

</Query>

Documento XML que usa padrão.

No query.

O caminho de elemento é derivado do próprio documento XML e é independente do namespace.

ObservaçãoObservação

O primeiro exemplo de serviço Web lista o conteúdo do servidor de relatório que usa o método ListChildren. Para executar essa consulta, crie uma nova fonte de dados e defina a cadeia de conexão como https://localhost/reportserver/reportservice2006.asmx. O método ListChildren utiliza dois parâmetros: Item e Recursive. Defina o valor padrão do Item como / e Recursive como 1.

Especificando namespaces

Use o elemento Query XML para especificar os namespaces usados nos dados XML da fonte de dados. A consulta XML a seguir usa o namespace sales. Os nós XML ElementPath para sales:LineItems e sales:LineItem usam o namespace sales.

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

Para especificar o namespace do provedor de dados para que o namespace padrão permaneça vazio, use xmldp. Isso é mostrado no exemplo a seguir.

Exemplo

Os exemplos a seguir usam o documento XML DPNamespace.xml, fornecido para ilustração depois da tabela. Essa tabela mostra dois exemplos de sintaxe de ElementPath XML que inclui prefixos de namespaces.

Elemento de consulta XML

Campos resultantes no conjunto de dados

<Consulta/>

Nóns
Valor Ahttps://schemas.microsoft.com/...
Valor Bhttps://schemas.microsoft.com/...
Valor Chttps://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>

Valor D
Valor E
Valor F

Documento XML: DPNamespace.xml

É possível copiar esse XML e salvá-lo em uma URL disponível do Designer de Relatórios para usar como uma fonte de dados XML: por exemplo, 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>