Mark,

If the request contains:

<s:Body xmlns:s="[soapNamespace]">
  <submitDocument xmlns="[yourNamespace]">
    <requestA>someArg</requestA>
  </submitDocument>
</s:Body>

Then a WS-I compliant server will use the yourNamespace}submitDocument
element as the message signature and dispatch it accordingly.

If you have defined the contents of the <submitDocument> element to be
a choice or a substitution group, then it will not qualify as wrapped
doc/literal. The wrapped convention requires that the wrapper element
be defined as a <sequence>.

My guess is that you will experience a lot of interop issues with a
service like this.
You would do better to define two separate operations for "requestA"
and "requestB".

Anne

Anne

On 9/12/07, Mark Airey <[EMAIL PROTECTED]> wrote:
> Hi,
>
>   This is something that I have been attempting to understand myself.  I
> am developing a wrapped style service that publishes one operation, but
> this operation looks at the wrapped element to determine what to do.
> For example if the request is
> <submitDocument><requestA>someArg</requestA></submitDocument> my service
> sees the requestA element, validates it against the proper schema, and
> instantiates ClassA to gather and return data.  If  the request is
> <submitDocument><requestB>someOtherArg</requestB></submitDocument> my
> service sees the requestB element, validates it against the proper
> schema, and instantiates ClassB to gather and return data.  I have
> defined a substitution group for the valid request elements.  Is this
> WS-I compliant?  It works for me, but I have had some trouble getting an
> automated test tool to generate a client it can use via the wsdl.
>
> Mark
>
> > Oliver,
> >
> > The WS-I Basic Profile specifies that each operation must have a
> > unique signature. (The SOAP and WSDL specifications don't address this
> > issue, therefore it's unspecified.) On a practical level, the SOAP
> > engine requires some means to determine how to dispatch the request,
> > therefore it needs some type of signature.
> >
> > Per the WS-I BP, an operation's signature is defined as the qualified
> > name of the child element of the SOAP Body element. If you define the
> > input message part for one of your operations as element="xsd:any",
> > you would have no way to differentiate that operation from any other
> > operation. Therefore, if you want to expose multiple operations in the
> > service, you must define unique wrapper elements for each one.
> >
> > Axis follows the WS-I BP signature requirements. Axis2 allows for
> > other methods to specify the signature, such as the SOAPAction header
> > or a WSA Action value.
> >
> > Anne
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to