WS-I Basic Profile Testing Tool

今日、.NETで開発したWebサービスがWS-I Basic Profile1.0に適合するかどうかをTesting Toolを用いて検証してみた。

すると、以下のR2110がFailedになった。どうも、.NETのコードから起こしたWSDLでは、R2110がFailedになることがあるようだ。
また、AWS3.0のWSDLもR2110に適合していないようである。
なかなか、Testing ToolをPassするのは難しいことがわかった。

5.2.3 soapenc:Array (配列)
WSDL 1.1 の 2.2 節にある,配列 (array) 型を宣言することについての推奨は, 多様な解釈をされてきたため,相互運用性の問題となっている。 さらに,配列を宣言するにはもっと明確な方法がある。

R2110 DESCRIPTION の中では 配列 (array) 宣言は soapenc:Array 型を拡張又は制限してはならない (MUST NOT)。

R2111 DESCRIPTION の中では 配列 (array) 宣言は型宣言に wsdl:arrayType 属性を使用してはならない (MUST NOT)。

R2112 DESCRIPTION の中では 配列 (array) 宣言のラッパー要素の名前は ArrayOfXXX の形式で名前付けすべきではない (SHOULD NOT)。

R2113 シリアライズされた配列をもつ MESSAGE は soapenc:arrayType 属性を含んではならない (MUST NOT)。

次に例を示す:

間違っている例:

次の WSDL 記述が与えられた場合:












SOAP メッセージは次のようにシリアライズされる (名前空間宣言は明確化のため省略):


abcd
efgh

正しい例:

次の WSDL 記述が与えられた場合:







SOAP メッセージは次のようにシリアライズされる (名前空間宣言は明確化のため省略):


abcd
efgh