共用方式為


從 XML 資料建立報表資料集

Reporting Services 提供一個資料處理延伸模組,這個模組支援從 XML 資料來源擷取報表資料。報表可以使用 XML 文件和 Web 服務中的資料,或是在查詢中內嵌 XML。沒有提供從 SQL Server 資料庫擷取 XML 文件的內建支援。

連接到 XML 資料來源,以及從 XML 資料來源擷取資料

若要擷取報表中的 XML 資料,請使用指定 Web 服務或 XML 文件之 URL 的連接字串來建立資料來源。您也可以使用空的連接字串來建立資料來源,並在資料集查詢中內嵌 XML 資料。

每一個 XML 資料來源必須具有下列特性:

  • 資料來源類型必須是 [XML]。Reporting Services 提供 XML 資料處理延伸模組來擷取及處理報表中的資料。

  • 必須為 Windows 整合式安全性設定認證,否則就無認證。

    不支援預存認證和提示認證。請記住,如果您停用 Windows 整合式安全性,您就無法利用它擷取資料。如果您指定預存認證或提示認證,會在執行階段發生錯誤。

    如果您選取無認證,會使用匿名存取。請確定您已為報表伺服器定義自動執行帳戶,以連接到外部資料來源。XML 資料處理延伸模組不會將認證傳遞到目標 URL 或 Web 服務;除非您已定義自動執行帳戶,否則連接不會成功。如需詳細資訊,請參閱<設定自動執行帳戶>。

  • 連接字串必須是指向 Web 服務、網路架構應用程式或可透過 HTTP 使用之 XML 文件的 URL;XML 文件的副檔名必須是 XML。您也可以針對內嵌在資料集查詢中的 XML 資料使用空的連接字串。

  • 查詢必須傳回 XML 資料。如果是 XML 文件,您可以使用類似於 XQuery 的 XML 語法提供元素路徑,如<指定 XML 報表資料的元素路徑語法>中所述。如果是 Web 服務,您可以提供會指定要呼叫之方法或 SOAP 動作的 <Query> 元素。如果 XML 資料來源有一個階層式結構會產生您想用於報表中的資料,可以將此查詢保留空白,並使用預設查詢。此查詢執行時所擷取的 XML 元素節點值和屬性會對應到您用於報表中的資料集欄位。

  • 您必須使用以文字為基礎的查詢設計工具來建立查詢;因為不會分析此查詢來識別參數;所以,您必須透過<資料集屬性>對話方塊上的 [參數] 頁面來建立參數。如需有關查詢語法的詳細資訊,請參閱<指定 XML 報表資料的 XML 查詢語法>。如需有關一般查詢設計工具的詳細資訊,請參閱<Reporting Services 中的查詢設計工具>。

XML 資料來源的連接字串

下列範例分別說明 Web 服務和 XML 文件的連接字串語法。不支援 file:// 通訊協定。

XML 文件類型

連接字串範例

Web 服務

http://adventure-works.com/results.aspx

XML 文件

https://localhost/XML/Customers.xml

內嵌 XML 文件

空的

如需有關定義資料來源的詳細資訊,請參閱<如何:建立內嵌或共用資料來源>。

含有 XML 資料來源之資料集的查詢

資料集包含一個查詢,這個查詢是為了擷取特定結果集而對資料來源執行的命令文字,此結果集會對應到資料集內的欄位集合。您也可以對資料集設定篩選值,以限制從資料來源傳回的結果;下表會顯示當資料來源為 XML 類型時,資料集查詢的可能值。

資料集查詢

描述

空的

使用空的查詢來建立預設結果集;預設查詢的建立方式,是藉由讀取資料來源,並周遊到 XML 節點階層中的第一個分葉集合。結果集會包含所有節點,連同該路徑上的文字值和所有節點屬性;結果集內的資料行會對應到資料集的欄位。

元素路徑

指定從資料來源擷取 XML 資料時所要使用的節點順序。

XML 查詢元素

具有下列選擇性元素的 XML 查詢規格。

XML 資料來源必要的 XML 元素選擇性 XML 元素
如果是 Web 服務 <Method Namespace= "namespace" Name="MethodName" /> -- or -- <SoapAction> soap 動作 </SoapAction> <ElementPath> 元素路徑 </ElementPath> <Method Namespace= "namespace" Name="MethodName" /> -- or -- <SoapAction> soap 動作 </SoapAction>
如果是 XML 文件 <ElementPath> 元素路徑 </ElementPath>
如果是內嵌 XML 文件 <XmlData> 內部 XML</XmlData> <ElementPath> 元素路徑 </ElementPath> -- or -- <ElementPath IgnoreNamespaces="true"> 元素路徑 </ElementPath>

使用 XML 查詢元素可指定命名空間,或在 XML ElementPath 中指定 IgnoreNamespaces 屬性來忽略這些命名空間。如需有關 XML 查詢元素的詳細資訊,請參閱<指定 XML 報表資料的 XML 查詢語法>。如需有關元素路徑語法的詳細資訊,請參閱<指定 XML 報表資料的元素路徑語法>。

擷取 XML Web 服務資料的需求

XML 資料處理延伸模組不會為您偵測該配置。因此,您必須有某個方式可以探索哪些 SOAP 方法將擷取您想要的資料,您也必須了解 Web 服務用於其資料的定址配置或命名空間。

擷取 XML 文件資料的需求

使用 http 通訊協定時,伺服器必須傳回 XML 資料,或是必須將 XML 資料內嵌在 XML Query 元素中。如果您使用 http 通訊協定直接參考 XML 文件,其副檔名必須是 .xml。您必須知道如何建立 XML 查詢來擷取所有需要的資料。如果您未指定元素路徑,剖析 XML 文件的預設行為是選取到 XML 文件中分葉節點集合的第一個可用路徑。如果此 XML 文件包含其他同層級分葉節點集合的其他路徑,除非您在查詢中指定路徑,否則會忽略這些節點。如需詳細資訊,請參閱<指定 XML 報表資料的元素路徑語法>。