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.