Scenarios
Bottom Up
A: Client -> interface.java -> Databinding(JAXB) -> binding.sca -> Databinding(JAXB) -> interface.java -> Service (local)
B: Client -> interface.java -> Databinding(JAXB) -> binding.sca -> Databinding(JAXB) -> interface.java -> Service (@Remotable)
C: Client -> interface.java -> Databinding(JAXB) -> Databinding(Axiom) -> binding.ws -> interface.java -> Databindng(Axiom) -> Databinding(JAXB) -> Service (@Remotable)
D: Client -> interface.wsdl -(doc/lit/wrapped)> Databinding(JAXB) -> Databinding(Axiom) -> binding.ws -> interface.wsdl(doc/lit/wrapped) -> Databindng(Axiom) -> Databinding(JAXB) -> Service (@Remotable)
E: Client -> interface.java -> Databinding(JAXB) -> Databinding(Axiom) -> binding.ws -> interface.wsdl(doc/lit/wrapped) -> Databindng(Axiom) -> Databinding(JAXB) -> Service (@Remotable)
F: Client -> interface.wsdl(doc/lit/wrapped) -> Databinding(JAXB) -> Databinding(Axiom) -> binding.ws -> interface.java -> Databindng(Axiom) -> Databinding(JAXB) -> Service (@Remotable)
Support
G: Client > interface.wsdl (doc/lit/bare)> Databinding(JAXB) -> Databinding(Axiom) -> binding.ws -> interface.wsdl(doc/lit/bare) -> Databindng(Axiom) -> Databinding(JAXB) -> Service (@Remotable)
H: Client -> interface.java -> Databinding(JAXB) -> Databinding(Axiom) -> binding.ws -> interface.wsdl(doc/lit/bare) -> Databindng(Axiom) -> Databinding(JAXB) -> Service (@Remotable)
I: Client -> interface.wsdl(doc/lit/bare) -> Databinding(JAXB) -> Databinding(Axiom) -> binding.ws -> interface.java -> Databindng(Axiom) -> Databinding(JAXB) -> Service (@Remotable)
We should look at some binding.ws(portType), binding.ws(binding), binding.ws(port) scenarios also.
Top Down
Support
Data Type | A | B | C | C ?wsdl | D | E | F | G | H | I | Notes |
---|---|---|---|---|---|---|---|---|---|---|---|
PrimitiveTypes |
|
| |||||||||
Data Type | A | B | C doc/lit/wrapped | C doc/lit/bare | C ?wsdl | D | E | F | Notes | ||
PrimitiveTypes |
|
|
|
|
|
|
|
| |||
boolean |
|
|
|
|
|
|
|
|
|
|
|
byte |
|
|
|
|
|
|
|
|
|
|
|
short |
|
|
|
|
|
|
|
|
|
|
|
int |
|
|
|
|
|
|
|
|
|
|
|
long |
|
|
|
|
|
|
|
|
|
|
|
float |
|
|
|
|
|
|
|
|
|
|
|
double |
|
|
|
|
|
|
|
|
|
|
|
Standard Types |
|
|
|
|
|
|
|
|
|
| |
java.lang.String |
|
|
|
|
|
|
|
|
|
|
|
java.math.BigInteger |
|
|
|
|
|
|
|
|
|
|
|
java.math.BigDecimal |
|
|
|
|
|
|
|
|
|
|
|
java.util.Calendar |
|
|
|
|
|
|
|
|
|
|
|
java.util.Date |
|
|
|
|
|
|
|
|
|
| |
javax.xml.namespace.QName |
|
|
|
|
|
|
|
|
|
|
|
java.net.URI |
|
|
|
|
|
|
|
|
|
|
|
javax.xml.datatype.XMLGregorianCalendar |
|
|
|
|
|
|
|
|
|
|
|
javax.xml.datatype.Duration |
|
|
|
|
|
|
|
|
|
|
|
java.lang.Object |
|
|
|
|
|
|
|
|
|
|
|
java.awt.Image |
|
|
|
|
|
|
|
|
|
|
|
javax.activation.DataHandler |
|
|
|
|
|
|
|
|
|
| Should map to xs:base64Binary |
javax.xml.transform.Source |
|
|
|
|
|
|
|
|
|
|
|
java.util.UUID |
|
|
|
|
|
|
|
|
|
|
|
Arrays |
|
|
|
|
|
|
|
|
|
| |
boolean |
|
|
|
|
|
|
|
|
|
|
|
byte |
|
|
|
|
|
|
|
|
|
| A byte[] must map to xs:base64Binary by default |
short |
|
|
|
|
|
|
|
|
|
|
|
int |
|
|
|
|
|
|
|
|
|
|
|
long |
|
|
|
|
|
|
|
|
|
|
|
float |
|
|
|
|
|
|
|
|
|
|
|
double |
|
|
|
|
|
|
|
|
|
|
|
java.lang.String |
|
|
|
|
|
|
|
|
|
|
|
java.math.BigInteger |
|
|
|
|
|
|
|
|
|
|
|
java.math.BigDecimal |
|
|
|
|
|
|
|
|
|
|
|
java.util.Calendar |
|
|
|
|
|
|
|
|
|
|
|
java.util.Date |
|
|
|
|
|
|
|
|
|
|
|
javax.xml.namespace.QName |
|
|
|
|
|
|
|
|
|
|
|
java.net.URI |
|
|
|
|
|
|
|
|
|
|
|
javax.xml.datatype.XMLGregorianCalendar |
|
|
|
|
|
|
|
|
|
|
|
javax.xml.datatype.Duration |
|
|
|
|
|
|
|
|
|
|
|
java.lang.Object |
|
|
|
|
|
|
|
|
|
| TUSCANY-2389 |
java.awt.Image |
|
|
|
|
|
|
|
|
|
|
|
javax.activation.DataHandler |
|
|
|
|
|
|
|
|
|
| Should map to xs:base64Binary |
javax.xml.transform.Source |
|
|
|
|
|
|
|
|
|
| TUSCANY-2386, TUSCANY-2387 |
java.util.UUID |
|
|
|
|
|
|
|
|
|
|
|
Collections |
|
|
|
|
|
|
|
|
|
| |
List<String>, ArrayList<String> |
|
|
|
|
|
|
|
|
|
|
|
Map<String, String>, HashMap<String, String> |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Polymorphic Types |
|
|
|
|
|
|
|
|
|
| |
Case1: Bean3 extends Bean2 |
|
|
|
|
|
|
|
|
|
| Unmarshalls to Bean2 always. |
Parameterized Types |
|
|
|
|
|
|
|
|
|
| |
TypeExplicit |
|
|
|
|
|
|
|
|
|
|
|
TypeUnbound |
|
|
|
|
|
|
|
|
|
| Unmarshalls to Object[] always. |
TypeExtends |
|
|
|
|
|
|
|
|
|
| Unmarshalls to Bean2 always. |
RecursiveTypeBound |
|
|
|
|
|
|
|
|
|
| Unmarshalls to Bean1<String> always. |
WildcardUnbound |
|
|
|
|
|
|
|
|
|
|
|
WildcardSuper |
|
|
|
|
|
|
|
|
|
|
|
WildcardExtends |
|
|
|
|
|
|
|
|
|
| Unmarshalls to Bean2 always. |
|
|
|
|
|
|
|
|
|
|
|
|
Variable Arguments |
|
|
|
|
|
|
|
|
|
| |
String... |
|
|
|
|
|
|
|
|
|
|
|
Exceptions |
|
|
|
|
|
|
|
|
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
The following are note to give more detail of the scenarios and data types.
...