1) The WSDL2Java tool has minimal error reporting at the present time.
This is do to the following reasons:
- The tool is fairly new with limited developer resources. We have chosen
to use our resources to add additional mappings instead of issuing messages
for the myriad of unsupported types.
- We may wish to re-write the parsing checking code....so the current
implementation could be considered a first pass at development.
2) As far as the mapping for union, does there need to be a check to make
sure you get the object in the same way that you set it ?
I think we could add this support post beta 2.
public class VersionInfo {
public Object value;
public Object getValue() {
return value;
}
public int getValueAsInt() {
return ((Integer) value).value();
}
public Calendar getValueAsCalendar() {
return (Calendar) value;
}
public void setValue(Calendar value) {
this.value = value;
}
public void setValue(int value) {
this.value = new Integer(value);
}
}
Rich Scheuerle
XML & Web Services Development
512-838-5115 (IBM TL 678-5115)
Glen Daniels
<gdaniels@macrome To: "'[EMAIL PROTECTED]'"
<[EMAIL PROTECTED]>
dia.com> cc:
Subject: RE: wsdl2java: union of
simpleType
04/28/2002 04:12
PM
Please respond to
axis-dev
Hi Richard:
We don't yet claim to support union types, so I'm not surprised you got
some weirdness. We should probably (as a minimal first step) be better
about reporting an error when we come across a schema construct which we
don't understand.
How would unions be represented in java? Something like this?
public class VersionInfo {
public Object value;
public Object getValue() {
return value;
}
public void setValue(Calendar value) {
this.value = value;
}
public void setValue(int value) {
this.value = new Integer(value);
}
}
--Glen
> -----Original Message-----
> From: Richard Emberson [mailto:[EMAIL PROTECTED]]
> Sent: Sunday, April 28, 2002 3:29 PM
> To: [EMAIL PROTECTED]
> Subject: wsdl2java: union of simpleType
>
>
> Using wsdl2java, latest cvs (as of yesterday), when attempt to produce
> Java code for the following
>
> <xsd:simpleType name="VersionInfo">
> <xsd:union memberTypes="xsd:dateTime xsd:int"/>
> </xsd:simpleType>
>
> I get a class with no instance variable(s) nor any getters or
> settors -
> hard to (de)serialize.
>
> If I try:
>
> <xsd:simpleType name="VersionInfo">
> <xsd:union>
> <xsd:simpleType>
> <xsd:restriction base="xsd:dateTime"/>
> </xsd:simpleType>
> <xsd:simpleType>
> <xsd:restriction base="xsd:int"/>
> </xsd:simpleType>
> </xsd:union>
> </xsd:simpleType>
>
> I get:
>
> java.io.IOException: urn:login:VersionInfo already exists
> at
> org.apache.axis.wsdl.toJava.SymbolTable.symbolTablePut(SymbolT
> able.java:1781)
>
> at
> org.apache.axis.wsdl.toJava.SymbolTable.createTypeFromDef(Symb
> olTable.java:749)
>
> at
> org.apache.axis.wsdl.toJava.SymbolTable.addTypes(SymbolTable.java:568)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.addTypes(SymbolTable.java:638)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.addTypes(SymbolTable.java:638)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.addTypes(SymbolTable.java:638)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.addTypes(SymbolTable.java:638)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.addTypes(SymbolTable.java:638)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.addTypes(SymbolTable.java:638)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.populateTypes(SymbolTa
> ble.java:531)
>
> at
> org.apache.axis.wsdl.toJava.SymbolTable.populate(SymbolTable.java:424)
> at
> org.apache.axis.wsdl.toJava.SymbolTable.add(SymbolTable.java:330)
> at org.apache.axis.wsdl.toJava.Emitter.emit(Emitter.java:188)
> at org.apache.axis.wsdl.toJava.Emitter.emit(Emitter.java:155)
> at
> org.apache.axis.wsdl.WSDL2Java$WSDLRunnable.run(WSDL2Java.java:725)
> at java.lang.Thread.run(Thread.java:536)
>
> Last Summer when I wrote a wsdl2java transformer (I used XSL) I found
> unions to be the
> hardest part .... I guess its the hardest part of Axis also
> .... but any
> help would still
> be appreciated.
>
> Richard
>