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 メッセージは次のようにシリアライズされる (名前空間宣言は明確化のため省略):
正しい例:
次の WSDL 記述が与えられた場合:
SOAP メッセージは次のようにシリアライズされる (名前空間宣言は明確化のため省略):