users@jax-rpc.java.net

Re: JWSDP how to create wsdl without sequence restrict on server side

From: Anne Thomas Manes <anne_at_manes.net>
Date: Thu, 08 Apr 2004 14:25:52 -0400
See section 5.4.1 of the JAX-RPC specification (which refers to RPC/encoded):

"A JAX-RPC value type is mapped to an xsd:complexType with either the xsd:all or
the
xsd:sequence compositor. Please notice that the XML Schema specification places
several restrictions on the contents of a particle that uses the
xsd:all compositor."

The restrictions associated with using the
xsd:all compositor is that you may not have repeating elements within the particle (no arrays).

If you're using serialized Document style, then the xsd:sequence compositor is required. See Section  6.41. of the JAX-RPC spec:

"When mapping document style operations, in addition to the regular mapping, JAX-RPC
implementations are required to support the so-called “wrapper” style, in which the
logical parameters of an operation are wrapped inside a
xsd:sequence element named
after the operation.
In order to qualify as using the “wrapper” style, an operation must fulfill the following
conditions:
its input and output messages (if present) must contain exactly one part;
such a part must refer to an element named after the operation;
such an element (a wrapper) must be of a complex type defined using the
xsd:sequence compositor and containing only elements declarations.
In this case, implementations must be able to discard the wrapper elements and treat
their children as the actual parameters of the operation."

You have a few choices:
- You can use non-serialized Document style  -- transform the SOAP contents into a DOM and process it yourself.
- Insert a handler that validates the message, and if it finds the elements to be mis-sequenced, it can transform the message into the proper sequence.
- Fix your client so that it generates messages that conform to your schema.

Anne

At 09:21 PM 4/7/2004, you wrote:

HI,

This might be a well-known, but i have no clue what it is for now.

I have already set up a web serviec by using jwsdp ver1.3, whose wsdl always containing key word "sequence",like:

<sequence>
  <element name="getProductHeader" type="tns:GetProductHeader"/>
  <element name="sessionID" type="string"/>
</sequence>
 

If i strictly follow the defined sequence to submit soap document to  this web service, it works perfectly OK.

But our client is sending up data, not following the sequence, Igot deserialization error, complianing about the sequence. How can i improve the process of webservice creation on the server side, and get this resolved? I guess it should be an extra option
to relieve the strict sequence chec as using wscomiple to create model.gz file.

THanks A lot for your help.
Xue-Chun.

_______________________________________________
Join Excite! - http://www.excite.com
The most personalized portal on the Web!

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@jax-rpc.dev.java.net
For additional commands, e-mail: users-help@jax-rpc.dev.java.net

~~~~~~~~~~~~~~~~~~
Anne Thomas Manes
VP & Research Director
Burton Group --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscribe@jax-rpc.dev.java.net For additional commands, e-mail: users-help@jax-rpc.dev.java.net