dmitry Mon Aug 9 01:50:06 2004 EDT Added files: (Branch: PHP_5_0) /php-src/ext/soap/tests/bugs .cvsignore bug28985.phpt bug28985.wsdl bug29061.phpt bug29061.wsdl bug29109.phpt bug29109.wsdl bug29236.phpt bug29236.wsdl
Modified files: /php-src NEWS /php-src/ext/soap php_sdl.c soap.c Log: Included ext/soap fixes from CVS HEAD.
http://cvs.php.net/diff.php/php-src/NEWS?r1=1.1760.2.24&r2=1.1760.2.25&ty=u Index: php-src/NEWS diff -u php-src/NEWS:1.1760.2.24 php-src/NEWS:1.1760.2.25 --- php-src/NEWS:1.1760.2.24 Mon Aug 9 00:33:39 2004 +++ php-src/NEWS Mon Aug 9 01:50:05 2004 @@ -1,6 +1,10 @@ PHP NEWS ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| ?? ??? 2004, PHP 5.0.1 +- Fixed bug #29236 (memory error when wsdl-cache is enabled). (Dmitry) +- Fixed bug #29109 (SoapFault exception: [WSDL] Out of memory). (Dmitry) +- Fixed bug #29061 (soap extension segfaults). (Dmitry) +- Fixed bug #28985 (__getTypes() returning nothing on complex WSDL). (Dmitry) - Updated several libraries bundled with the windows release which now includes libxml2-2.6.11, libxslt-1.1.7 and iconv-1.9.1. (Rob, Edin) - Improved and moved ActiveScript SAPI to PECL. (Wez) http://cvs.php.net/diff.php/php-src/ext/soap/php_sdl.c?r1=1.70&r2=1.70.2.1&ty=u Index: php-src/ext/soap/php_sdl.c diff -u php-src/ext/soap/php_sdl.c:1.70 php-src/ext/soap/php_sdl.c:1.70.2.1 --- php-src/ext/soap/php_sdl.c:1.70 Mon Jul 5 17:31:35 2004 +++ php-src/ext/soap/php_sdl.c Mon Aug 9 01:50:05 2004 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: php_sdl.c,v 1.70 2004/07/05 21:31:35 iliaa Exp $ */ +/* $Id: php_sdl.c,v 1.70.2.1 2004/08/09 05:50:05 dmitry Exp $ */ #include "php_soap.h" #include "libxml/uri.h" @@ -1459,14 +1459,12 @@ binding->name = sdl_deserialize_string(&in); binding->location = sdl_deserialize_string(&in); WSDL_CACHE_GET_1(binding->bindingType,sdlBindingType,&in); - if (binding->bindingType == BINDING_SOAP) { - if (*in != 0) { - sdlSoapBindingPtr soap_binding = binding->bindingAttributes = emalloc(sizeof(sdlSoapBinding)); - WSDL_CACHE_GET_1(soap_binding->style,sdlEncodingStyle,&in); - WSDL_CACHE_GET_1(soap_binding->transport,sdlTransport,&in); - } else { - WSDL_CACHE_SKIP(1,&in); - } + if (binding->bindingType == BINDING_SOAP && *in != 0) { + sdlSoapBindingPtr soap_binding = binding->bindingAttributes = emalloc(sizeof(sdlSoapBinding)); + WSDL_CACHE_GET_1(soap_binding->style,sdlEncodingStyle,&in); + WSDL_CACHE_GET_1(soap_binding->transport,sdlTransport,&in); + } else { + WSDL_CACHE_SKIP(1,&in); } bindings[i] = binding; } @@ -1490,18 +1488,16 @@ } else { func->binding = bindings[binding_num-1]; } - if (func->binding && func->binding->bindingType == BINDING_SOAP) { - if (*in != 0) { - sdlSoapBindingFunctionPtr binding = func->bindingAttributes = emalloc(sizeof(sdlSoapBindingFunction)); - memset(binding, 0, sizeof(sdlSoapBindingFunction)); - WSDL_CACHE_GET_1(binding->style,sdlEncodingStyle,&in); - binding->soapAction = sdl_deserialize_string(&in); - sdl_deserialize_soap_body(&binding->input, encoders, types, &in); - sdl_deserialize_soap_body(&binding->output, encoders, types, &in); - } else { - WSDL_CACHE_SKIP(1, &in); - func->bindingAttributes = NULL; - } + if (func->binding && func->binding->bindingType == BINDING_SOAP && *in != 0) { + sdlSoapBindingFunctionPtr binding = func->bindingAttributes = emalloc(sizeof(sdlSoapBindingFunction)); + memset(binding, 0, sizeof(sdlSoapBindingFunction)); + WSDL_CACHE_GET_1(binding->style,sdlEncodingStyle,&in); + binding->soapAction = sdl_deserialize_string(&in); + sdl_deserialize_soap_body(&binding->input, encoders, types, &in); + sdl_deserialize_soap_body(&binding->output, encoders, types, &in); + } else { + WSDL_CACHE_SKIP(1, &in); + func->bindingAttributes = NULL; } func->requestParameters = sdl_deserialize_parameters(encoders, types, &in); http://cvs.php.net/diff.php/php-src/ext/soap/soap.c?r1=1.110&r2=1.110.2.1&ty=u Index: php-src/ext/soap/soap.c diff -u php-src/ext/soap/soap.c:1.110 php-src/ext/soap/soap.c:1.110.2.1 --- php-src/ext/soap/soap.c:1.110 Tue Jul 13 16:41:55 2004 +++ php-src/ext/soap/soap.c Mon Aug 9 01:50:05 2004 @@ -17,7 +17,7 @@ | Dmitry Stogov <[EMAIL PROTECTED]> | +----------------------------------------------------------------------+ */ -/* $Id: soap.c,v 1.110 2004/07/13 20:41:55 zeev Exp $ */ +/* $Id: soap.c,v 1.110.2.1 2004/08/09 05:50:05 dmitry Exp $ */ #ifdef HAVE_CONFIG_H #include "config.h" @@ -1262,7 +1262,7 @@ INIT_ZVAL(readfile_ret); MAKE_STD_ZVAL(param); - sapi_add_header("Content-Type: text/xml; charset=\"utf-8\"", sizeof("Content-Type: text/xml; charset=\"utf-8\""), 1); + sapi_add_header("Content-Type: text/xml; charset=\"utf-8\"", sizeof("Content-Type: text/xml; charset=\"utf-8\"")-1, 1); ZVAL_STRING(param, service->sdl->source, 1); ZVAL_STRING(&readfile, "readfile", 1); if (call_user_function(EG(function_table), NULL, &readfile, &readfile_ret, 1, ¶m TSRMLS_CC) == FAILURE) { @@ -1623,11 +1623,11 @@ } sprintf(cont_len, "Content-Length: %d", size); - sapi_add_header(cont_len, strlen(cont_len) + 1, 1); + sapi_add_header(cont_len, strlen(cont_len), 1); if (soap_version == SOAP_1_2) { - sapi_add_header("Content-Type: application/soap+xml; charset=\"utf-8\"", sizeof("Content-Type: application/soap+xml; charset=\"utf-8\""), 1); + sapi_add_header("Content-Type: application/soap+xml; charset=\"utf-8\"", sizeof("Content-Type: application/soap+xml; charset=\"utf-8\"")-1, 1); } else { - sapi_add_header("Content-Type: text/xml; charset=\"utf-8\"", sizeof("Content-Type: text/xml; charset=\"utf-8\""), 1); + sapi_add_header("Content-Type: text/xml; charset=\"utf-8\"", sizeof("Content-Type: text/xml; charset=\"utf-8\"")-1, 1); } xmlFreeDoc(doc_return); @@ -1707,13 +1707,13 @@ Want to return HTTP 500 but apache wants to over write our fault code with their own handling... Figure this out later */ - sapi_add_header("HTTP/1.1 500 Internal Service Error", sizeof("HTTP/1.1 500 Internal Service Error"), 1); + sapi_add_header("HTTP/1.1 500 Internal Service Error", sizeof("HTTP/1.1 500 Internal Service Error")-1, 1); sprintf(cont_len,"Content-Length: %d", size); - sapi_add_header(cont_len, strlen(cont_len) + 1, 1); + sapi_add_header(cont_len, strlen(cont_len), 1); if (soap_version == SOAP_1_2) { - sapi_add_header("Content-Type: application/soap+xml; charset=\"utf-8\"", sizeof("Content-Type: application/soap+xml; charset=\"utf-8\""), 1); + sapi_add_header("Content-Type: application/soap+xml; charset=\"utf-8\"", sizeof("Content-Type: application/soap+xml; charset=\"utf-8\"")-1, 1); } else { - sapi_add_header("Content-Type: text/xml; charset=\"utf-8\"", sizeof("Content-Type: text/xml; charset=\"utf-8\""), 1); + sapi_add_header("Content-Type: text/xml; charset=\"utf-8\"", sizeof("Content-Type: text/xml; charset=\"utf-8\"")-1, 1); } php_write(buf, size TSRMLS_CC); @@ -1993,10 +1993,18 @@ ZVAL_STRINGL(params[0], buf, buf_size, 0); INIT_ZVAL(param1); params[1] = ¶m1; - ZVAL_STRING(params[1], location, 0); + if (location == NULL) { + ZVAL_NULL(params[1]); + } else { + ZVAL_STRING(params[1], location, 0); + } INIT_ZVAL(param2); params[2] = ¶m2; - ZVAL_STRING(params[2], action, 0); + if (action == NULL) { + ZVAL_NULL(params[2]); + } else { + ZVAL_STRING(params[2], action, 0); + } INIT_ZVAL(param3); params[3] = ¶m3; ZVAL_LONG(params[3], version); @@ -2035,8 +2043,6 @@ sdlPtr old_sdl = NULL; sdlFunctionPtr fn; xmlDocPtr request = NULL; - char *buffer; - int len; int ret = FALSE; int soap_version; zval response; @@ -2603,8 +2609,6 @@ xmlAttrPtr attr; sdlFunctionPtr function; - ZVAL_EMPTY_STRING(function_name); - /* Get <Envelope> element */ env = NULL; trav = request->children; @@ -3745,8 +3749,12 @@ case XSD_TYPEKIND_SIMPLE: case XSD_TYPEKIND_LIST: case XSD_TYPEKIND_UNION: - smart_str_appendl(buf, type->encode->details.type_str, strlen(type->encode->details.type_str)); - smart_str_appendc(buf, ' '); + if (type->encode) { + smart_str_appendl(buf, type->encode->details.type_str, strlen(type->encode->details.type_str)); + smart_str_appendc(buf, ' '); + } else { + smart_str_appendl(buf, "anyType ", sizeof("anyType ")-1); + } smart_str_appendl(buf, type->name, strlen(type->name)); break; case XSD_TYPEKIND_COMPLEX: @@ -3771,7 +3779,7 @@ len = end-(*ext)->val; } if (len == 0) { - smart_str_appendl(buf, "anyType", 7); + smart_str_appendl(buf, "anyType", sizeof("anyType")-1); } else { smart_str_appendl(buf, (*ext)->val, len); } http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/.cvsignore?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/.cvsignore +++ php-src/ext/soap/tests/bugs/.cvsignore phpt.* *.diff *.log *.exp *.out http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug28985.phpt?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug28985.phpt +++ php-src/ext/soap/tests/bugs/bug28985.phpt --TEST-- Bug #28985 (__getTypes() returning nothing on complex WSDL) --SKIPIF-- <?php require_once('skipif.inc'); ?> --FILE-- <?php $client = new SOAPClient(dirname(__FILE__).'/bug28985.wsdl', array('trace'=>1)); var_dump($client->__getTypes()); ?> --EXPECT-- array(42) { [0]=> string(100) "struct LoginMGDIS { string iUserLogin; string iUserId; string iUserPassword; string iProfilId; }" [1]=> string(29) "struct LoginMGDISResponse { }" [2]=> string(28) "struct GetIdentification { }" [3]=> string(77) "struct GetIdentificationResponse { ArrayOfAnyType GetIdentificationResult; }" [4]=> string(43) "struct ArrayOfAnyType { anyType anyType; }" [5]=> string(37) "struct RollbackCurrentTransaction { }" [6]=> string(45) "struct RollbackCurrentTransactionResponse { }" [7]=> string(68) "struct GetListeProfil { string iUserLogin; string iUserPassword; }" [8]=> string(86) "struct MGCodeLibelle { string Code; string Libelle; boolean Defaut; anyType Tag; }" [9]=> string(61) "struct ArrayOfMGCodeLibelle { MGCodeLibelle MGCodeLibelle; }" [10]=> string(77) "struct GetListeProfilResponse { ArrayOfMGCodeLibelle GetListeProfilResult; }" [11]=> string(41) "struct GetListeValCodif { string Code; }" [12]=> string(43) "struct ArrayOfMGCodif { MGCodif MGCodif; }" [13]=> string(18) "struct MGCodif { }" [14]=> string(75) "struct GetListeValCodifResponse { ArrayOfMGCodif GetListeValCodifResult; }" [15]=> string(39) "struct TestPhpSoap { MGCodif entree; }" [16]=> string(57) "struct TestPhpSoapResponse { string TestPhpSoapResult; }" [17]=> string(50) "struct GetListeCodif { boolean iGetListeValeur; }" [18]=> string(87) "struct MGCodifGrp { string TypeCodif; string LibCodif; ArrayOfMGCodif ListeCodifs; }" [19]=> string(52) "struct ArrayOfMGCodifGrp { MGCodifGrp MGCodifGrp; }" [20]=> string(72) "struct GetListeCodifResponse { ArrayOfMGCodifGrp GetListeCodifResult; }" [21]=> string(57) "struct DroitCreation { string iObjet; string iProfil; }" [22]=> string(62) "struct DroitCreationResponse { boolean DroitCreationResult; }" [23]=> string(74) "struct ListeDroitCreation { ArrayOfString iListeObjet; string iProfil; }" [24]=> string(40) "struct ArrayOfString { string string; }" [25]=> string(79) "struct ListeDroitCreationResponse { ArrayOfAnyType ListeDroitCreationResult; }" [26]=> string(87) "struct GetDroitsObjetProtege { string iObjet; string iProfil; string iUtilisateur; }" [27]=> string(154) "struct MGDroitsObjetProtege { string LbUti; string LbProf; string LbServ; string LbDir; boolean isProtected; ArrayOfMGDroitAcces ListeDroitsAcces; }" [28]=> string(58) "struct ArrayOfMGDroitAcces { MGDroitAcces MGDroitAcces; }" [29]=> string(104) "struct MGDroitAcces { string IdProfil; boolean Lecture; boolean Modification; boolean Suppression; }" [30]=> string(91) "struct GetDroitsObjetProtegeResponse { MGDroitsObjetProtege GetDroitsObjetProtegeResult; }" [31]=> string(76) "struct GetPrivileges { string iIdSupport; int iIdForme; string iProfil; }" [32]=> string(68) "struct GetPrivilegesResponse { ArrayOfString GetPrivilegesResult; }" [33]=> string(46) "struct GetLibelleProfil { string iIdProfil; }" [34]=> string(67) "struct GetLibelleProfilResponse { string GetLibelleProfilResult; }" [35]=> string(91) "struct GetValeurRecherche { string iChampSource; string iTable; string iOrderByClause; }" [36]=> string(78) "struct GetValeurRechercheResponse { ArrayOfString GetValeurRechercheResult; }" [37]=> string(128) "struct GetValeurRechercheWithClauseWhere { string iChampSource; string iTable; string iClauseWhere; string iOrderByClause; }" [38]=> string(108) "struct GetValeurRechercheWithClauseWhereResponse { ArrayOfString GetValeurRechercheWithClauseWhereResult; }" [39]=> string(27) "struct GetEnvironnement { }" [40]=> string(106) "struct MGEnvironnement { string RepBureautique; string RepBureautiqueImage; string RepBureautiqueDoc; }" [41]=> string(76) "struct GetEnvironnementResponse { MGEnvironnement GetEnvironnementResult; }" } http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug28985.wsdl?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug28985.wsdl +++ php-src/ext/soap/tests/bugs/bug28985.wsdl <?xml version="1.0" encoding="utf-8"?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://tempuri.org/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/"> <s:element name="LoginMGDIS"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iUserLogin" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iUserId" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iUserPassword" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iProfilId" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="LoginMGDISResponse"> <s:complexType /> </s:element> <s:element name="GetIdentification"> <s:complexType /> </s:element> <s:element name="GetIdentificationResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetIdentificationResult" type="s0:ArrayOfAnyType" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfAnyType"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="anyType" nillable="true" /> </s:sequence> </s:complexType> <s:element name="RollbackCurrentTransaction"> <s:complexType /> </s:element> <s:element name="RollbackCurrentTransactionResponse"> <s:complexType /> </s:element> <s:element name="GetListeProfil"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iUserLogin" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iUserPassword" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="MGCodeLibelle"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="Code" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="Libelle" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="Defaut" type="s:boolean" /> <s:element minOccurs="0" maxOccurs="1" name="Tag" /> </s:sequence> </s:complexType> <s:complexType name="ArrayOfMGCodeLibelle"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="MGCodeLibelle" nillable="true" type="s0:MGCodeLibelle" /> </s:sequence> </s:complexType> <s:element name="GetListeProfilResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetListeProfilResult" type="s0:ArrayOfMGCodeLibelle" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetListeValCodif"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="Code" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfMGCodif"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="MGCodif" nillable="true" type="s0:MGCodif" /> </s:sequence> </s:complexType> <s:complexType name="MGCodif"> <s:complexContent mixed="false"> <s:extension base="s0:MGCodeLibelle" /> </s:complexContent> </s:complexType> <s:element name="GetListeValCodifResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetListeValCodifResult" type="s0:ArrayOfMGCodif" /> </s:sequence> </s:complexType> </s:element> <s:element name="TestPhpSoap"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="entree" type="s0:MGCodif" /> </s:sequence> </s:complexType> </s:element> <s:element name="TestPhpSoapResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="TestPhpSoapResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetListeCodif"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="iGetListeValeur" type="s:boolean" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="MGCodifGrp"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="TypeCodif" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LibCodif" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="ListeCodifs" type="s0:ArrayOfMGCodif" /> </s:sequence> </s:complexType> <s:complexType name="ArrayOfMGCodifGrp"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="MGCodifGrp" nillable="true" type="s0:MGCodifGrp" /> </s:sequence> </s:complexType> <s:element name="GetListeCodifResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetListeCodifResult" type="s0:ArrayOfMGCodifGrp" /> </s:sequence> </s:complexType> </s:element> <s:element name="DroitCreation"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iObjet" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iProfil" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="DroitCreationResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="DroitCreationResult" type="s:boolean" /> </s:sequence> </s:complexType> </s:element> <s:element name="ListeDroitCreation"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iListeObjet" type="s0:ArrayOfString" /> <s:element minOccurs="0" maxOccurs="1" name="iProfil" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfString"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" /> </s:sequence> </s:complexType> <s:element name="ListeDroitCreationResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ListeDroitCreationResult" type="s0:ArrayOfAnyType" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetDroitsObjetProtege"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iObjet" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iProfil" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iUtilisateur" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="MGDroitsObjetProtege"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="LbUti" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LbProf" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LbServ" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="LbDir" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="isProtected" type="s:boolean" /> <s:element minOccurs="0" maxOccurs="1" name="ListeDroitsAcces" type="s0:ArrayOfMGDroitAcces" /> </s:sequence> </s:complexType> <s:complexType name="ArrayOfMGDroitAcces"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="MGDroitAcces" nillable="true" type="s0:MGDroitAcces" /> </s:sequence> </s:complexType> <s:complexType name="MGDroitAcces"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="IdProfil" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="Lecture" type="s:boolean" /> <s:element minOccurs="1" maxOccurs="1" name="Modification" type="s:boolean" /> <s:element minOccurs="1" maxOccurs="1" name="Suppression" type="s:boolean" /> </s:sequence> </s:complexType> <s:element name="GetDroitsObjetProtegeResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetDroitsObjetProtegeResult" type="s0:MGDroitsObjetProtege" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetPrivileges"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iIdSupport" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="iIdForme" type="s:int" /> <s:element minOccurs="0" maxOccurs="1" name="iProfil" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetPrivilegesResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetPrivilegesResult" type="s0:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetLibelleProfil"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iIdProfil" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetLibelleProfilResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetLibelleProfilResult" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetValeurRecherche"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iChampSource" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iTable" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iOrderByClause" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetValeurRechercheResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetValeurRechercheResult" type="s0:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetValeurRechercheWithClauseWhere"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="iChampSource" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iTable" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iClauseWhere" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="iOrderByClause" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetValeurRechercheWithClauseWhereResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetValeurRechercheWithClauseWhereResult" type="s0:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetEnvironnement"> <s:complexType /> </s:element> <s:complexType name="MGEnvironnement"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="RepBureautique" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="RepBureautiqueImage" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="RepBureautiqueDoc" type="s:string" /> </s:sequence> </s:complexType> <s:element name="GetEnvironnementResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetEnvironnementResult" type="s0:MGEnvironnement" /> </s:sequence> </s:complexType> </s:element> </s:schema> </types> <message name="LoginMGDISSoapIn"> <part name="parameters" element="s0:LoginMGDIS" /> </message> <message name="LoginMGDISSoapOut"> <part name="parameters" element="s0:LoginMGDISResponse" /> </message> <message name="GetIdentificationSoapIn"> <part name="parameters" element="s0:GetIdentification" /> </message> <message name="GetIdentificationSoapOut"> <part name="parameters" element="s0:GetIdentificationResponse" /> </message> <message name="RollbackCurrentTransactionSoapIn"> <part name="parameters" element="s0:RollbackCurrentTransaction" /> </message> <message name="RollbackCurrentTransactionSoapOut"> <part name="parameters" element="s0:RollbackCurrentTransactionResponse" /> </message> <message name="GetListeProfilSoapIn"> <part name="parameters" element="s0:GetListeProfil" /> </message> <message name="GetListeProfilSoapOut"> <part name="parameters" element="s0:GetListeProfilResponse" /> </message> <message name="GetListeValCodifSoapIn"> <part name="parameters" element="s0:GetListeValCodif" /> </message> <message name="GetListeValCodifSoapOut"> <part name="parameters" element="s0:GetListeValCodifResponse" /> </message> <message name="TestPhpSoapSoapIn"> <part name="parameters" element="s0:TestPhpSoap" /> </message> <message name="TestPhpSoapSoapOut"> <part name="parameters" element="s0:TestPhpSoapResponse" /> </message> <message name="GetListeCodifSoapIn"> <part name="parameters" element="s0:GetListeCodif" /> </message> <message name="GetListeCodifSoapOut"> <part name="parameters" element="s0:GetListeCodifResponse" /> </message> <message name="DroitCreationSoapIn"> <part name="parameters" element="s0:DroitCreation" /> </message> <message name="DroitCreationSoapOut"> <part name="parameters" element="s0:DroitCreationResponse" /> </message> <message name="ListeDroitCreationSoapIn"> <part name="parameters" element="s0:ListeDroitCreation" /> </message> <message name="ListeDroitCreationSoapOut"> <part name="parameters" element="s0:ListeDroitCreationResponse" /> </message> <message name="GetDroitsObjetProtegeSoapIn"> <part name="parameters" element="s0:GetDroitsObjetProtege" /> </message> <message name="GetDroitsObjetProtegeSoapOut"> <part name="parameters" element="s0:GetDroitsObjetProtegeResponse" /> </message> <message name="GetPrivilegesSoapIn"> <part name="parameters" element="s0:GetPrivileges" /> </message> <message name="GetPrivilegesSoapOut"> <part name="parameters" element="s0:GetPrivilegesResponse" /> </message> <message name="GetLibelleProfilSoapIn"> <part name="parameters" element="s0:GetLibelleProfil" /> </message> <message name="GetLibelleProfilSoapOut"> <part name="parameters" element="s0:GetLibelleProfilResponse" /> </message> <message name="GetValeurRechercheSoapIn"> <part name="parameters" element="s0:GetValeurRecherche" /> </message> <message name="GetValeurRechercheSoapOut"> <part name="parameters" element="s0:GetValeurRechercheResponse" /> </message> <message name="GetValeurRechercheWithClauseWhereSoapIn"> <part name="parameters" element="s0:GetValeurRechercheWithClauseWhere" /> </message> <message name="GetValeurRechercheWithClauseWhereSoapOut"> <part name="parameters" element="s0:GetValeurRechercheWithClauseWhereResponse" /> </message> <message name="GetEnvironnementSoapIn"> <part name="parameters" element="s0:GetEnvironnement" /> </message> <message name="GetEnvironnementSoapOut"> <part name="parameters" element="s0:GetEnvironnementResponse" /> </message> <portType name="MGServiceNoyauNETSoap"> <operation name="LoginMGDIS"> <input message="s0:LoginMGDISSoapIn" /> <output message="s0:LoginMGDISSoapOut" /> </operation> <operation name="GetIdentification"> <input message="s0:GetIdentificationSoapIn" /> <output message="s0:GetIdentificationSoapOut" /> </operation> <operation name="RollbackCurrentTransaction"> <input message="s0:RollbackCurrentTransactionSoapIn" /> <output message="s0:RollbackCurrentTransactionSoapOut" /> </operation> <operation name="GetListeProfil"> <input message="s0:GetListeProfilSoapIn" /> <output message="s0:GetListeProfilSoapOut" /> </operation> <operation name="GetListeValCodif"> <input message="s0:GetListeValCodifSoapIn" /> <output message="s0:GetListeValCodifSoapOut" /> </operation> <operation name="TestPhpSoap"> <input message="s0:TestPhpSoapSoapIn" /> <output message="s0:TestPhpSoapSoapOut" /> </operation> <operation name="GetListeCodif"> <input message="s0:GetListeCodifSoapIn" /> <output message="s0:GetListeCodifSoapOut" /> </operation> <operation name="DroitCreation"> <input message="s0:DroitCreationSoapIn" /> <output message="s0:DroitCreationSoapOut" /> </operation> <operation name="ListeDroitCreation"> <input message="s0:ListeDroitCreationSoapIn" /> <output message="s0:ListeDroitCreationSoapOut" /> </operation> <operation name="GetDroitsObjetProtege"> <input message="s0:GetDroitsObjetProtegeSoapIn" /> <output message="s0:GetDroitsObjetProtegeSoapOut" /> </operation> <operation name="GetPrivileges"> <input message="s0:GetPrivilegesSoapIn" /> <output message="s0:GetPrivilegesSoapOut" /> </operation> <operation name="GetLibelleProfil"> <input message="s0:GetLibelleProfilSoapIn" /> <output message="s0:GetLibelleProfilSoapOut" /> </operation> <operation name="GetValeurRecherche"> <input message="s0:GetValeurRechercheSoapIn" /> <output message="s0:GetValeurRechercheSoapOut" /> </operation> <operation name="GetValeurRechercheWithClauseWhere"> <input message="s0:GetValeurRechercheWithClauseWhereSoapIn" /> <output message="s0:GetValeurRechercheWithClauseWhereSoapOut" /> </operation> <operation name="GetEnvironnement"> <input message="s0:GetEnvironnementSoapIn" /> <output message="s0:GetEnvironnementSoapOut" /> </operation> </portType> <binding name="MGServiceNoyauNETSoap" type="s0:MGServiceNoyauNETSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="LoginMGDIS"> <soap:operation soapAction="http://tempuri.org/LoginMGDIS" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetIdentification"> <soap:operation soapAction="http://tempuri.org/GetIdentification" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="RollbackCurrentTransaction"> <soap:operation soapAction="http://tempuri.org/RollbackCurrentTransaction" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetListeProfil"> <soap:operation soapAction="http://tempuri.org/GetListeProfil" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetListeValCodif"> <soap:operation soapAction="http://tempuri.org/GetListeValCodif" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="TestPhpSoap"> <soap:operation soapAction="http://tempuri.org/TestPhpSoap" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetListeCodif"> <soap:operation soapAction="http://tempuri.org/GetListeCodif" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="DroitCreation"> <soap:operation soapAction="http://tempuri.org/DroitCreation" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="ListeDroitCreation"> <soap:operation soapAction="http://tempuri.org/ListeDroitCreation" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetDroitsObjetProtege"> <soap:operation soapAction="http://tempuri.org/GetDroitsObjetProtege" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetPrivileges"> <soap:operation soapAction="http://tempuri.org/GetPrivileges" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetLibelleProfil"> <soap:operation soapAction="http://tempuri.org/GetLibelleProfil" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetValeurRecherche"> <soap:operation soapAction="http://tempuri.org/GetValeurRecherche" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetValeurRechercheWithClauseWhere"> <soap:operation soapAction="http://tempuri.org/GetValeurRechercheWithClauseWhere" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetEnvironnement"> <soap:operation soapAction="http://tempuri.org/GetEnvironnement" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <service name="MGServiceNoyauNET"> <port name="MGServiceNoyauNETSoap" binding="s0:MGServiceNoyauNETSoap"> <soap:address location="http://localhost/SoapSrvSOFI/MGServiceNoyauNET.asmx" /> </port> </service> </definitions> http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug29061.phpt?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug29061.phpt +++ php-src/ext/soap/tests/bugs/bug29061.phpt --TEST-- Bug #29061 (soap extension segfaults) --SKIPIF-- <?php require_once('skipif.inc'); ?> --FILE-- <?php $client = new SoapClient(dirname(__FILE__)."/bug29061.wsdl", array("exceptions"=>0)); $client->getQuote("ibm"); echo "ok\n"; ?> --EXPECT-- ok http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug29061.wsdl?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug29061.wsdl +++ php-src/ext/soap/tests/bugs/bug29061.wsdl <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:http="http:// schemas.xmlsoap.org/wsdl/http/" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/e ncoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:y="http://new.webservice.namespace" targetNamespace="http ://new.webservice.namespace"> <types> <xs:schema/> </types> <message name="getQuoteResponse"> <part name="parameter" element="" type="xs:string"/> </message> <message name="getQuoteRequest"> <part name="String" element="" type="xs:string"/> </message> <portType name="SOAPport"> <operation name="getQuote"> <input message="y:getQuoteRequest"/> <output message="y:getQuoteResponse"/> </operation> </portType> <binding name="bindingName" type="y:SOAPport"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="getQuote"> <input> <soap:body use="literal"/> </input> <output> <soap:body use="literal"/> </output> </operation> </binding> <service name="myService"> <port name="myPort" binding="y:bindingName"> <soap:address location="test://"/> </port> </service> </definitions> http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug29109.phpt?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug29109.phpt +++ php-src/ext/soap/tests/bugs/bug29109.phpt --TEST-- Bug #29109 (Uncaught SoapFault exception: [WSDL] Out of memory) --SKIPIF-- <?php require_once('skipif.inc'); ?> --FILE-- <?php $client = new SoapClient(dirname(__FILE__)."/bug29109.wsdl"); var_dump($client->__getFunctions()); ?> --EXPECT-- array(3) { [0]=> string(53) "HelloWorldResponse HelloWorld(HelloWorld $parameters)" [1]=> string(19) "string HelloWorld()" [2]=> string(19) "string HelloWorld()" } http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug29109.wsdl?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug29109.wsdl +++ php-src/ext/soap/tests/bugs/bug29109.wsdl <?xml version="1.0" encoding="windows-1257"?> <definitions xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:s0="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" name="test" targetNamespace="http://tempuri.org/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <xs:schema elementFormDefault="qualified" targetNamespace="http://tempuri.org/" xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="HelloWorld"> <xs:complexType /> </xs:element> <xs:element name="HelloWorldResponse"> <xs:complexType> <xs:sequence> <xs:element minOccurs="0" maxOccurs="1" name="HelloWorldResult" type="xs:string" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="string" type="xs:string" /> </xs:schema> </types> <message name="HelloWorldSoapIn"> <part name="parameters" element="s0:HelloWorld" /> </message> <message name="HelloWorldSoapOut"> <part name="parameters" element="s0:HelloWorldResponse" /> </message> <message name="HelloWorldHttpGetIn" /> <message name="HelloWorldHttpGetOut"> <part name="Body" element="s0:string" /> </message> <message name="HelloWorldHttpPostIn" /> <message name="HelloWorldHttpPostOut"> <part name="Body" element="s0:string" /> </message> <portType name="testSoap"> <operation name="HelloWorld"> <input message="s0:HelloWorldSoapIn" /> <output message="s0:HelloWorldSoapOut" /> </operation> </portType> <portType name="testHttpGet"> <operation name="HelloWorld"> <input message="s0:HelloWorldHttpGetIn" /> <output message="s0:HelloWorldHttpGetOut" /> </operation> </portType> <portType name="testHttpPost"> <operation name="HelloWorld"> <input message="s0:HelloWorldHttpPostIn" /> <output message="s0:HelloWorldHttpPostOut" /> </operation> </portType> <binding name="testSoap" type="s0:testSoap"> <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> <operation name="HelloWorld"> <soap:operation soapAction="http://tempuri.org/HelloWorld" style="document" /> <input> <soap:body use="literal" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <binding name="testHttpGet" type="s0:testHttpGet"> <http:binding verb="GET" /> <operation name="HelloWorld"> <http:operation location="/HelloWorld" /> <input> <http:urlEncoded /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> </binding> <binding name="testHttpPost" type="s0:testHttpPost"> <http:binding verb="POST" /> <operation name="HelloWorld"> <http:operation location="/HelloWorld" /> <input> <mime:content part="" type="application/x-www-form-urlencoded" /> </input> <output> <mime:mimeXml part="Body" /> </output> </operation> </binding> <service name="test"> <port name="testSoap" binding="s0:testSoap"> <soap:address location="http://localhost:81/test.asmx" /> </port> <port name="testHttpGet" binding="s0:testHttpGet"> <http:address location="http://localhost:81/test.asmx" /> </port> <port name="testHttpPost" binding="s0:testHttpPost"> <http:address location="http://localhost:81/test.asmx" /> </port> </service> </definitions> http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug29236.phpt?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug29236.phpt +++ php-src/ext/soap/tests/bugs/bug29236.phpt --TEST-- Bug #29236 (memory error when wsdl-cache is enabled) --SKIPIF-- <?php require_once('skipif.inc'); ?> --FILE-- <? $client = new SoapClient(dirname(__FILE__)."/bug29236.wsdl"); var_dump($client->__getFunctions()); ?> --EXPECT-- array(4) { [0]=> string(59) "StartSessionResponse StartSession(StartSession $parameters)" [1]=> string(62) "VerifySessionResponse VerifySession(VerifySession $parameters)" [2]=> string(41) "LogoutResponse Logout(Logout $parameters)" [3]=> string(62) "GetSystemInfoResponse GetSystemInfo(GetSystemInfo $parameters)" } http://cvs.php.net/co.php/php-src/ext/soap/tests/bugs/bug29236.wsdl?r=1.1&p=1 Index: php-src/ext/soap/tests/bugs/bug29236.wsdl +++ php-src/ext/soap/tests/bugs/bug29236.wsdl <?xml version="1.0" encoding="utf-8"?> <definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:s0="http://isis.ais.ucla.edu/ws/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" targetNamespace="http://isis.ais.ucla.edu/ws/" xmlns="http://schemas.xmlsoap.org/wsdl/"> <types> <s:schema elementFormDefault="qualified" targetNamespace="http://isis.ais.ucla.edu/ws/"> <s:element name="StartSession"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="uclaId" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="userIpAddr" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="StartSessionResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="iwsResponse" nillable="true" type="s0:IwsResponse" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="IwsResponse"> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="sessionInfo" nillable="true" type="s0:IwsSession" /> <s:element minOccurs="1" maxOccurs="1" name="errorInfo" nillable="true" type="s0:IwsErrorCollection" /> </s:sequence> <s:attribute name="action" type="s0:ActionEnum" /> <s:attribute name="hasErrors" type="s:boolean" /> <s:attribute name="transactionId" type="s:long" /> </s:complexType> <s:complexType name="IwsSession"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="userAttributes" type="s0:ArrayOfIwsUserAttribute" /> <s:element minOccurs="0" maxOccurs="1" name="accounts" type="s0:ArrayOfIwsAccount" /> <s:element minOccurs="1" maxOccurs="1" name="ticket" nillable="true" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="uclaId" nillable="true" type="s:string" /> </s:sequence> <s:attribute name="status" type="s0:SessionStatus" /> </s:complexType> <s:complexType name="ArrayOfIwsUserAttribute"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="attribute" type="s0:IwsUserAttribute" /> </s:sequence> </s:complexType> <s:complexType name="IwsUserAttribute"> <s:attribute name="name" type="s:string" /> <s:attribute name="value" type="s:string" /> </s:complexType> <s:complexType name="ArrayOfIwsAccount"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="account" type="s0:IwsAccount" /> </s:sequence> </s:complexType> <s:complexType name="IwsAccount"> <s:attribute name="loginId" type="s:string" /> <s:attribute name="type" type="s0:LoginType" /> <s:attribute name="status" type="s0:AccountStatus" /> </s:complexType> <s:simpleType name="LoginType"> <s:restriction base="s:string"> <s:enumeration value="BruinOnline" /> <s:enumeration value="ACF2" /> <s:enumeration value="QDB" /> <s:enumeration value="UID" /> <s:enumeration value="CommonLogon" /> <s:enumeration value="RACF" /> </s:restriction> </s:simpleType> <s:simpleType name="AccountStatus"> <s:restriction base="s:string"> <s:enumeration value="Unknown" /> <s:enumeration value="Active" /> <s:enumeration value="Authenticated" /> <s:enumeration value="AuthenticatedWithCachedCredential" /> <s:enumeration value="NotAuthenticated" /> <s:enumeration value="PermmanentlySuspended" /> <s:enumeration value="TemporarilySuspended" /> <s:enumeration value="PasswordResetRequired" /> <s:enumeration value="InvalidID" /> </s:restriction> </s:simpleType> <s:simpleType name="SessionStatus"> <s:restriction base="s:string"> <s:enumeration value="Uninitialized" /> <s:enumeration value="Active" /> <s:enumeration value="ActiveWithCachedCredential" /> <s:enumeration value="ActiveWithMultipleCredentials" /> <s:enumeration value="Expired" /> </s:restriction> </s:simpleType> <s:complexType name="IwsErrorCollection"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="errors" type="s0:ArrayOfIwsError" /> </s:sequence> <s:attribute name="count" type="s:int" /> </s:complexType> <s:complexType name="ArrayOfIwsError"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="error" type="s0:IwsError" /> </s:sequence> </s:complexType> <s:complexType name="IwsError"> <s:attribute name="errorCode" type="s:int" /> <s:attribute name="detail" type="s:string" /> </s:complexType> <s:simpleType name="ActionEnum"> <s:restriction base="s:string"> <s:enumeration value="GetInfo" /> <s:enumeration value="Start" /> <s:enumeration value="Verify" /> <s:enumeration value="Logout" /> </s:restriction> </s:simpleType> <s:element name="wsConsumerCredential" type="s0:WsConsumerCredential" /> <s:complexType name="WsConsumerCredential"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="id" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="password" type="s:string" /> </s:sequence> </s:complexType> <s:element name="VerifySession"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="userIpAddr" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="returnExtendedAttributes" type="s:boolean" /> </s:sequence> </s:complexType> </s:element> <s:element name="VerifySessionResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="iwsResponse" nillable="true" type="s0:IwsResponse" /> </s:sequence> </s:complexType> </s:element> <s:element name="Logout"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ticket" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="userIpAddr" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:element name="LogoutResponse"> <s:complexType> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="iwsResponse" nillable="true" type="s0:IwsResponse" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetSystemInfo"> <s:complexType /> </s:element> <s:element name="GetSystemInfoResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetSystemInfoResult" type="s0:ArrayOfIwsAttribute" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfIwsAttribute"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="IwsAttribute" type="s0:IwsAttribute" /> </s:sequence> </s:complexType> <s:complexType name="IwsAttribute"> <s:attribute name="name" type="s:string" /> <s:attribute name="value" type="s:string" /> </s:complexType> </s:schema> </types> <message name="StartSessionSoapIn"> <part name="parameters" element="s0:StartSession" /> </message> <message name="StartSessionSoapOut"> <part name="parameters" element="s0:StartSessionResponse" /> </message> <message name="StartSessionwsConsumerCredential"> <part name="wsConsumerCredential" element="s0:wsConsumerCredential" /> </message> <message name="VerifySessionSoapIn"> <part name="parameters" element="s0:VerifySession" /> </message> <message name="VerifySessionSoapOut"> <part name="parameters" element="s0:VerifySessionResponse" /> </message> <message name="VerifySessionwsConsumerCredential"> <part name="wsConsumerCredential" element="s0:wsConsumerCredential" /> </message> <message name="LogoutSoapIn"> <part name="parameters" element="s0:Logout" /> </message> <message name="LogoutSoapOut"> <part name="parameters" element="s0:LogoutResponse" /> </message> <message name="LogoutwsConsumerCredential"> <part name="wsConsumerCredential" element="s0:wsConsumerCredential" /> </message> <message name="GetSystemInfoSoapIn"> <part name="parameters" element="s0:GetSystemInfo" /> </message> <message name="GetSystemInfoSoapOut"> <part name="parameters" element="s0:GetSystemInfoResponse" /> </message> <message name="GetSystemInfowsConsumerCredential"> <part name="wsConsumerCredential" element="s0:wsConsumerCredential" /> </message> <portType name="IsisSoap"> <operation name="StartSession"> <input message="s0:StartSessionSoapIn" /> <output message="s0:StartSessionSoapOut" /> </operation> <operation name="VerifySession"> <input message="s0:VerifySessionSoapIn" /> <output message="s0:VerifySessionSoapOut" /> </operation> <operation name="Logout"> <input message="s0:LogoutSoapIn" /> <output message="s0:LogoutSoapOut" /> </operation> <operation name="GetSystemInfo"> <input message="s0:GetSystemInfoSoapIn" /> <output message="s0:GetSystemInfoSoapOut" /> </operation> </portType> <portType name="IsisHttpGet" /> <portType name="IsisHttpPost" /> <binding name="IsisSoap" type="s0:IsisSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document" /> <operation name="StartSession"> <soap:operation soapAction="http://isis.ais.ucla.edu/ws/StartSession" style="document" /> <input> <soap:body use="literal" /> <soap:header d5p1:required="true" message="s0:StartSessionwsConsumerCredential" part="wsConsumerCredential" use="literal" xmlns:d5p1="http://schemas.xmlsoap.org/wsdl/" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="VerifySession"> <soap:operation soapAction="http://isis.ais.ucla.edu/ws/VerifySession" style="document" /> <input> <soap:body use="literal" /> <soap:header d5p1:required="true" message="s0:VerifySessionwsConsumerCredential" part="wsConsumerCredential" use="literal" xmlns:d5p1="http://schemas.xmlsoap.org/wsdl/" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="Logout"> <soap:operation soapAction="http://isis.ais.ucla.edu/ws/Logout" style="document" /> <input> <soap:body use="literal" /> <soap:header d5p1:required="true" message="s0:LogoutwsConsumerCredential" part="wsConsumerCredential" use="literal" xmlns:d5p1="http://schemas.xmlsoap.org/wsdl/" /> </input> <output> <soap:body use="literal" /> </output> </operation> <operation name="GetSystemInfo"> <soap:operation soapAction="http://isis.ais.ucla.edu/ws/GetSystemInfo" style="document" /> <input> <soap:body use="literal" /> <soap:header d5p1:required="true" message="s0:GetSystemInfowsConsumerCredential" part="wsConsumerCredential" use="literal" xmlns:d5p1="http://schemas.xmlsoap.org/wsdl/" /> </input> <output> <soap:body use="literal" /> </output> </operation> </binding> <binding name="IsisHttpGet" type="s0:IsisHttpGet"> <http:binding verb="GET" /> </binding> <binding name="IsisHttpPost" type="s0:IsisHttpPost"> <http:binding verb="POST" /> </binding> <service name="Isis"> <port name="IsisSoap" binding="s0:IsisSoap"> <soap:address location="http://isisdev1.tig.ucla.edu/iws/v4.asmx" /> </port> <port name="IsisHttpGet" binding="s0:IsisHttpGet"> <http:address location="http://isisdev1.tig.ucla.edu/iws/v4.asmx" /> </port> <port name="IsisHttpPost" binding="s0:IsisHttpPost"> <http:address location="http://isisdev1.tig.ucla.edu/iws/v4.asmx" /> </port> </service> </definitions>
-- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php