FOR XML modlarından bir diğeri AUTO modudur. Bu mod tıpkı RAW gibi kullanımı basittir ancak daha karmaşık yapıda SXML dokümanları oluşturmamızı sağlar. Bu modda SELECT deyimini kullanabiliyoruz. Bu modda oluşturulan sorguda SELECT deyimi ile belirtilmiş her bir tablo için verinin çekildiği tablodan bir element oluşturulur. SELECT deyimi ile belirtilen her bir kolon element olarak eklenir.
FOR XML AUTO kullanımına ilişkin ilk örneğimizin kodlarını yazalım. AdventureWorks2012 veri tabanı üzerinde işlem yapıyorum.
SELECT CustomerID, LastName, FirstName, MiddleName FROM Person.Person AS Kisi INNER JOIN Sales.Customer AS Musteri ON Kisi.BusinessEntityID = Musteri.PersonID FOR XML AUTO;
Sonuç:
Linke tıkladığımızda aşağıdaki gibi bir sonuç alırız.
.... .... ....
Görüleği üzere Customer ve Person tablosundaki verileri XML elementleri haline dönüştürdük. Yani bir tablo altındaki tüm kolonlar bizim XML dokümanımızda element olarak listenebiliyor. Listede görüldüğü gibi, Sales.Customer tablosundaki CustomerID attribute olarak Musteri adındaki elementimizin altında ve sorguya her eklenen kolon da XML dokümanında veri olarak listenebiliyor.
Şimdi üstteki aynı sorguyu ELEMENTS seçeneği ile tekrar oluşturup sonucu görelim.
SELECT CustomerID, LastName, FirstName, MiddleName FROM Person.Person AS Kisi INNER JOIN Sales.Customer AS Musteri ON Kisi.BusinessEntityID = Musteri.PersonID FOR XML AUTO, ELEMENTS;
Oluşan XML linkine tıkladığımızda elde ettiğimiz XML dokümanının içeriğini görebiliriz.
29485 Abel Catherine R. 29486 Abercrombie Kim 29487 Acevedo Humberto ... ... ... 29484 Achong Gustavo
Şeklinde devam eden bir doküman elde ederiz. Sorgumuzu bu modda kullandığımızda yani FOR XML RAW ile birlikte ELEMENTS seçeneğini kullandığımızda varsayılan attribute mapping yapısı yerine her kolonu bir element düğümü (node) şeklinde gösterir.