3

同じことを尋ねる他の投稿がウェブ上にあるようですが、それらは質問に完全に対処していないか、私は何かを見逃しています(おそらく後者)。

XAMLXサービスのコンテンツ相関のXPathクエリを定義するとき、名前空間プレフィックスがどこから来ているのか混乱しています。たとえば、クエリ「sm:body()/ xg0:Id」では、「sm」と「xg0」はどこから来ていますか。これらはどこかで指定されていると思いますが、どこにあるのかわかりません。私が物事を正しく理解している場合、メッセージコントラクトで使用した場合の生成クエリは機能しません。ある程度、私はこれに同意します。「xg0」のプレフィックスを「tempuri」に変更すると、基本的なケースでは機能しますが、すべてのケースで機能するわけではありません。このクエリがどのように機能するかを正確に説明するドキュメントはありますか?

4

1 に答える 1

3

名前空間プレフィックスはXAMLXファイルに保存されます。残念ながら、そこに値を表示するUIはありません。XAMLXソースを調べ始める必要があります。以下のXPathMessageQuery.Namespacesセクションを参照してください。ここで、xgScは次のように定義されています。http://tempuri.org/

<Receive x:Name="__ReferenceID0" CanCreateInstance="True" DisplayName="ReceiveRequest" sap:VirtualizedContainerService.HintSize="255,86" OperationName="GetData" ServiceContractName="p:IService">
  <Receive.CorrelationInitializers>
    <RequestReplyCorrelationInitializer CorrelationHandle="[handle]" />
    <QueryCorrelationInitializer>
      <XPathMessageQuery x:Key="key1">
        <XPathMessageQuery.Namespaces>
          <ssx:XPathMessageContextMarkup>
            <x:String x:Key="xgSc">http://tempuri.org/</x:String>
          </ssx:XPathMessageContextMarkup>
        </XPathMessageQuery.Namespaces>sm:body()/xgSc:GetData/xgSc:orderId</XPathMessageQuery>
    </QueryCorrelationInitializer>
  </Receive.CorrelationInitializers>
  <ReceiveParametersContent>
    <p1:OutArgument x:TypeArguments="x:String" x:Key="orderId" />
  </ReceiveParametersContent>
</Receive>
于 2013-01-15T20:00:49.210 に答える