Nomi di colonna con il percorso specificato come dati()Column Names with the Path Specified as data()

Se il percorso specificato come nome di colonna è "data()", il valore viene gestito nel codice XML generato come valore atomico.If the path specified as column name is "data()", the value is treated as an atomic value in the generated XML. Se anche l'elemento successivo nella serializzazione è un valore atomico, al codice XML viene aggiunto uno spazio.A space character is added to the XML if the next item in the serialization is also an atomic value. Ciò risulta utile quando si creano valori di elementi e di attributi di tipo elenco.This is useful when you are creating list typed element and attribute values. La query seguente recupera l'ID del modello di prodotto e l'elenco dei prodotti di quel modello.The following query retrieves the product model ID, name, and list of products in that product model.

USE AdventureWorks2012;  
GO  
SELECT ProductModelID       AS "@ProductModelID",  
       Name                 AS "@ProductModelName",  
      (SELECT ProductID AS "data()"  
       FROM   Production.Product  
       WHERE  Production.Product.ProductModelID =   
              Production.ProductModel.ProductModelID  
      FOR XML PATH (''))    AS "@ProductIDs"  
FROM  Production.ProductModel  
WHERE ProductModelID= 7   
FOR XML PATH('ProductModelData');  

L'istruzione SELECT nidificata recupera un elenco di ID di prodottiThe nested SELECT retrieves a list of product IDs. e specifica "data()" come nome di colonna per gli ID di prodotto.It specifies "data()" as the column name for product IDs. Poiché la modalità PATH specifica una stringa vuota per il nome dell'elemento riga, non viene generato alcun elemento riga.Because PATH mode specifies an empty string for the row element name, there is no row element generated. I valori vengono invece restituiti come assegnati a un attributo ProductIDs dell'elemento riga <ProductModelData> dell'istruzione SELECT padre.Instead, the values are returned as assigned to a ProductIDs attribute of the <ProductModelData> row element of the parent SELECT. Risultato:This is the result:

<ProductModelData ProductModelID="7"

ProductModelName="HL Touring Frame"

ProductIDs="885 887 888 889 890 891 892 893" />

Vedere ancheSee Also

Utilizzare la modalità PATH con FOR XMLUse PATH Mode with FOR XML