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>
次に、フィールド ソース「name」を使用して「Name」というフィールドを作成します。問題ありません - これは問題なくレポートで使用できます。
入力 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 を実際に制御することはできないため、デフォルトの名前空間に固執しています。