Sintassi di base della clausola FOR XMLBasic Syntax of the FOR XML Clause

La modalità FOR XML può essere RAW, AUTO, EXPLICIT o PATH.The FOR XML mode can be RAW, AUTO, EXPLICIT, or PATH. Tale modalità determina la forma della struttura XML risultante.It determines the shape of the resulting XML.

Importante

La direttiva XMLDATA all'opzione FOR XML è deprecata.The XMLDATA directive to the FOR XML option is deprecated. Utilizzare la generazione XSD in caso di modalità RAW e AUTO.Use XSD generation in the case of RAW and AUTO modes. Non sono disponibili sostituzioni per la direttiva XMLDATA in modalità EXPLICIT.There is no replacement for the XMLDATA directive in EXPLICT mode. Questa funzionalità verrà rimossa a partire da una delle prossime versioni di Microsoft SQL Server.This feature will be removed in a future version of Microsoft SQL Server. Evitare di usare questa funzionalità in un nuovo progetto di sviluppo e prevedere interventi di modifica nelle applicazioni in cui è attualmente implementata.Avoid using this feature in new development work, and plan to modify applications that currently use this feature.

Di seguito viene indicata la sintassi di base descritta nell'argomento Clausola FOR (Transact-SQL):Following is the basic syntax that is described in FOR Clause (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') ] ]  

ArgomentiArguments

RAW[('ElementName')]RAW[('ElementName')]
Converte ogni riga del set dei risultati della query in un elemento XML con l'identificatore generico <row /> come tag dell'elemento.Takes the query result and transforms each row in the result set into an XML element that has a generic identifier, <row />, as the element tag. È possibile specificare facoltativamente il nome dell'elemento riga quando si utilizza questa direttiva.You can optionally specify a name for the row element when you use this directive. La struttura XML risultante utilizzerà il valore ElementName specificato come elemento riga generato per ogni riga.The resulting XML will use the specified ElementName as the row element generated for each row. Per altre informazioni, vedere Usare la modalità RAW con FOR XML.For more information, see Use RAW Mode with FOR XML.

AUTOAUTO
Restituisce i risultati della query in un semplice albero XML nidificato.Returns query results in a simple, nested XML tree. Ogni tabella nella clausola FROM, per cui è specificata almeno una colonna nella clausola SELECT, viene rappresentata come elemento XML.Each table in the FROM clause for which at least one column is listed in the SELECT clause is represented as an XML element. Le colonne elencate nella clausola SELECT vengono mappate agli attributi di elemento appropriati.The columns listed in the SELECT clause are mapped to the appropriate element attributes. Per altre informazioni, vedere Usare la modalità AUTO con FOR XML.For more information, see Use AUTO Mode with FOR XML.

EXPLICITEXPLICIT
Specifica che la forma dell'albero XML risultante viene definita in modo esplicito.Specifies that the shape of the resulting XML tree is defined explicitly. Con questa modalità è tuttavia necessario che le query siano scritte in modo che le informazioni aggiuntive sulla nidificazione desiderata vengano specificate in modo esplicito.By using this mode, queries must be written in a particular way so additional information about the nesting you want is specified explicitly. Per altre informazioni, vedere Usare la modalità EXPLICIT con FOR XML.For more information, see Use EXPLICIT Mode with FOR XML.

PATHPATH
Consente di combinare facilmente elementi e attributi, nonché di introdurre una nidificazione aggiuntiva per rappresentare proprietà complesse.Provides a simpler way to mix elements and attributes, and to introduce additional nesting for representing complex properties. È possibile utilizzare le query in modalità FOR XML EXPLICIT per costruire questo tipo di struttura XML da un set di righe, ma la modalità PATH costituisce un'alternativa più semplice.You can use FOR XML EXPLICIT mode queries to construct this kind of XML from a rowset, but the PATH mode provides a simpler alternative to the possibly cumbersome EXPLICIT mode queries. La modalità PATH, insieme alla possibilità di scrivere query FOR XML nidificate e alla direttiva TYPE per restituire istanze di tipo xml , consente di formulare più facilmente le query.PATH mode, together with the ability to write nested FOR XML queries and the TYPE directive to return xml type instances, allows you to write queries with less complexity. e rappresenta un'alternativa alla scrittura della maggior parte delle query in modalità EXPLICIT.It provides an alternative to writing most EXPLICIT mode queries. Per impostazione predefinita, la modalità PATH genera un wrapper dell'elemento <row /> per ogni riga nel set dei risultati.By default, PATH mode generates a <row> element wrapper for each row in the result set. È possibile specificare facoltativamente il nome di un elemento.You can optionally specify an element name. In tal caso, il nome specificato viene utilizzato come nome dell'elemento wrapper.If you do, the specified name is used as the wrapper element name. Se si specifica una stringa vuota (FOR XML PATH ('')), non viene generato alcun elemento wrapper.If you provide an empty string (FOR XML PATH ('')), no wrapper element is generated. Per altre informazioni, vedere Usare la modalità PATH con FOR XML.For more information, see Use PATH Mode with FOR XML.

