Usando XML – A Cláusula FOR XML e o Modo PATH

Veja neste artigo o uso do modo PATH.

por Jerônimo Jardel Vogt

Vimos nos artigos anteriores o uso da cláusula de consulta FOR XML e os diferentes modos RAW, AUTO e EXPLICIT, suportada pelo SQL Server 2005 e usada para retornar dados do banco de dados em formato XML. Este artigo descreve o uso do modo PATH.

O que é o modo de consulta PATH

O modo PATH faz uso de uma sintaxe chamada XPath, que possibilita a construção de documentos XML customizados, através do mapeamento de colunas relacionais para nodos XML, como atributos, elementos, subelementos e nodos texto. Isto possibilita a geração de fragmentos XML complexos sem a complexidade de um modo de consulta EXPLICIT.

Considere os seguintes recursos da sintaxe XPath:

F   Os nodos XML em uma árvore são expressos como paths, separados por barra (/).

F   Atributos são representados com um prefixo de arroba (@).

F   Paths relativos podem ser representados através do uso de um simples ponto (.) para representar o nodo atual e dois pontos (..) para representar o pai do nodo atual.

O exemplo abaixo mostra como você pode usar o modo de consulta PATH para retornar um fragmento XML contendo uma lista de empregados.

 

SELECT EmployeeID "@EmpID",

       FirstName "EmpName/First",

       LastName "EmpName/Last"

  FROM Person.Contact

       INNER JOIN HumanResources.Employee

          ON Person.Contact.ContactID = Employee.ContactID

   FOR XML PATH

 

Esta consulta produz um fragmento XML no seguinte formato:



 

Observe que a coluna EmployeeID é mapeada para o atributo EmpID com um prefixo de arroba (@), e as colunas FirstName e LastName são mapeadas para subelementos do elemento pai EmpName com um marcador de barra (/).

O próximo exemplo mostra como você pode usar o argumento opcional ElementName na consulta com PATH para modificar o nome do elemento de linha padrão.

 

SELECT EmployeeID "@EmpID",

       FirstName "EmpName/First",

       LastName "EmpName/Last"

  FROM Person.Contact

       INNER JOIN HumanResources.Employee

          ON Person.Contact.ContactID = Employee.ContactID

   FOR XML PATH('Employee')

 

O resultado é um fragmento XML como mostrado no exemplo abaixo.



Com esse artigo, terminamos nossa exploração sobre a construção de documentos XML usando a cláusula FOR XML. Mais informações sobre XML em geral, procure por “Understanding XML” no site MSDN. E para mais informações sobre a cláusula FOR XML, veja o tópico “Constructing XML Using FOR XML” no SQL Server Books Online. Um grande abraço e até a próxima.

 

Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados