FOR XML 模式可以是 RAW、AUTO、EXPLICIT 或 PATH。 它會決定所產生 XML 的形狀。
這很重要
FOR XML 選項的 XMLDATA 指示詞已被棄用。 在 RAW 和 AUTO 模式的情況下,請使用 XSD 產生。 在 EXPLICIT 模式中,沒有可替代 XMLDATA 指示詞的方案。 這項功能將在未來的 SQL Server Microsoft 版本中移除。 請避免在新的開發工作中使用此功能,並計劃修改目前使用此功能的應用程式。
以下是 FOR 子句 (Transact-SQL)中所述的基本語法:
[ FOR { BROWSE | <XML> } ]
<XML> ::=
XML
{
{ RAW [ ('ElementName') ] | AUTO }
[
<CommonDirectives>
[ , { XMLDATA | XMLSCHEMA [ ('TargetNameSpaceURI') ]} ]
[ , ELEMENTS [ XSINIL | ABSENT ]
]
| EXPLICIT
[
<CommonDirectives>
[ , XMLDATA ]
]
| PATH [ ('ElementName') ]
[
<CommonDirectives>
[ , ELEMENTS [ XSINIL | ABSENT ] ]
]
}
<CommonDirectives> ::=
[ , BINARY BASE64 ]
[ , TYPE ]
[ , ROOT [ ('RootName') ] ]
論點
RAW[('ElementName')]
取得查詢結果,並將結果集中的每個數據列轉換成具有泛型標識碼、 <數據列 />、作為元素標記的 XML 元素。 當您使用這個指示詞時,可以選擇性地指定數據列項目的名稱。 產生的 XML 會使用指定的 ElementName 作為為每個列產生的列元素。 如需詳細資訊,請參閱 搭配 FOR XML 使用 RAW 模式。
自動
將查詢結果以簡易巢狀 XML 樹狀結構傳回。 FROM 子句中每個在 SELECT 子句中列出的至少一個欄位的數據表都會以 XML 元素表示。 SELECT 節中列出的欄位會對映至適當的元素屬性。 如需詳細資訊,請參閱 搭配 FOR XML 使用 AUTO 模式。
明確的
指定產生之 XML 樹狀結構的形狀已明確地定義。 使用此模式時,必須以特定方式撰寫查詢,以便明確指定所要巢狀的其他資訊。 如需詳細資訊,請參閱 搭配 FOR XML 使用 EXPLICIT 模式。
路徑
提供更簡單的方式來混合元素和屬性,以及引進其他巢狀來表示複雜屬性。 您可以使用 FOR XML EXPLICIT 模式查詢,從數據列集建構這類 XML,但 PATH 模式提供較簡單的明確模式查詢替代方案。 PATH 模式,以及撰寫巢狀 FOR XML 查詢和 TYPE 指示詞以傳回 xml 類型實例的能力,可讓您撰寫比較複雜度較低的查詢。 它提供撰寫大部分 EXPLICIT 模式查詢的替代方案。 根據預設,PATH 模式為結果集中的每個資料列產生一個資料列元素包裝器。 您可以選擇性地指定項目名稱。 如果您這麼做,指定的名稱會當做包裝函式項目名稱使用。 如果您提供空字串(FOR XML PATH ('')),則不會產生任何包裝元素。 如需詳細資訊,請參閱 搭配 FOR XML 使用 PATH 模式。
XMLDATA
指定應該傳回內嵌 XML-Data 縮減 (XDR) 架構。 架構會以內嵌架構的形式附加到文件的前面。 如需範例,請參閱 FOR XML 使用的 RAW 模式。
XMLSCHEMA
傳回內嵌 W3C XML 架構 (XSD)。 指定這個指示詞時,您可以選擇性地指定目標命名空間 URI。 這會傳回架構中指定的命名空間。 如需詳細資訊,請參閱 產生內嵌 XSD 結構描述。 如需工作範例,請參閱 將 RAW 模式與 FOR XML 搭配使用。
元素
如果指定 ELEMENTS 選項,則會以子元素的形式傳回數據行。 否則這些資料行會對應到 XML 屬性。 只有RAW、AUTO和PATH模式才支援此選項。 當您使用這個指示詞時,可以選擇性地指定 XSINIL 或 ABSENT。 XSINIL 指定當 NULL 資料行值時,建立一個 xsi:nil 屬性設定為 True 的元素。 根據預設,或當 ABSENT 與 ELEMENTS 一起指定時,不會為 NULL 值建立任何元素。 如需工作範例,請參閱 搭配 FOR XML 使用 RAW 模式 和 搭配 FOR XML 使用 AUTO 模式。
BINARY BASE64
如果指定 BINARY Base64 選項,查詢所傳回的任何二進位數據會以base64編碼的格式表示。 若要使用RAW和EXPLICIT模式擷取二進位數據,必須指定此選項。 在 AUTO 模式中,預設會以參考形式傳回二進位數據。 如需運作中的範例,請參閱 搭配 FOR XML 使用 RAW 模式。
類型
指定查詢傳回結果做為 xml 類型。 如需詳細資訊,請參閱 FOR XML 查詢中的 TYPE 指示詞。
ROOT [('RootName')]
指定將單一最上層元素新增至產生的 XML。 您可以選擇性地指定要產生的根元素名稱。 預設值為 「root」。
另請參閱
使用 FOR XML 的 RAW 模式
搭配 FOR XML 使用 AUTO 模式
使用 EXPLICIT 模式搭配 FOR XML
使用 PATH 模式搭配 FOR XML
SELECT (Transact-SQL)
FOR XML (SQL Server)