in reply to Re: How to define a complex type with SOAP::Lite
in thread How to define a complex type with SOAP::Lite

Here is a simmalar example WSDL
Notice the TEmployer and TDateType inside the TPerson complex type. By calling Addperson I would be able to able to save a person via soap. this works but how do I pass values like this in perl to my soap server using Soap lite?

<?xml version="1.0"?><definitions name="Intf_person" targetNamespace=" +urn:Intf_person" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns: +soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="urn:Intf_pers +on" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:SOAP-ENC="http +://schemas.xmlsoap.org/soap/encoding/" xmlns="http://schemas.xmlsoap. +org/wsdl/"> <types xmlns="http://schemas.xmlsoap.org/wsdl/"> <schema +xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:Intf_pe +rson"> <complexType name="TPerson"> <all> <element name="Surname" typ +e="xsd:string" /> <element name="Fullname" type="xsd:string" /> <elem +ent name="DOB" type="tns:TDateType" /> <element name="Employer" type= +"tns:TEmployer" /> <element name="PostalAddress" type="tns:TPersonPos +talAddress" /> </all> </complexType> <complexType name="TPersonPostal +Address"> <all> <element name="ID" type="xsd:integer" /> <element nam +e="Line1" type="xsd:string" /> <element name="Line2" type="xsd:string +" /> <element name="Line3" type="xsd:string" /> <element name="Line4" + type="xsd:string" /> </all> </complexType> <complexType name="TEmplo +yer"> <all> <element name="Name" type="xsd:string" /> <element name=" +Tel" type="xsd:string" /> </all> </complexType> <complexType name="TD +ateType"> <all> <element name="Year" type="xsd:integer" /> <element n +ame="Month" type="xsd:integer" /> <element name="Day" type="xsd:integ +er" /> <element name="Hour" type="xsd:integer" /> <element name="Min" + type="xsd:integer" /> <element name="Sec" type="xsd:integer" /> </al +l> </complexType> </schema> </types> <portType name="Intf_personPort" +> <operation name="Addperson"> <input message="tns:AddpersonRequest" +/> <output message="tns:AddpersonResponse" /> </operation> </portType +> <binding name="Intf_personBinding" type="tns:Intf_personPort"> <soa +p:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http +" /> <operation name="Addperson"> <soap:operation soapAction="Intf_pe +rson#intf_person#Addperson" /> <input> <soap:body use="encoded" names +pace="Intf_person" encodingStyle="http://schemas.xmlsoap.org/soap/enc +oding/" /> </input> <output> <soap:body use="encoded" namespace="Intf +_person" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" /> + </output> </operation> </binding> <service name="Intf_personService" +> <documentation /> <port name="Intf_personPort" binding="tns:Intf_pe +rsonBinding"> <soap:address location="http://138.215.248.216:8080/Soa +p/ntf_person.php" /> </port> </service> <message name="AddpersonReque +st"> <part name="Item" type="tns:Tperson" /> <part name="Systems" typ +e="tns:TSystemsList" /> </message> <message name="AddpersonResponse"> + <part name="ErrorReturned" type="xsd:string" /> </message> </definit +ions>

20050114 Janitored by Corion: Added code tags around XML