I have a ZSI client talking to a perl program through SOAP. The perl program has defined a return type of $esmith::recExtend, where esmith::recExtend is a complex type defined in the WSDL as follows: <complexType name="EsmithRecExtend"> <sequence> <element name="databasename" nillable="true" type="xsd:string"> </element> <element name="key" nillable="true" type="xsd:string"> </element> <element name="properties" nillable="true" type="tns1:ArrayOfString"> </element> <element name="values" nillable="true" type="tns1:ArrayOfString"> </element> <element name="size" nillable="true" type="xsd:int"> </element> </sequence> </complexType>
The perl method returns an esmith::recExtend object as follows: $record = esmith::recExtend->new('dbname, $dbkey, [EMAIL PROTECTED], [EMAIL PROTECTED], $size); return SOAP::Data->name('get_recordReturn' => $record); The ZSI file is expecting an EsmithRecExtend object to be returned in get_recordReturn. However, executing the above code causes the following error: ZSI.EvaluationException: No Registered xsi:type= (http://namespaces.soaplite.com/perl, esmith__recExtend), subsititue for xsi:type=(http://localhost:esmith/SOAPWrapper, EsmithRecExtend) If I return SOAP::Data->name('get_recordReturn' => $record)- >type('http://localhost:/esmith/SOAPWrapper:EsmithRecExtend), then a TypeError: unpack non sequence exception is thrown. I believe that the TypeError: unpack non sequence is resulting because the ZSI attempts to seperate the type into (namespace, type) with the division between the two defined by the ' : ' character, which is found more than once in the given namespace. Does anyone have any ideas on how to resolve this issue? What do I do to return the complex type and have the ZSI client understand it? Thanks for any help! -- http://mail.python.org/mailman/listinfo/python-list