FOR XML-Sicherheitsüberlegungen (SQLXML 4.0)
Der FOR XML AUTO-Modus erstellt eine XML-Hierarchie, in der Elementnamen Tabellennamen und Attributnamen Spaltennamen zugeordnet werden. Somit werden die Datenbanktabelle und die Spalteninformationen verfügbar gemacht. Sie können die Datenbankinformationen ausblenden, wenn Sie den AUTO-Modus (serverseitige Formatierung) verwenden, indem Sie Tabellen- und Spaltenaliasse in der Abfrage angeben. Diese Aliasse werden in dem resultierenden XML-Dokument als Element- und Attributsnamen zurückgegeben.
Die folgende Abfrage gibt beispielsweise den AUTO-Modus an, daher wird die XML-Formatierung auf dem Server durchgeführt:
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
Im resultierenden XML-Dokument werden die Aliasse für Element- und Attributsnamen verwendet:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<C F="Nancy" L="Fuller" />
<CE F="Andrew" L="Peacock" />
<C F="Janet" L="Leverling" />
...
</root>
Wenn Sie den NESTED-Modus (clientseitige Formatierung) verwenden, werden Aliasse nur für Attribute im resultierenden XML-Dokument zurückgegeben. Die Namen der Basistabellen werden immer als Elementnamen zurückgegeben. Die folgende Abfrage gibt beispielsweise den NESTED-Modus an.
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
Im resultierenden XML-Dokument werden die Namen der Basistabellen als Elementnamen zurückgegeben; Tabellenaliasse werden nicht verwendet:
<?xml version="1.0" encoding="utf-8" ?>
<root>
<Person.Contact F="Nancy" L="Fuller" />
<Person.Contact F="Andrew" L="Peacock" />
<Person.Contact F="Janet" L="Leverling" />
...
</root>