Sintaxe básica da cláusula FOR XML
O modo FOR XML pode ser RAW, AUTO, EXPLICIT ou PATH. Ele determina a forma do XML resultante.
Importante |
---|
A diretiva XMLDATA para a opção FOR XML foi preterida. Use geração de XSD no caso dos modos RAW e AUTO. Não há substituição para a diretiva XMLDATA no modo EXPLICIT. Esse recurso será removido em uma versão futura do Microsoft SQL Server. Evite usar esse recurso em desenvolvimentos novos e planeje modificar os aplicativos que atualmente o utilizam. |
Esta é a sintaxe básica descrita em Cláusula FOR (Transact-SQL):
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ('ElementName') ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ('ElementName') ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ('RootName') ] ]
Argumentos
RAW[('ElementName')]
Obtém o resultado da consulta e transforma cada linha do conjunto de resultados em um elemento XML com um identificador genérico, <row />, como a marca do elemento. Opcionalmente, é possível especificar um nome para o elemento de linha ao usar esta diretiva. O XML resultante usará o ElementName especificado como o elemento de linha gerado para cada linha. Para obter mais informações, consulte Usando o modo RAW.AUTO
Retorna os resultados da consulta em uma árvore XML simples e aninhada. Cada tabela na cláusula FROM para a qual pelo menos uma coluna está listada na cláusula SELECT é representada como um elemento XML. As colunas listadas na cláusula SELECT são mapeadas para os atributos apropriados do elemento. Para obter mais informações, consulte Usando o modo AUTO.EXPLICIT
Especifica que a forma da árvore XML resultante está explicitamente definida. Usando esse modo, as consultas devem ser escritas de uma maneira específica para que informações adicionais sobre o aninhamento desejado sejam especificadas explicitamente. Para obter mais informações, consulte Usando modo EXPLICIT.PATH
Fornece um modo mais simples de misturar elementos e atributos e introduzir aninhamento adicional para representar propriedades complexas. É possível usar consultas em modo FOR XML EXPLICIT para construir esse tipo de XML a partir de um conjunto de linhas, mas o modo PATH fornece uma alternativa mais simples para as consultas em modo EXPLICIT que provavelmente são trabalhosas. O modo PATH, junto com a capacidade de escrever consultas FOR XML aninhadas e a diretiva TYPE para retornar instâncias do tipo xml, permite escrever consultas com menos complexidade. Ele fornece uma alternativa a escrita da maioria das consultas em modo EXPLICIT. Por padrão, o modo PATH gera um wrapper de elemento <row> para cada linha do conjunto de resultados. Opcionalmente, é possível especificar um nome de elemento. Nesse caso, o nome especificado será usado como o nome do elemento wrapper. Se você fornecer uma cadeia de caracteres vazia (FOR XML PATH ('')), nenhum elemento wrapper será gerado. Para obter mais informações, consulte Usando o modo PATH.XMLDATA
Especifica que um esquema XDR (XML-Data Reduced) será retornado. O esquema é pré-anexado ao documento como um esquema embutido. Para obter um exemplo de funcionamento, consulte Usando o modo RAW.XMLSCHEMA
Retorna um XSD (Esquema XML da W3C) embutido. Opcionalmente, é possível especificar um URI de namespace de destino especificando esta diretiva. Isso retorna o namespace especificado no esquema. Para obter mais informações, consulte Geração de esquema XSD embutido. Para obter um exemplo de funcionamento, consulte Usando o modo RAW.ELEMENTS
Se a opção ELEMENTS for especificada, as colunas serão retornadas como subelementos. Caso contrário, elas serão mapeadas para atributos XML. Essa opção tem suporte apenas nos modos RAW, AUTO e PATH. Opcionalmente, é possível especificar XSINIL ou ABSENT ao usar esta diretiva. XSINIL especifica que um elemento que tem um atributo xsi:nil definido como True seja criado para valores de colunas NULL. Por padrão, ou quando ABSENT está especificado junto com ELEMENTS, nenhum elemento é criado para obter valores NULL. Para obter um exemplo de funcionamento, consulte Usando o modo RAW e Usando o modo AUTO.BINARY BASE64
Se a opção BINARY Base64 for especificada, quaisquer dados binários retornados pela consulta serão representados no formato codificado na base64. Para recuperar dados binários usando o modo RAW e EXPLICIT, esta opção deve ser especificada. Em modo AUTO, por padrão, os dados binários são retornados como uma referência. Para obter um exemplo de funcionamento, consulte Usando o modo RAW.TYPE
Especifica que a consulta retorna os resultados como tipo xml. Para obter mais informações, consulte Diretiva TYPE em consultas FOR XML.ROOT [('RootName)]
Especifica que um único elemento de nível superior seja adicionado ao XML resultante. Opcionalmente, é possível especificar o nome do elemento raiz a ser gerado. O valor padrão é "root".
Consulte também