如果指定為欄名稱的路徑是「data()」,則該值會被視為所生成 XML 中的原子值。 如果串行化中的下一個專案也是原子值,則會在 XML 中新增空格。 當您建立清單型別項目和屬性值時,這會很有用。 下列查詢會擷取該產品模型中的產品型號標識碼、名稱和清單。
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');
巢狀 SELECT 會擷取產品標識碼的清單。 它會指定 「data()」 作為產品識別碼的數據行名稱。 由於PATH模式會指定資料列專案名稱的空字串,因此不會產生任何資料列元素。 相反地,值會以指派給父 SELECT 之數據列元素的 <ProductModelData> ProductIDs 屬性傳回。 以下是結果:
<ProductModelData ProductModelID="7"
ProductModelName="HL Touring Frame"
ProductIDs="885 887 888 889 890 891 892 893" />