我对 SSRS (SQL Server 2008 R2) 中的报告有疑问。无论输入是从报告生成器 (v3) 中还是通过 SSRS 的 Web 服务接口提供的,都会出现此问题。
假设这是输入 XML(在名为“ProvidedData”的参数中):
<person>
<name>joe</name>
</person>
...我使用查询创建了一个数据集:
<Query><XmlData>" & Parameters!ProvidedData.Value & "</XmlData>
<ElementPath>person</ElementPath></Query>
然后我使用字段源“名称”创建一个名为“名称”的字段。没问题 - 这可以毫无问题地用于报告。
如果我更改输入 XML 以为其提供一些名称空间信息,它也可以在没有任何更改的情况下工作。所以现在XML是:
<person xmlns:p="http://somenamespace">
<name>joe</name>
</person>
这也有效 - 同样,其他任何地方都没有变化。作为报表生成器中的默认值或通过 Web 服务接口从 C# 传入时使用。
问题是我正在为 XML 提供默认命名空间,当我使用该 XML 时,字段查询无法解析。没有错误,只是找不到值。
所以如果XML如下,那就不行了:
<person xmlns="http://somenamespace">
<name>joe</name>
</person>
有任何想法吗?我对传入的 XML 没有任何控制权,所以我坚持使用默认命名空间。