XMLマスター プロフェッショナル SOAPエンコーディング

XMLマスター プロフェッショナルの試験で、SOAPメッセージ書式とSOAPエンコーディングの組み合わせに関する問題があった。

通常、SOAPの方式では、rpc-encodedまたは、document-literalという組み合わせで使われるのが一般的である。

しかし、問題では、rpc-literalという組み合わせは正しいかどうかを判断させるような問題が出された。
私はこの部分の理解が浅かったため、確信をもって答えることができなかった。

Googleで色々調べているとrpc-literalという組み合わせは使うことが出来るようであった。

ちなみにSOAPの方式に関して、最近はdocument-literalが推奨されているようである。

さて、このメッセージ書式とエンコーディングはどんな意味があるのだろうか。

まず、SOAPメッセージ書式であるが、rpcは、一般的なRPC(リモートプロシージャコール)の意味である。
メソッドをCallするイメージで、XMLのやりとりを行う方式である。
対して、document方式はXML文書をそのまま送受信するようなイメージでやりとりを行う方式である。
なので、document方式のほうが自由度が高い。

ここまでは理解できるのだが、問題はSOAPエンコーディングのほうである。
literalについては、XMLスキーマ(WSDLのType部分)に基づいて定義したものを送信する。
encodedについては、特定のエンコーディングスタイルに従ってエンコーディングしたものを送信する。
この場合、encodingstyle属性にエンコーディング方式の具体的なURIを指定する。

そう考えるとliteral方式はエンコードしないで送信するということなのだろうか。

とするとrpc-literal方式はrpcスタイルでXMLをやりとりするけど、encodeしないよ、という意味なのだろう。これもなんとなく理解できる。

しかしながら、色々調べてみると、document-encodeというスタイルはダメらしい。
ここがよく分からない。なぜダメなのかが明確に分からないのだ。

まだまだ私の理解出来る範囲を超えている世界が広がっている。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です