3

我们有一个 WCF 服务,它返回以下内容:

MessageContract
    |
    +-- List<TopLevelDataContract>

TopLevelDataContract
    |
    +-- FirstChildDataContract
    +-- SecondChildDataContract
    +-- ThirdChildDataContract

FirstChildDataContract
    |
    +-- FieldOne
    +-- AnotherField

SecondChildDataContract
    |
    +-- FieldTwo
    +-- YetAnotherField

ThirdChildDataContract
    |
    +-- FieldThree
    +-- AndAnotherField

为了在 SSRS 中充分显示这些数据契约,我们需要将它们展平为表格形式,如下所示:

+----------+--------------+----------+-----------------+------------+-----------------+
| FieldOne | AnotherField | FieldTwo | YetAnotherField | FieldThree | AndAnotherField |
+----------+--------------+----------+-----------------+------------+-----------------+
 ... rows of data...

然而ElementPath,实现这一点的表达式/XMLDP 查询让我们望而却步。我们没有高兴地尝试了以下方法:

  1. 获取 a 类型的所有“行” FirstChildDataContract
<ElementPath IgnoreNamespaces="true">   
  MessageContract{}/TopLevelDataContracts{}/TopLevelDataContract{}/FirstChildDataContract
</元素路径>
  1. 这将获取所有子项,但采用原始 XML 格式:
<ElementPath IgnoreNamespaces="true">   
  MessageContract{}/TopLevelDataContracts{}/TopLevelDataContract{@}
</元素路径>
  1. 这与(1)相同:
<ElementPath IgnoreNamespaces="true">   
  *
</元素路径>

ElementPath如果可能的话,用来实现这一目标的正确表达是什么?

(旁白:为什么微软不直接使用文档齐全且灵活的 XPath,而不是推出他们自己的几乎但不是很像 xpath 查询语言?)

4

1 回答 1

0

我读过这个

http://msdn.microsoft.com/en-us/library/aa964129(SQL.90).aspx

它表示

不支持多个父子层次结构。在此示例中,客户同时拥有订单和退货。提供者可能只返回一组。因为首先指定了 Orders 层次结构,所以自动派生会将其解析为骨架。

我对 SSRS 了解不多,但我正在考虑使用多个数据集作为一种技巧。可能吗?

于 2013-03-25T08:44:09.667 回答