You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cxf.apache.org by Gregor Weiske <gw...@progress.com> on 2010/05/10 23:45:25 UTC
WSDL validator - bug?
Hello,
If I understand http://www.w3.org/TR/wsdl#_soap:body specifically ...
<definitions .... >
<binding .... >
<operation .... >
<input>
<soap:body parts="nmtokens"? use="literal|encoded"?
encodingStyle="uri-list"? namespace="uri"?>
</input>
<output>
<soap:body parts="nmtokens"? use="literal|encoded"?
encodingStyle="uri-list"? namespace="uri"?>
</output>
</operation>
</binding>
</definitions>
... correctly, then e.g. ...
<wsdl:binding name...
<soap:binding ...>
<wsdl:operation ...>
<soap:operation style="document"/>
<wsdl:input>
<soap:body use="literal" parts="part1 part2 part3"/>
</wsdl:input>
<wsdl:output>
...
... should be valid WSDL. However, the apache-cxf-2.2.6\bin\wsdlvalidator tells me:
WSDLValidator Error : WSI-BP-1.0 R2201 violation: Operation 'MultiPartStringInt' more than one part bound to body
If I change the WSDL fragment to the following, there are no complaints from the validator.
<wsdl:binding name...
<soap:binding ...>
<wsdl:operation ...>
<soap:operation style="document"/>
<wsdl:input>
<soap:body use="literal" parts="part1"/>
<soap:body use="literal" parts="part2"/>
<soap:body use="literal" parts="part3"/>
</wsdl:input>
<wsdl:output>
Bug?
Thanks
Gregor
Re: WSDL validator - bug?
Posted by Daniel Kulp <dk...@apache.org>.
Just because it's a valid wsdl does NOT mean it's a valid service according to
WS-I Basic Profile rules. The WS-I BP specifically sets out to define a
strict subset of the various rules that are there to help interopability.
In your first case, yes, it's a valid wsdl, but no, it's not WSI BP compliant
which is why the validator flags it. According to the WSI-BP, the body
should have a single part.
Ironically, your second wsdl is invalid. Only a single soap:body element
should be allowed there.
Dan
On Monday 10 May 2010 5:45:25 pm Gregor Weiske wrote:
> Hello,
>
> If I understand http://www.w3.org/TR/wsdl#_soap:body specifically ...
> <definitions .... >
> <binding .... >
> <operation .... >
> <input>
> <soap:body parts="nmtokens"? use="literal|encoded"?
> encodingStyle="uri-list"? namespace="uri"?>
> </input>
> <output>
> <soap:body parts="nmtokens"? use="literal|encoded"?
> encodingStyle="uri-list"? namespace="uri"?>
> </output>
> </operation>
> </binding>
> </definitions>
>
> ... correctly, then e.g. ...
>
> <wsdl:binding name...
> <soap:binding ...>
> <wsdl:operation ...>
> <soap:operation style="document"/>
> <wsdl:input>
> <soap:body use="literal" parts="part1 part2 part3"/>
> </wsdl:input>
> <wsdl:output>
> ...
> ... should be valid WSDL. However, the apache-cxf-2.2.6\bin\wsdlvalidator
> tells me:
>
> WSDLValidator Error : WSI-BP-1.0 R2201 violation: Operation
> 'MultiPartStringInt' more than one part bound to body
>
> If I change the WSDL fragment to the following, there are no complaints
> from the validator. <wsdl:binding name...
> <soap:binding ...>
> <wsdl:operation ...>
> <soap:operation style="document"/>
> <wsdl:input>
> <soap:body use="literal" parts="part1"/>
> <soap:body use="literal" parts="part2"/>
> <soap:body use="literal" parts="part3"/>
> </wsdl:input>
> <wsdl:output>
>
> Bug?
>
> Thanks
>
> Gregor
--
Daniel Kulp
dkulp@apache.org
http://dankulp.com/blog