Newsgroup: it.comp.lang.delphi
Titolo: Delphi 2006 e AXIS

Ciao,
ho realizzato un webservices in java, utilizzando axis.
Ho fornito il WSDL a due sviluppatori: uno programma in c#, l'altro in 
delphi.
Il programmatore delphi ha difficoltà ad importare wsdl che descrivono 
classi "annidate"; mi spiego meglio: nel wsdl c'è scritto che la classe A, 
deriva da B. Quando da in pasto a delphi il WSDL, gli crea solo la classe A, 
senza nessun riferimento alla B.
Questo problema in C#, in VB6 (con pocket soap) e in Java non c'è...
Qualcuno si è trovato in una situazione simile ? Qualche consiglio ?
A. Bottaioli
http://www.bottaioli.it

...sempre io, aggiungo per maggiore chiarezza, un WSDL tipico che 
sembrerebbe non venire importato correttamente da Delphi 2006.
...Help !
<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions 
targetNamespace="
http://ws.inXXXXX.com/XXXXX/XXXXX/XXXXX2005001ZZZTest
" 
xmlns:apachesoap="
http://xml.apache.org/xml-soap
" 
xmlns:impl="
http://ws.inXXXXX.com/XXXXX/XXXXX/XXXXX2005001ZZZTest
" 
xmlns:intf="
http://ws.inXXXXX.com/XXXXX/XXXXX/XXXXX2005001ZZZTest
" 
xmlns:soapenc="
http://schemas.xmlsoap.org/soap/encoding/
" 
xmlns:tns1="urn:BeanService" xmlns:tns2="
http://bean.XXXXX.YYYYY.it
" 
xmlns:wsdl="
http://schemas.xmlsoap.org/wsdl/
" 
xmlns:wsdlsoap="
http://schemas.xmlsoap.org/wsdl/soap/
" 
xmlns:xsd="
http://www.w3.org/2001/XMLSchema
">
 <wsdl:types>
  <schema targetNamespace="
http://bean.XXXXX.YYYYY.it
" 
xmlns="
http://www.w3.org/2001/XMLSchema
">
   <import namespace="urn:BeanService"/>
   <import namespace="
http://schemas.xmlsoap.org/soap/encoding/
"/>
   <complexType name="SessionInputBean">
    <sequence>
     <element name="IDSessione" nillable="true" type="soapenc:string"/>
    </sequence>
   </complexType>
   <complexType name="CommonInputBean">
    <complexContent>
     <extension base="tns2:SessionInputBean">
      <sequence>
       <element name="codiceFornitore" nillable="true" 
type="soapenc:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="CommonOutputBean">
    <sequence>
     <element name="esitoServizio" type="xsd:int"/>
    </sequence>
   </complexType>
  </schema>
  <schema targetNamespace="urn:BeanService" 
xmlns="
http://www.w3.org/2001/XMLSchema
">
   <import namespace="
http://bean.XXXXX.YYYYY.it
"/>
   <import namespace="
http://schemas.xmlsoap.org/soap/encoding/
"/>
   <complexType name="TestInputBean">
    <complexContent>
     <extension base="tns2:CommonInputBean">
      <sequence>
       <element name="testBoolean" type="xsd:boolean"/>
       <element name="testCalendar" nillable="true" type="xsd:dateTime"/>
       <element name="testDouble" type="xsd:double"/>
       <element name="testIntero" type="xsd:int"/>
       <element name="testStringa" nillable="true" type="soapenc:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <complexType name="TestOutputBean">
    <complexContent>
     <extension base="tns2:CommonOutputBean">
      <sequence>
       <element name="testBoolean" type="xsd:boolean"/>
       <element name="testCalendar" nillable="true" type="xsd:dateTime"/>
       <element name="testDouble" type="xsd:double"/>
       <element name="testIntero" type="xsd:int"/>
       <element name="testStringa" nillable="true" type="soapenc:string"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
  </schema>
 </wsdl:types>
   <wsdl:message name="ZZZTestRequest">
      <wsdl:part name="inBean" type="tns1:TestInputBean"/>
   </wsdl:message>
   <wsdl:message name="ZZZTestResponse">
      <wsdl:part name="ZZZTestReturn" type="tns1:TestOutputBean"/>
   </wsdl:message>
   <wsdl:portType name="XXXXX2005001">
      <wsdl:operation name="ZZZTest" parameterOrder="inBean">
         <wsdl:input message="impl:ZZZTestRequest" name="ZZZTestRequest"/>
         <wsdl:output message="impl:ZZZTestResponse" 
name="ZZZTestResponse"/>
      </wsdl:operation>
   </wsdl:portType>
   <wsdl:binding name="XXXXX2005001ZZZTestSoapBinding" 
type="impl:XXXXX2005001">
      <wsdlsoap:binding style="rpc" 
transport="
http://schemas.xmlsoap.org/soap/http
"/>
      <wsdl:operation name="ZZZTest">
         <wsdlsoap:operation soapAction=""/>
         <wsdl:input name="ZZZTestRequest">
            <wsdlsoap:body 
encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/
" 
namespace="
http://api.XXXXX.YYYYY.it
" use="encoded"/>
         </wsdl:input>
         <wsdl:output name="ZZZTestResponse">
            <wsdlsoap:body 
encodingStyle="
http://schemas.xmlsoap.org/soap/encoding/
" 
namespace="
http://ws.inXXXXX.com/XXXXX/XXXXX/XXXXX2005001ZZZTest
" 
use="encoded"/>
         </wsdl:output>
      </wsdl:operation>
   </wsdl:binding>
   <wsdl:service name="XXXXX2005001Service">
      <wsdl:port binding="impl:XXXXX2005001ZZZTestSoapBinding" 
name="XXXXX2005001ZZZTest">
         <wsdlsoap:address 
location="
http://ws.inXXXXX.com/XXXXX/XXXXX/XXXXX2005001ZZZTest
"/>
      </wsdl:port>
   </wsdl:service>
</wsdl:definitions>

 sembrerebbe non venire importato correttamente da Delphi 2006.
BDS2006, importazione Win32, assolutamente non dà errori.
Se funziona non lo so, visto che dovrei avere un url per provarlo.
Ciao,
Andrea

> BDS2006, importazione Win32, assolutamente non dà errori.
Il problema che mi hanno segnalato sta nell'ereditarietà delle classi.
Cioè, Delphi (a quanto mi dicono) crea l'oggetto OrdineInputBean, 
all'interno del quale però non c'è il metodo get/set IDSessione, derivato da 
SessionInputBean.
Tu lo vedi questo metodo ?