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. FirstChildDataContractタイプのすべての「行」を取得します。
<ElementPath IgnoreNamespaces="true">   
  MessageContract{}/TopLevelDataContracts{}/TopLevelDataContract{}/FirstChildDataContract{}
</ElementPath>
  1. これはすべての子を取得しますが、未加工の XML 形式です。
<ElementPath IgnoreNamespaces="true">   
  MessageContract{}/TopLevelDataContracts{}/TopLevelDataContract{@}
</ElementPath>
  1. これは(1)と同じです:
<ElementPath IgnoreNamespaces="true">   
  *
</ElementPath>

ElementPath可能であれば、これを達成するために使用する正しい表現は何ですか?

(余談ですが、Microsoft は、独自の XPath クエリ言語にほとんど似ていないものの、十分に文書化されていて柔軟な XPath を使用しなかったのはなぜですか?)

4

1 に答える 1

0

私はこれを読みました

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

それは述べた

複数の親子階層はサポートされていません。この例では、顧客は注文と返品の両方を持っています。プロバイダーは 1 つのセットのみを返す場合があります。Orders 階層が最初に指定されているため、自動派生はそれをスケルトンとして解決します。

SSRSについてはよくわかりませんが、複数のデータセットをトリックとして使用することを考えています。出来ますか?

于 2013-03-25T08:44:09.667 に答える