Registry Interface WSDL style
Kevin Benson
kmb at mssl.ucl.ac.uk
Mon Nov 15 01:26:08 PST 2004
You are correct Matthew, this should be changed like you said. I
suspect I wrote the Apache Axis code as a "Wrapped" coding
style which of course places the operation name inside the soap body
autmatically. But
the wsdl should reflect this as well. Matthew if you can, please confirm
what I have below is the correct way.
On another note to make things easier with an OAI response, I would like
the new WSDL to just return the <OAI-PMH> element. Unless there are
objections? Ray and I talked about this recently and it does make things
easier and to reuse other OAI components/http that may be already there.
The only downside is it would be possible to return something like an
Identify for a ListRecords request. If you think this downside is reason
enough to not do this, then e-mail to the list.
For the time being I will add a new wsdl to the wiki site later on
this afternoon reflecting the Wrapped style in the wsdl. As for the
response on the OAI, I shall go ahead and put 2 versions down at the
moment and let registry ivoa list pick out the preference.
Thanks,
Kevin
If possible confirm, the new wsdl style should always be something like
this on all our methods. (The response should also follow a similiar
pattern having a "<operationname>Response" as part of the return.) Sorry
namespace/prefix might be a little off, but you get the idea from the
sample:
<operation name="ListIdentifiers">
<input message="tns:ListIdentifiersRequest"/>
<output message="tns:ListIdentifiersResponse"/>
<fault name="ListIdentifiersError" message="tns:ErrorResponse"/>
</operation>
<message name="ListIdentifiersRequest">
<part name="ListIdentifiers" type="tns:ListIdentifiers"/>
</message>
<message name="ListIdentifiersResponse">
<part name="ListIdentifiersResponse"
type="tns:ListIdentifiersResponse"/>
</message>
<element name="ListIdentifiers">
<complexType>
<sequence>
<element minOccurs="0" maxOccurs="1" name="qualifiers"
type="tns:RequestQualifiers" />
<element minOccurs="1" maxOccurs="1" name="metadataPrefix"
type="xs:string" />
</sequence>
</complexType>
</s:element>
<element name="ListIdentifiersResponse">
<complexType>
<sequence>
<element minOccurs="0" maxOccurs="1" name="qualifiers"
type="tns:OAI-PMH" />
</sequence>
</complexType>
</s:element>
On Fri, 12 Nov 2004, Matthew J. Graham wrote:
> Hi,
>
> I am trying to generate an instance of a SOAP message from the Registry
> Interface WSDL and was wondering what style it's supposed to be? The binding
> suggests doc/literal but if this is the case, the message elements should be:
>
> <message name="...">
> <part name="..." element="..."/>
> </message>
>
> and there would be no way of determining what the operation name should be.
> The way it is as the moment means I could send two SOAP messages (valid
> according to the WSDL):
>
> <SOAP:Body>
> <fish> this is of type RequestQualifier </fish>
> <paste> this is the metadataPrefix </paste>
> </SOAP:Body>
>
> and
>
> <SOAP:Body>
> <fish> this is of type RequestQualifier </fish>
> <paste> this is the metadataPrefix </paste>
> </SOAP:Body>
>
> where the first is calling ListIdentifiers and the second ListRecords.
>
> If it is doc/literal wrapped (so that the operation name appears as the
> enclosing element in the SOAP body) then:
> - input and output messages must contain only one part so some of the
> requests will need to be modified, e.g. keyword search
> - the part in the input message refers to an element named after the
> operation
>
> Cheers,
>
> Matthew
>
>
More information about the registry
mailing list