0

<types/>wsdlセクション で型を定義するときにいくつかのオプションがあるようです。

タイプ(単純または複雑)を定義すると、次のようにそのタイプを参照できます。<message> <part name="x" type="tns:myTypeName"/>

<types/>セクション内の要素をとして定義すると、次の<element/>ように参照できます。<message> <part name="x" element="myElementName"/>

どちらのオプションも検証に合格しているようです。要素アプローチの例をいくつか見てきましたが、タイプアプローチに問題はありません。どちらが正しいですか?

4

2 に答える 2

1

どちらもオプションですが、意味が異なります。

elementを使用する場合は、メッセージで要素の名前、名前空間、およびタイプを指定します。を指定している場合typeは、タイプのみを指定しています。実際にはpart、WSDLmessage要素ので要素の名前を指定しますが、名前空間はあいまいです。

これは、非互換性の原因となることがよくあります。WS-I BP 1.1仕様では、あいまいさを防ぐため、ではなくを使用するように指定されていますelementtype


WS-IBP1.1ドキュメントをここ数年読んでいません。今では、思い出したよりも複雑だということを思い出しました。

typeRPC/Literalサービスを作成する場合に使用する必要があります。elementドキュメント/リテラル​​サービスを作成する場合は、を使用する必要があります。namespaceどちらの場合も、あいまいさを防ぐために、WSDLでの属性の使用に制限があります。

特に、4.7.21を参照してください。パーツアクセサの子の名前空間

WS-Iの存在そのものが暗示していることの1つは、WSDLを手動で作成しないでください。スキーマの検証により、有効なサービスが生成されることを期待しています。代わりに、選択したWebサービスフレームワークが提供するツールを使用してください。これにより、少なくとも、生成するあいまいさの種類の数がフレームワークごとに1セットに減ります。

于 2013-02-16T23:12:33.323 に答える
0

わかりました、私はちょうど答えを見つけました。仕様によると、どちらかがオプションです。 http://www.w3.org/TR/wsdl#_messages

タイプを使用する場合、1つのパーツのみが許可されることを意味しているようです。要素参照を使用すると、メッセージで多くの部分を指定できます。しかし、そうではないようです。詳細については、上記のJohnSaunderの投稿を参照してください。

于 2013-02-16T23:08:56.263 に答える