Compartir a través de


Sintaxis básica de la cláusula FOR XML

El modo FOR XML puede ser RAW, AUTO, EXPLICIT o PATH. Determina la forma del XML resultante.

Importante

La directiva XMLDATA de la opción FOR XML está en desuso. Utilice la XSD generación en los modos RAW y AUTO. No se reemplaza la directiva XMLDATA en modo EXPLICT. Esta característica se quitará en una versión futura de Microsoft SQL Server. Evite utilizar esta característica en nuevos trabajos de desarrollo y tenga previsto modificar las aplicaciones que actualmente la utilizan.

A continuación se muestra la sintaxis básica que se describe en 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')]
Toma el resultado de la consulta y transforma cada fila del conjunto de resultados en un elemento XML que tiene un identificador genérico, <fila />, como etiqueta de elemento. Opcionalmente, puede especificar un nombre para el elemento row al usar esta directiva. El XML resultante usará el ElementName especificado como elemento de fila generado para cada fila. Para obtener más información, vea Usar el modo RAW con FOR XML.

AUTOMÁTICO
Devuelve los resultados de la consulta en un árbol anidado XML sencillo. Cada tabla de la cláusula FROM para la que al menos una columna aparece en la cláusula SELECT se representa como un elemento XML. Las columnas enumeradas en la cláusula SELECT se asignan a los atributos de elemento adecuados. Para obtener más información, vea Usar el modo AUTO con FOR XML.

EXPLÍCITO
Especifica que la forma del árbol XML resultante está definida explícitamente. Al usar este modo, las consultas deben escribirse de una manera específica para que se especifique información adicional sobre el anidamiento que desee explícitamente. Para obtener más información, vea Usar el modo EXPLICIT con FOR XML.

CAMINO
Proporciona una manera más sencilla de mezclar elementos y atributos, y para introducir un anidamiento adicional para representar propiedades complejas. Puede usar consultas en modo FOR XML EXPLICIT para construir este tipo de XML a partir de un conjunto de filas, pero el modo PATH proporciona una alternativa más sencilla a las consultas posiblemente complicadas del modo EXPLICIT. El modo PATH, junto con la capacidad de escribir consultas FOR XML anidadas y la directiva TYPE para devolver instancias de tipo xml , permite escribir consultas con menos complejidad. Proporciona una alternativa a escribir la mayoría de las consultas en modo EXPLICIT. De forma predeterminada, el modo PATH genera una <envoltura de elemento de fila> para cada fila del conjunto de resultados. Opcionalmente, puede especificar un nombre de elemento. Si lo hace, el nombre especificado se usa como nombre del elemento contenedor. Si proporciona una cadena vacía (FOR XML PATH ('')), no se genera ningún elemento contenedor. Para obtener más información, vea Usar el modo PATH con FOR XML.

XMLDATA
Especifica que se debe devolver un esquema de XML-Data Reducido (XDR) en línea. El esquema se antepone al documento como un esquema insertado. Para obtener un ejemplo de trabajo, consulte Uso del modo RAW con FOR XML.

XMLSCHEMA
Devuelve un esquema XML de W3C en línea (XSD). Opcionalmente, puede especificar un URI de espacio de nombres de destino al especificar esta directiva. Devuelve el espacio de nombres especificado en el esquema. Para obtener más información, vea Generar un esquema XSD insertado. Para obtener un ejemplo de trabajo, consulte Uso del modo RAW con FOR XML.

ELEMENTOS
Si se especifica la opción ELEMENTS, las columnas se devuelven como subelementos. Sin embargo, se les asignan atributos XML. Esta opción solo se admite en los modos RAW, AUTO y PATH. Opcionalmente, puede especificar XSINIL o ABSENT al usar esta directiva. XSINIL especifica que se crea un elemento que tiene un atributo xsi:nil establecido en True para los valores de columna NULL. De forma predeterminada o cuando se especifica ABSENT junto con ELEMENTS, no se crean elementos para los valores NULL. Para obtener un ejemplo de trabajo, vea Usar el modo RAW con FOR XML y Usar el modo AUTO con FOR XML.

BINARY BASE64
Si se especifica la opción BINARY Base64, los datos binarios devueltos por la consulta se representan en formato codificado en base64. Para recuperar datos binarios mediante el modo RAW y EXPLICIT, se debe especificar esta opción. En el modo AUTO, los datos binarios se devuelven como referencia de forma predeterminada. Para obtener un ejemplo de trabajo, consulte Uso del modo RAW con FOR XML.

TIPO
Especifica que la consulta devuelve los resultados como el tipo xml . Para más información, consulte TYPE Directive in FOR XML Queries.

ROOT [('RootName')]
Especifica que se agrega un único elemento de nivel superior al XML resultante. También se puede especificar el nombre del elemento raíz que se generará. El valor predeterminado es "root".

Véase también

Usar el modo RAW con FOR XML
Uso del modo AUTO con FOR XML
Usar el modo EXPLICIT con FOR XML
Usar el modo PATH con FOR XML
SELECT (Transact-SQL)
FOR XML (SQL Server)