Compartilhar via


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 um novo trabalho de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

A seguir está a sintaxe básica descrita na 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')]
Usa o resultado da consulta e transforma cada linha no conjunto de resultados em um elemento XML que tem um identificador genérico, <linha />, como a marca de elemento. Opcionalmente, você pode especificar um nome para o elemento de linha ao usar essa diretiva. O XML resultante usará o ElementName especificado como o elemento de linha gerado para cada linha. Para obter mais informações, consulte Usar modo RAW com FOR XML.

AUTOMÁTICO
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 de elemento apropriados. Para obter mais informações, consulte Usar modo AUTO com FOR XML.

EXPLÍCITO
Especifica que a forma da árvore XML resultante está explicitamente definida. Ao usar 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 Usar modo EXPLICIT com FOR XML.

Caminho
Fornece uma maneira mais simples de misturar elementos e atributos e introduzir aninhamento adicional para representar propriedades complexas. Você pode usar consultas no 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 de modo EXPLICIT possivelmente complicadas. O modo PATH, juntamente com a capacidade de gravar consultas FOR XML aninhadas e a diretiva TYPE para retornar instâncias de tipo xml , permite que você escreva consultas com menos complexidade. Ele fornece uma alternativa para gravar a maioria das consultas de modo EXPLICIT. Por padrão, o modo PATH gera um <wrapper de elemento de linha> para cada linha no conjunto de resultados. Opcionalmente, você pode especificar um nome de elemento. Se você fizer isso, 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 Usar modo PATH com FOR XML.

XMLDATA
Especifica que um esquema XDR (XML-Data reduzido) embutido deve ser retornado. O esquema é anexado ao documento como um esquema embutido. Para obter um exemplo de trabalho, consulte Usar o modo RAW com FOR XML.

XMLSCHEMA
Retorna um esquema XSD (W3C XML) embutido. Opcionalmente, você pode especificar um URI de namespace de destino ao especificar essa diretiva. Isso retorna o namespace especificado no esquema. Para obter mais informações, consulte Gerar um esquema XSD embutido. Para obter um exemplo de trabalho, consulte Usar o modo RAW com FOR XML.

ELEMENTOS
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, você pode especificar XSINIL ou ABSENT ao usar essa diretiva. XSINIL especifica que um elemento que tem um atributo xsi:nil definido como True seja criado para valores de coluna NULL. Por padrão ou quando ABSENT é especificado junto com ELEMENTS, nenhum elemento é criado para valores NULL. Para obter um exemplo de trabalho, consulte Usar o modo RAW com FOR XML e usar o modo AUTO com FOR XML.

BASE64 BINÁRIA
Se a opção BINARY Base64 for especificada, todos os dados binários retornados pela consulta serão representados no formato codificado em base64. Para recuperar dados binários usando o modo RAW e EXPLICIT, essa opção deve ser especificada. No modo AUTO, os dados binários são retornados como uma referência por padrão. Para obter um exemplo de trabalho, consulte Usar o modo RAW com FOR XML.

Tipo
Especifica que a consulta retorna os resultados como o 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 é "raiz".

Consulte Também

Usar o modo RAW com FOR XML
Usar o modo AUTO com FOR XML
Utilize o modo EXPLICIT com FOR XML
Usar o modo PATH com FOR XML
SELECT (Transact-SQL)
FOR XML (SQL Server)