用于指定 XML 报表数据的 XML 查询语法
更新日期: 2006 年 4 月 14 日
在 Reporting Services 中,可以为 XML 数据源创建数据集。定义数据源后,可以为数据集创建查询。根据数据源所指向的 XML 数据类型,可以通过包括 XML Query 或元素路径来创建数据集查询。XML Query 以 <Query> 标记开头,并且包括因数据源而异的命名空间和 XML 元素。元素路径与命名空间无关,它使用与 XPath 类似的语法指定要使用的来自基础 XML 数据的节点和节点属性。有关元素路径的详细信息,请参阅用于指定 XML 报表数据的元素路径语法。
可以为以下类型的 XML 数据创建 XML 数据源:
- URL 使用 http 协议指向的 Xml 文档
- 返回 XML 数据的 Web 服务端点
- 嵌入的 XML 数据
指定 XML Query 或元素路径的方式取决于 XML 数据的类型。
对于 XML 文档,XML Query 是可选的。如果包括它,则它可以包含可选的 XML ElementPath。XML ElementPath 的值使用元素路径语法。您可以包括 XML Query 和 XML ElementPath,以便在数据源中的 XML 数据需要时正确处理命名空间。
对于连接字符串 URL 指向的 Web 服务端点,XML Query 定义 Web 服务方法和/或 SOAP 操作。XML 数据提供程序将创建 Web 服务请求,以检索要用于报表的 XML 数据。
注意: |
---|
当 Web 服务命名空间包括正斜杠 (/) 字符时,应同时包括 Web 服务方法和 SOAP 操作,以使 XML 数据处理扩展插件可以正确派生命名空间。 |
对于嵌入的 XML 文档,XML Query 定义要使用的嵌入 XML 数据、包括可选命名空间并包含可选的 XML ElementPath。
指定 XML 数据的查询参数
可以为 XML 文档指定查询参数。
- 对于 URL 请求,查询参数以标准 URL 参数的形式包含在查询中。
- 对于 Web 服务请求,需要将查询参数传递给 Web 服务方法。若要定义查询参数,请使用**“数据集”对话框的“参数”**选项卡。有关详细信息,请参阅数据集(“参数”选项卡,报表设计器)。
示例
下表中的示例说明如何从报表服务器 Web 服务、XML 文档和嵌入的 XML 数据中检索数据。
XML 数据源 | 查询示例 |
---|---|
使用 ListChildren 方法获得的 Web 服务 XML 数据。 |
|
使用 SoapAction 获得的 Web 服务 XML 数据。 |
|
使用命名空间的 XML 文档或嵌入的 XML 数据。 为元素路径指定命名空间的查询元素。 |
|
嵌入的 XML 文档。 |
|
使用默认值的 XML 文档。 |
No query. 元素路径是从 XML 文档本身派生而来的,并且与命名空间无关。 |
注意: |
---|
第一个 Web 服务示例使用 ListChildren 方法列出报表服务器的内容。若要运行此查询,必须创建新的数据源并将连接字符串设置为 https://localhost/reportserver/reportservice2005.asmx。ListChildren 方法有两个参数:Item 和 Recursive。将 Item 的默认值设置为 / 并将 Recursive 设置为 1。 |
指定命名空间
使用 XML Query 元素可以指定在数据源的 XML 数据中使用的命名空间。下面的 XML 查询使用命名空间 sales。sales:LineItems
和 sales:LineItem
的 XML ElementPath 节点使用命名空间 sales。
<Query xmlns:sales=
"https://schemas.microsoft.com/StandardSchemas/ExtendedSales">
<SoapAction>
https://schemas.microsoft.com/SalesWebService/ListOrders
</SoapAction>
<ElementPath>
Customers/Customer/Orders/Order/sales:LineItems/sales:LineItem
</ElementPath>
</Query>
若要指定数据提供程序命名空间以使默认的命名空间保持为空,请使用 xmldp。下面的示例说明了这一点。
示例
以下示例使用 XML 文档 DPNamespace.xml,该表之后提供了该文档以进行说明。此表显示了包括命名空间前缀的 XML ElementPath 语法的两个示例。
XML 查询元素
数据集中的结果字段
<Query/>
节点
ns
值 Ahttps://schemas.microsoft.com/...
值 Bhttps://schemas.microsoft.com/...
值 Chttps://schemas.microsoft.com/...
<xmldp:Query xmlns:xmldp="https://schemas.microsoft.com/sqlserver/2005/02/reporting/XmlDPQuery" xmlns:ns="https://schemas.microsoft.com/...">
<xmldp:ElementPath>Root {}/ns:Element2/Node</xmldp:ElementPath>
</xmldp:Query>
节点
值 D
值 E
值 F
XML 文档:DPNamespace.xml
可以复制此 XML 并将其保存到报表设计器可以访问的 URL 以用作 XML 数据源:例如 https://localhost/DPNamespace.xml。
<Root xmlns:ns="https://schemas.microsoft.com/...">
<ns:Element1>
<Node>Value A</Node>
<Node>Value B</Node>
<Node>Value C</Node>
</ns:Element1>
<ns:Element2>
<Node>Value D</Node>
<Node>Value E</Node>
<Node>Value F</Node>
</ns:Element2>
</Root>
请参阅
概念
其他资源
帮助和信息
更改历史记录
发布日期 | 历史记录 |
---|---|
2006 年 4 月 14 日 |
|