From b8aed6893e0e00197a02fd782415e4f0ce2360da Mon Sep 17 00:00:00 2001 From: "Christophe.Boulain" <> Date: Thu, 21 Jan 2010 08:17:26 +0000 Subject: Fixed Issue#192 --- HISTORY | 1 + framework/3rdParty/WsdlGen/Wsdl.php | 19 ++++++++++--------- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/HISTORY b/HISTORY index a743ad90..be9ab783 100644 --- a/HISTORY +++ b/HISTORY @@ -12,6 +12,7 @@ EHN: Issue#184 - THttpResponse doesn't support custom Content-Type headers, remo BUG: Issue#188 - TDbCache doesn't check if db connection is active. (Yves) BUG: Issue#189 - Page State corrupted when EnableStateValidation=False (Christophe) BUG: Issue#191 - Bad parsing of MySQL ENUM type column (Yves) +BUG: Issue#192 - soap-enc:Array not a valid complex type (mosonyi at esix.hu) BUG: Issue#198 - "Undefined variable: tagName" after error in application configuration. (Christophe) BUG: Issue#200 - TShellApplication failed when no service are defined in application configuration. (Christophe) BUG: Issue#208 - TDbConnection.Charset not working properly (googlenew at pcforum.hu, Christophe) diff --git a/framework/3rdParty/WsdlGen/Wsdl.php b/framework/3rdParty/WsdlGen/Wsdl.php index 1df2f337..3ec5bdf1 100644 --- a/framework/3rdParty/WsdlGen/Wsdl.php +++ b/framework/3rdParty/WsdlGen/Wsdl.php @@ -148,15 +148,16 @@ class Wsdl $complexType->setAttribute('name', $type); if(substr($type, strlen($type) - 5, 5) == 'Array') // if it's an array { - $complexContent = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:complexContent'); - $restriction = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:restriction'); - $restriction->setAttribute('base', 'soap-enc:Array'); - $attribute = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:attribute'); - $attribute->setAttribute('ref', "soap-enc:arrayType"); - $attribute->setAttribute('wsdl:arrayType', $this->getArrayTypePrefix($type) . substr($type, 0, strlen($type) - 5) . '[]'); - $restriction->appendChild($attribute); - $complexContent->appendChild($restriction); - $complexType->appendChild($complexContent); + $sequence = $dom->createElement("xsd:sequence"); + + $singularType = substr($type, 0, strlen($type) - 5); + $e = $dom->createElementNS('http://www.w3.org/2001/XMLSchema', 'xsd:element'); + $e->setAttribute('name', $singularType); + $e->setAttribute('type', sprintf('tns:%s',$singularType)); + $e->setAttribute('minOccurs','0'); + $e->setAttribute('maxOccurs','unbounded'); + $sequence->appendChild($e); + $complexType->appendChild($sequence); } else { -- cgit v1.2.3