Hey Raymond.  Thanks for finding my silly getString(str) bug.

I'd like to understand more about binding.ws.  It looks like with your
recent check-ins binds SDO to binding.ws.   With that, all outgoing and
incoming objects are converted to SDO objects to be manipulated by the Axis2
binding.  To do so, "import.sdo" reads in the WSDL to register schema types
as SDO objects.  Is that correct?

The issue I'm having is that ImportSDOLoader bombs when upon registering the
following complex type:

<types>
   <xs:schema attributeFormDefault="unqualified"
elementFormDefault="qualified" targetNamespace="java:
com.bea.proto.webservice" xmlns:xs="http://www.w3.org/2001/XMLSchema";>
     <xs:complexType name="Patient">
       <xs:sequence>
         <xs:element minOccurs="1" name="Id" nillable="true"
type="xs:int"/>
         <xs:element minOccurs="1" name="Dob" nillable="true"
type="xs:dateTime"/>
         <xs:element minOccurs="1" name="FirstName" nillable="true"
type="xs:string"/>
         <xs:element minOccurs="1" name="Gender" nillable="true"
type="xs:string"/>
         <xs:element minOccurs="1" name="LastName" nillable="true"
type="xs:string"/>
         <xs:element minOccurs="1" name="MiddleName" nillable="true"
type="xs:string"/>
         <xs:element minOccurs="1" name="Phone" nillable="true"
type="xs:string"/>
         <xs:element minOccurs="1" name="Ssn" nillable="true"
type="xs:string"/>
       </xs:sequence>
     </xs:complexType>
   </xs:schema>
...
</types>

java.lang.NullPointerException
       at org.eclipse.xsd.ecore.XSDEcoreBuilder.createFeature(
XSDEcoreBuilder.java:1765)
       at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.createFeature(
SDOXSDEcoreBuilder.java:139)
       at org.eclipse.xsd.ecore.XSDEcoreBuilder.createFeature(
XSDEcoreBuilder.java:1850)
       at org.eclipse.xsd.ecore.XSDEcoreBuilder.computeEClass(
XSDEcoreBuilder.java:1002)
       at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.computeEClass(
SDOXSDEcoreBuilder.java:104)
       at org.eclipse.xsd.ecore.XSDEcoreBuilder.computeEClassifier(
XSDEcoreBuilder.java:260)
       at
org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.computeEClassifier(
SDOXSDEcoreBuilder.java:113)
       at org.eclipse.xsd.ecore.XSDEcoreBuilder.getEClassifier(
XSDEcoreBuilder.java:212)
       at org.apache.tuscany.sdo.helper.SDOXSDEcoreBuilder.getEClassifier(
SDOXSDEcoreBuilder.java:76)
       at org.eclipse.xsd.ecore.XSDEcoreBuilder.generate(
XSDEcoreBuilder.java:2644)
       at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(
XSDHelperImpl.java:189)
(The above is lost when converting to IllegalArgumentException.)
java.lang.IllegalArgumentException
       at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(
XSDHelperImpl.java:210)
       at org.apache.tuscany.sdo.helper.XSDHelperImpl.define(
XSDHelperImpl.java:169)
       at org.apache.tuscany.databinding.sdo.ImportSDOLoader.importWSDL(
ImportSDOLoader.java:115)
       at org.apache.tuscany.databinding.sdo.ImportSDOLoader.load(
ImportSDOLoader.java:77)

I haven't yet looked into the xsd source.  Any ideas?

Also, I'm wondering is why SDO conversion is needed.  Couldn't the impl be
simpler by relying on Axis2's native transport, Axiom?  Wouldn't this also
eliminate the SDO dependency?  I'd like to understand deeper as to why this
WSDL works outside of binding.ws.

Thanks.

-Chris

Reply via email to