XMLDATAXMLDATA
Specifica che deve essere restituito uno schema XDR (XML-Data Reduced) inline.Specifies that an inline XML-Data Reduced (XDR) schema should be returned. Lo schema viene aggiunto all'inizio del documento come schema inline.The schema is prepended to the document as an inline schema. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML.For a working sample, see Use RAW Mode with FOR XML.

XMLSCHEMAXMLSCHEMA
Restituisce XML Schema W3C (XSD) inline.Returns an inline W3C XML Schema (XSD). È possibile specificare facoltativamente un URI dello spazio dei nomi di destinazione quando si specifica questa direttiva.You can optionally specify a target namespace URI when specifying this directive. In tal modo, viene restituito lo spazio dei nomi specificato nello schema.This returns the specified namespace in the schema. Per altre informazioni, vedere Generare uno schema XSD inline.For more information, see Generate an Inline XSD Schema. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML.For a working sample, see Use RAW Mode with FOR XML.

ELEMENTSELEMENTS
Se si specifica l'opzione ELEMENTS, le colonne vengono restituite come sottoelementi.If the ELEMENTS option is specified, the columns are returned as subelements. In caso contrario, vengono mappate ad attributi XML.Otherwise, they are mapped to XML attributes. Questa opzione è supportata solo con le modalità RAW, AUTO e PATH.This option is supported in RAW, AUTO, and PATH modes only. È possibile specificare facoltativamente XSINIL o ABSENT quando si utilizza questa direttiva.You can optionally specify XSINIL or ABSENT when you use this directive. XSINIL specifica la creazione di un elemento con attributo xsi:nil impostato su True per i valori di colonna NULL.XSINIL specifies that an element that has an xsi:nil attribute set to True be created for NULL column values. Per impostazione predefinita o quando si specifica ABSENT insieme a ELEMENTS, non viene creato alcun elemento per i valori NULL.By default or when ABSENT is specified together with ELEMENTS, no elements are created for NULL values. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML e Usare la modalità AUTO con FOR XML.For a working sample, see Use RAW Mode with FOR XML and Use AUTO Mode with FOR XML.

BINARY BASE64BINARY BASE64
Se si specifica l'opzione BINARY Base64, gli eventuali dati binari restituiti dalla query vengono rappresentanti nel formato con codifica Base64.If the BINARY Base64 option is specified, any binary data returned by the query is represented in base64-encoded format. Per recuperare dati binari in modalità RAW ed EXPLICIT, è necessario specificare questa opzione.To retrieve binary data by using RAW and EXPLICIT mode, this option must be specified. In modalità AUTO, i dati binari vengono restituiti come riferimento per impostazione predefinita.In AUTO mode, binary data is returned as a reference by default. Per un esempio funzionante, vedere Usare la modalità RAW con FOR XML.For a working sample, see Use RAW Mode with FOR XML.

TYPETYPE
Specifica che la query restituisce i risultati come dati di tipo xml .Specifies that the query returns the results as the xml type. Per altre informazioni, vedere Direttiva TYPE nelle query FOR XML.For more information, see TYPE Directive in FOR XML Queries.

ROOT [('RootName')]ROOT [('RootName')]
Specifica l'aggiunta di un singolo elemento principale alla struttura XML risultante.Specifies that a single, top-level element be added to the resulting XML. È possibile specificare facoltativamente il nome dell'elemento radice da generare.You can optionally specify the root element name to generate. Il valore predefinito è "root".The default value is "root".

Vedere ancheSee Also

Usare la modalità RAW con FOR XML Use RAW Mode with FOR XML
Usare la modalità AUTO con FOR XML Use AUTO Mode with FOR XML
Usare la modalità EXPLICIT con FOR XML Use EXPLICIT Mode with FOR XML
Usare la modalità PATH con FOR XML Use PATH Mode with FOR XML
SELECT (Transact-SQL) SELECT (Transact-SQL)
FOR XML (SQL Server) FOR XML (SQL Server)