Raymond,

Ah..thanks for the clarification...I think I see what you're saying.

I like the fact that you've reduced the number of flags directly
involved in the transform from three to one.

I think your organization would require some extra knowledge in
something like Input2Input to track which side in WSDL and which side
is Java, however.

Let me walk through this to see if I understand:

So if I start from Java with @SOAPBinding.parameterStyle ==
ParameterStyle.BARE, we'd calculate:
dataWrapped = true
wrapperRequired = false

We'd generate a WSDL with dataWrapped=false (copying the
wrapperRequired = false from Java).

So this would take us down:

  3.2 sourceOperation.dataWrapped && !targetOperation.dataWrapped
(wrapper --> bare)

which means:

  QuoteResponse getQuote(Quote) --> doc-lit // 3.2

The last line signifies that we want to transform "directly", without
any wrapping, (or unwrapping).

Your examples all flow in the Java->WSDL direction.  But note we're
also going to need to use this same transform:

  3.2 sourceOperation.dataWrapped && !targetOperation.dataWrapped
(wrapper --> bare)

in the case where we have a Java with @SOAPBinding.parameterStyle ==
ParameterStyle.WRAPPED (the default of course) ,  as we go from:

doc-lit-wrapped --> float getQuote(String)

So in the Java->WSDL direction, it would seem like wrapper->bare means
that you transform without any wrapping or unwrapping, whereas in the
WSDL->Java direction, it seems like the
wrapper->bare transform means that you do an unwrapping.

This adds an asymmetry that's not there today...right?

I'm going to stop there and see if you agree, as maybe I still haven't
understood totally correctly.

I am curious to also understand the cases where there does exist an
existing WSDL, especially the case I mentioned which I think is a bit
tricky (where the WSDL exists and would qualify for
wrapper-style-mapping per JAX-WS but where the Java has the
ParameterStyle.BARE annotation).

----

Some other thoughts:

It might take awhile to mentally untangle the fact that a "wrapped"
Java interface translates into dataWrapped=false.   (Then again,
making sense of the status quo isn't exactly easy).

In saying that the ParameterStyle.BARE Java means "dataWrapped=true",
you're not so much saying that it's necessarily wrapped... but you're
saying it doesn't need to be wrapped along with transformation to
another data format.

I would say that:
  dataWrapped = true
translates into:
 dataStillNeedsToBeWrapped=false

And having made that connection, agree that it is simpler to deal with
  dataWrapped
than an equivalent in my terms of:
  ! dataStillNeedsToBeWrapped

-----
Scott

Reply via email to