Partilhar via


Sintaxe básica da cláusula XML FOR

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

O modo FOR XML pode ser RAW, AUTO, EXPLICIT ou PATH. Determina a forma do XML resultante.

Importante

A diretiva XMLDATA para a opção FOR XML está obsoleta. Use geração XSD no caso dos modos RAW e AUTO. Não existe substituto para a diretiva XMLDATA em modo EXPLICITT. Esse recurso será removido em uma versão futura do SQL Server. Evite usar esse recurso em novos trabalhos de desenvolvimento e planeje modificar aplicativos que atualmente usam esse recurso.

Sintaxe

Segue-se 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') ] ]

Arguments

RAW [('NomeElemento')]

Pega no resultado da consulta e transforma cada linha do conjunto de resultados num elemento XML que tem um identificador genérico, <row />, como etiqueta de elemento. Pode, opcionalmente, especificar um nome para o elemento linha quando usar esta diretiva. O XML resultante usará o especificado ElementName como elemento de linha gerado para cada linha. Para mais informações, veja Usar Modo RAW com FOR XML.

AUTO

Devolve os resultados da consulta numa á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 mais informações, veja Usar Modo AUTO com FOR XML.

EXPLÍCITO

Especifica que a forma da árvore XML resultante é definida explicitamente. Ao usar este modo, as consultas devem ser escritas de uma forma específica, para que as informações adicionais sobre o aninhamento desejado sejam fornecidas explicitamente. Para mais informações, veja Usar Modo EXPLÍCITO com FOR XML.

CAMINHO

Proporciona uma forma mais simples de misturar elementos e atributos, e de introduzir aninhamento adicional para representar propriedades complexas. Pode usar consultas no modo FOR XML EXPLICIT para construir este tipo de XML a partir de um conjunto de resultados, mas o modo PATH oferece uma alternativa mais simples às possivelmente complicadas consultas do modo FOR XML EXPLICIT. O modo PATH, juntamente com a capacidade de escrever consultas FOR XML aninhadas e a diretiva TYPE para devolver instâncias de tipo xml, permite escrever consultas menos complexas. Disponibiliza uma alternativa à escrita da maioria das consultas no modo EXPLÍCITO. Por defeito, o modo PATH gera um <row> wrapper de elemento para cada linha do conjunto de resultados. Pode, opcionalmente, especificar o nome de um elemento. Se o fizeres, o nome especificado é usado como nome do elemento do wrapper. Se fornecer uma string vazia (FOR XML PATH ('')), não é gerado nenhum elemento de envolvimento. Para mais informações, veja Usar Modo PATH com FOR XML.

MLDATA

Especifica que deve ser devolvido um esquema inline XML-Data Reduced (XDR). O esquema é inserido no documento como um esquema em linha. Para uma amostra funcional, veja Usar Modo RAW com FOR XML.

XMLSCHEMA

Devolve um Esquema XML (XSD) W3C inline. Pode, opcionalmente, especificar um URI de namespace alvo ao especificar esta diretiva. Isto devolve o namespace especificado no esquema. Para mais informações, consulte Gerar um Esquema XSD Inline. Para uma amostra funcional, veja Usar Modo RAW com FOR XML.

ELEMENTOS

Se a opção ELEMENTS for especificada, as colunas são devolvidas como subelementos. Caso contrário, estão mapeados para atributos XML. Esta opção é suportada apenas nos modos RAW, AUTO e PATH. Pode opcionalmente especificar XSINIL ou ABSENT ao usar esta diretiva. O XSINIL especifica que um elemento que tenha um atributo xsi:nil definido como True seja criado para valores de coluna NULL. Por defeito ou quando ABSENT é especificado juntamente com ELEMENTS, não são criados elementos para valores NULL. Para um exemplo funcional, veja Use RAW Mode com FOR XML e Use AUTO Mode com FOR XML.

BASE BINÁRIA64

Se a opção BINARY Base64 for especificada, quaisquer dados binários devolvidos pela consulta são representados em formato codificado base64. Para recuperar dados binários usando os modos RAW e EXPLICIT, esta opção deve ser especificada. No modo AUTO, os dados binários são retornados como referência por defeito. Para uma amostra funcional, veja Usar Modo RAW com FOR XML.

TYPE

Especifica que a consulta devolve os resultados como tipo xml . Para mais informações, consulte a Diretiva TYPE em FOR XML Queries.

ROOT [('RootName')]

Especifica que um único elemento de topo é adicionado ao XML resultante. Podes opcionalmente especificar o nome do elemento raiz a gerar. O valor predefinido é <root>.

Observações

Para a documentação da cláusula SELECT... FOR XML que também se aplica ao Azure SQL Database ou SQL Database no Fabric, consulte FOR XML (SQL Server).