Hi Ajith,
first thanks for fixing the issue with the recursive datatypes. I've
been able to generate the code for the following wsdl. But maybe there
is a problem with the xsd:choice and unbounded number of maxOccurs.
My wsdl uses an xsd (http://www.ivoa.net/xml/VOTable/v1.1) that presents
the following fragment which describes a table element that can have an
arbitrary number of fields or params or groups. The corresponding class
generated doesn't have anymore the methods getFIELDArray(),
getPARAMArray() and getGROUPArray() - those method were generated till
axis2 v0.94 - or something analogous. Am I doing something wrong?
Thanks very much!
Diego
========================================================================
fragment of xsd (http://www.ivoa.net/xml/VOTable/v1.1)
========================================================================
<xsd:element name="TABLE">
<xsd:complexType>
<xsd:sequence>
<xsd:element ref="DESCRIPTION" minOccurs="0" />
<xsd:choice minOccurs="0" maxOccurs="unbounded">
<xsd:element ref="FIELD" />
<xsd:element ref="PARAM" />
<xsd:element ref="GROUP" />
</xsd:choice>
<xsd:element ref="LINK" minOccurs="0" maxOccurs="unbounded" />
<xsd:element ref="DATA" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="ID" type="xsd:ID" />
<xsd:attribute name="name" type="xsd:token" />
<xsd:attribute name="ref" type="xsd:IDREF" />
<xsd:attribute name="ucd" type="ucdType" />
<xsd:attribute name="utype" type="xsd:string" />
<xsd:attribute name="nrows" type="xsd:nonNegativeInteger" />
</xsd:complexType>
</xsd:element>
<xsd:element name="FIELD">
<xsd:complexType>
<xsd:sequence><!-- minOccurs="0" maxOccurs="unbounded" -->
<xsd:element ref="DESCRIPTION" minOccurs="0" />
<xsd:element ref="VALUES" minOccurs="0" /><!-- maxOccurs="2" -->
<xsd:element ref="LINK" minOccurs="0" maxOccurs="unbounded" />
</xsd:sequence>
<xsd:attribute name="ID" type="xsd:ID" />
<xsd:attribute name="unit" type="xsd:token" />
<xsd:attribute name="datatype" type="dataType" use="required" />
<xsd:attribute name="precision" type="precType" />
<xsd:attribute name="width" type="xsd:positiveInteger" />
<xsd:attribute name="ref" type="xsd:IDREF" />
<xsd:attribute name="name" type="xsd:token" use="required" />
<xsd:attribute name="ucd" type="ucdType" />
<xsd:attribute name="utype" type="xsd:string" />
<xsd:attribute name="arraysize" type="xsd:string" />
<xsd:attribute name="type">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="hidden" />
<xsd:enumeration value="no_query" />
<xsd:enumeration value="trigger" />
<xsd:enumeration value="location" />
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
</xsd:element>
========================================================================
wsdl file
========================================================================
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="http://astrodas.org/ws/peer"
xmlns:tns="http://astrodas.org/ws/peer"
xmlns:tns1="http://astrodas.org/ws/model"
xmlns:tns2="http://www.ivoa.net/xml/VOTable/v1.1"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<wsdl:types>
<xsd:schema elementFormDefault="qualified"
targetNamespace="http://astrodas.org/ws/model">
<xsd:import namespace="http://www.w3.org/2001/XMLSchema" />
<!--
<xsd:import namespace="http://www.ivoa.net/xml/VOTable/v1.1"
schemaLocation="xsd/votable.xsd" />
-->
<xsd:import namespace="http://www.ivoa.net/xml/VOTable/v1.1"
schemaLocation="http://www.ivoa.net/xml/VOTable/v1.1" />
<!-- insertMappingAnnotations -->
<xsd:complexType name="external-object">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="id"
type="xsd:integer" />
<xsd:element minOccurs="1" maxOccurs="1" name="external-id"
type="xsd:integer" />
<xsd:element minOccurs="1" maxOccurs="1" name="external-db"
type="xsd:string" />
<xsd:element minOccurs="1" maxOccurs="1" name="match"
type="xsd:boolean" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="annotation">
<xsd:sequence>
<xsd:element minOccurs="0" maxOccurs="1" name="id"
type="xsd:integer" />
<xsd:element minOccurs="0" maxOccurs="1" name="type"
type="xsd:string" />
<xsd:element minOccurs="1" maxOccurs="1" name="author"
type="xsd:string" />
<xsd:element minOccurs="0" maxOccurs="1" name="timestamp"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="mapping-annotation">
<xsd:complexContent mixed="false">
<xsd:extension base="tns1:annotation">
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="unbounded"
name="external-object" type="tns1:external-object" />
<xsd:element minOccurs="0" maxOccurs="1" name="text"
type="xsd:string" />
<xsd:element minOccurs="0" maxOccurs="1"
name="reliability" type="xsd:float" />
<xsd:element minOccurs="0" maxOccurs="1" name="ra-mean"
type="xsd:double" />
<xsd:element minOccurs="0" maxOccurs="1" name="dec-mean"
type="xsd:double" />
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="insertMappingAnnotations">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="unbounded"
name="mapping-annotation" type="tns1:mapping-annotation" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="insertMappingAnnotationsResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="result"
type="xsd:int" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<!-- executeGlobalMappingTableQuery -->
<xsd:element name="executeGlobalMappingTableQuery">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" name="query"
type="xsd:string" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="executeGlobalMappingTableQueryResponse">
<xsd:complexType>
<xsd:sequence>
<xsd:element minOccurs="1" maxOccurs="1" ref="tns2:VOTABLE" />
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>
</wsdl:types>
<!-- insertMappingAnnotations -->
<wsdl:message name="insertMappingAnnotationsMessage">
<wsdl:part name="body" element="tns1:insertMappingAnnotations" />
</wsdl:message>
<wsdl:message name="insertMappingAnnotationsResponseMessage">
<wsdl:part name="body" element="tns1:insertMappingAnnotationsResponse" />
</wsdl:message>
<!-- executeGlobalMappingTableQuery -->
<wsdl:message name="executeGlobalMappingTableQueryMessage">
<wsdl:part name="body" element="tns1:executeGlobalMappingTableQuery" />
</wsdl:message>
<wsdl:message name="executeGlobalMappingTableQueryResponseMessage">
<wsdl:part name="body"
element="tns1:executeGlobalMappingTableQueryResponse" />
</wsdl:message>
<wsdl:portType name="AstrodasPeer">
<wsdl:operation name="insertMappingAnnotations">
<wsdl:documentation>Stores an array of annotations in the annotation
backend database</wsdl:documentation>
<wsdl:input message="tns:insertMappingAnnotationsMessage" />
<wsdl:output message="tns:insertMappingAnnotationsResponseMessage" />
</wsdl:operation>
<wsdl:operation name="executeGlobalMappingTableQuery">
<wsdl:documentation>Executes a query on the global mapping table of
the p2p network of annotation</wsdl:documentation>
<wsdl:input message="tns:executeGlobalMappingTableQueryMessage" />
<wsdl:output
message="tns:executeGlobalMappingTableQueryResponseMessage" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="AstrodasPeerBinding" type="tns:AstrodasPeer">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http"
style="document" />
<wsdl:operation name="insertMappingAnnotations">
<soap:operation soapAction="insertMappingAnnotations" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="executeGlobalMappingTableQuery">
<soap:operation soapAction="executeGlobalMappingTableQuery" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="astrodas-peer">
<wsdl:port name="astrodas-peer" binding="tns:AstrodasPeerBinding">
<soap:address
location="http://localhost:8080/axis2/services/astrodas-peer" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>