共用方式為


FOR XML 安全性考量 (SQLXML 4.0)

適用於:SQL ServerAzure SQL Database

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>