Hi Tony,

> 1. OK, so Axis2 was designed with wsdl 2.0 in mind. And, thus you have
>  a single input document and a single output document.  We will most
>  likely be interoperating with wsdl 1.1 services for a long while so I
>  must remain compliant in my client application of choice.

Absolutely; Axis2's client API does not limit what you can do at all.

> You said below since the input "model is defined as an XML element of
>  type xsd:string, there's no mapping to do."  I'm fuzzy on this... can
>  you give me an example where a mapping is required?  I just thought
>  use="encoded" mean't that the encoding must be inlined with the soap
>  message itself and use="literal" mean't that the encoding is specified
>  in the schema.

The encoding algorithm is a set of rules for how to map an abstract data
model into XML. WSDL 1.1 uses XML Schema as that abstract data model ..
which leads to issues. Consider a schema like this:

<element x>
  <complexType>
    <element a/>
    <element b/>
    <attribute c/>
  <complexType>
</element>

SOAP Encoding (SOAP 1.1 section 5) does not use attributes .. so that
attr c must become a child element. Does it come first? Come last? What
if there was also a child element called 'c'? 

Problem is there's no spec that defines what the rules are for how to
SOAP Encode any XML Schema. 

> So bottom line, when will the Axiom model (doc/lit) not work with a
>  particular wsdl 1.1 service type?  Sorry to be so hard-headed on this
>  encoding issue.  An example may help me.

Nope, Axiom is just an XML representation. There's no case that cannot
be represented by that.

> Can you also explain your statement about having attrs in your schema
>  making for interoperable issues?  I'm not following.  Attributes can
>  be typed in schema.  What's wrong with the following for instance:
>  <Data name="string-representing-name-of-data">   <Float>xsd:float
>  type<Float> </Data>

That example is not valid for SOAP Enc. Its certainly fine as a bit of
XML- but not if you use SOAP Enc. So what I said is that *if* someone is
using SOAP Enc, then they don't use attrs because of the problem I
explained above.

> 2. I don't really have my data in any particular form.  I will gather
>  information from a running system in order to inject values into a
>  particular model based on the wsdl message, then send the request to a
>  service endpoint.  Basically, my goal is to dynamically,
>  programatically interact with arbitrary service endpoints sort of the
>  same way a bpel engine does with the invoke activity.  These endpoints
>  will most likely by created from wsdl 1.1 toolkits for the forseeable
>  forture so I need to be able to interop with them as a client.

Oh so then there's no problem at all- construct the input to the service
as an Axiom element and use ServiceClient to send it off.

> 3. If all input/output is treated as a document, WSIF/JROM becomes less
>  important, right (at least for Axis2)?  JROM is basically a DOM
>  representation of a complexType I thought.  What value-add can you
>  provide for Axis2?  I guess creating an in-memory Axiom/DOM
>  representation of the input complex type would be helpful.  Then the
>  application could fill in the pertinent data; otherwise, the
>  application would have to read the wsdl and do this itself before it
>  now how to create the input representation.  I am talking about
>  dynamic invocation only here.

Understood- that's exactly what ServiceClient is for. 

Note that this is exactly how generated stubs work .. they fill in the
right kind of Axiom element and use ServiceClient underneath.

> Sorry to ramble here.  Just trying to understand and figure out my best
>  approach to this problem

The best approach for full function dynamic clients using Axis2 is to
formulate the messages as Axiom elements. 

Hope this helps.

Sanjiva.


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

Reply via email to