Hi Anne,
Hmm... You have a point. But ultimately the message name would vanish
(since we are genrating a wrapper schema prior to unwrapping) and I
need a way to recreate the exact QName inside a databinding extension
with the information that is already there (which happend to be the
AxisService)
I was thinking that we would only need to unwrap the input but it is
true that we may have to unwrap the output if it contains a single
type. So you are absolutely right in using the message name in the
identifier.
What I was mostly worried is the introduction of such private
conventions inside the code generator.
Ajith
On 6/28/06, Anne Thomas Manes <[EMAIL PROTECTED]> wrote:
You would need to use the message name as the namespaceURI to ensure
uniqueness. (Notice that your example uses "part1" for both input and output
messages for the same operation.)
Anne
On 6/28/06, Ajith Ranabahu <[EMAIL PROTECTED]> wrote:
>
Hi all,
Dennis has been a bit silent on the mailing list these days so I
decided to move on with the mentioned plan in the last mail. It seems
that there is no alternative to the problem of finding how to populate
the method signatures other than a schema walker that figures out the
part names and their type during the code generation.
While doing that I came across a small issue. Our type mapper (which
is basically a wrapped hash table) is global. As soon as you try to
populate it with types that relate to parts (with the part name as the
key) a problem occurs. The part names are *not* supposed to be unique
across messages and part names are not namespace qualified for
rpc/lit!
Here is a snippet from one of the test WSDL's
<message name="requestMessage">
<part name="part1" type="types:echoRequest"/>
</message>
<message name="responseMessage">
<part name="part1" type="types:echoResponse"/>
</message>
How can I maintain a reference to part1 of the first message uniquely
in the type mapper ? I don't want to change the structure of the type
mapper (the fact that it is a simple key-value pair) partly because
the users are allowed to pass in an external mapping file and also I
fear things might get messy if I add more methods to it..
What I thought was to have our own convention inside the codegen where
we generate a QName for the part with part name as the localpart and
the operation name as the namespaceURI. It is totally a private
convention but the databinding extensions have to follow that
covention and populate the type map accordingly.
Any thoughts ?
--
Ajith Ranabahu
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
--
Ajith Ranabahu
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]