FOR XML AUTO モードでは、要素名がテーブル名にマップされ、属性名が列名にマップされる XML 階層が生成されます。 これにより、データベース テーブルと列の情報が公開されます。 クエリでテーブルと列のエイリアスを指定することで、AUTO モード (サーバー側の書式設定) を使用する場合は、データベース情報を非表示にすることができます。 これらのエイリアスは、結果の XML ドキュメントで要素名と属性名として返されます。
たとえば、次のクエリは AUTO モードを指定します。そのため、XML の書式設定はサーバー上で行われます。
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
結果の XML ドキュメントでは、要素名と属性名にエイリアスが使用されます。
<?xml version="1.0" encoding="utf-8" ?>
<root>
<C F="Nancy" L="Fuller" />
<CE F="Andrew" L="Peacock" />
<C F="Janet" L="Leverling" />
...
</root>
NESTED モード (クライアント側の書式設定) を使用すると、結果の XML ドキュメント内の属性に対してのみエイリアスが返されます。 基本テーブルの名前は、常に要素名として返されます。 たとえば、次のクエリは NESTED モードを指定します。
SELECT C.FirstName as F,C.LastName as L
FROM Person.Contact C
FOR XML AUTO
結果の XML ドキュメントでは、基本テーブルの名前は要素名として返され、テーブルのエイリアスは使用されません。
<?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>