]> granicus.if.org Git - php/commitdiff
Fixed bug #28985 (__getTypes() returning nothing on complex WSDL).
authorDmitry Stogov <dmitry@php.net>
Mon, 19 Jul 2004 14:55:35 +0000 (14:55 +0000)
committerDmitry Stogov <dmitry@php.net>
Mon, 19 Jul 2004 14:55:35 +0000 (14:55 +0000)
NEWS
ext/soap/soap.c
ext/soap/tests/bugs/bug28985.phpt [new file with mode: 0644]
ext/soap/tests/bugs/bug28985.wsdl [new file with mode: 0644]

diff --git a/NEWS b/NEWS
index 582c466a6c79326519d984344d20172627f25099..2b1153f856dbadaf2fc6df61ae23f43eaabd0aa6 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,6 +1,7 @@
 PHP                                                                        NEWS
 |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
 ?? ??? 2004, PHP 5.1.0
+- Fixed bug #28985 (__getTypes() returning nothing on complex WSDL). (Dmitry)
 - 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)
index 1125849dc8a9cc360126d9c16c52d7cd59bc0400..fd21af792580dfb72669b35ea4cc5c497148f831 100644 (file)
@@ -3749,8 +3749,12 @@ static void type_to_string(sdlTypePtr type, smart_str *buf, int level)
                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:
@@ -3775,7 +3779,7 @@ static void type_to_string(sdlTypePtr type, smart_str *buf, int level)
                                                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);
                                        }
diff --git a/ext/soap/tests/bugs/bug28985.phpt b/ext/soap/tests/bugs/bug28985.phpt
new file mode 100644 (file)
index 0000000..291cce0
--- /dev/null
@@ -0,0 +1,204 @@
+--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;
+}"
+}
\ No newline at end of file
diff --git a/ext/soap/tests/bugs/bug28985.wsdl b/ext/soap/tests/bugs/bug28985.wsdl
new file mode 100644 (file)
index 0000000..ee52881
--- /dev/null
@@ -0,0 +1,683 @@
+<?xml version="1.0" encoding="utf-8"?>\r
+<definitions xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"\r
+xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"\r
+xmlns:s="http://www.w3.org/2001/XMLSchema"\r
+xmlns:s0="http://tempuri.org/"\r
+xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"\r
+xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"\r
+xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"\r
+targetNamespace="http://tempuri.org/"\r
+xmlns="http://schemas.xmlsoap.org/wsdl/">\r
+  <types>\r
+    <s:schema elementFormDefault="qualified"\r
+targetNamespace="http://tempuri.org/">\r
+      <s:element name="LoginMGDIS">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iUserLogin"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iUserId"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iUserPassword"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iProfilId"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="LoginMGDISResponse">\r
+        <s:complexType />\r
+      </s:element>\r
+      <s:element name="GetIdentification">\r
+        <s:complexType />\r
+      </s:element>\r
+      <s:element name="GetIdentificationResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetIdentificationResult" type="s0:ArrayOfAnyType" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:complexType name="ArrayOfAnyType">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="unbounded" name="anyType"\r
+nillable="true" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:element name="RollbackCurrentTransaction">\r
+        <s:complexType />\r
+      </s:element>\r
+      <s:element name="RollbackCurrentTransactionResponse">\r
+        <s:complexType />\r
+      </s:element>\r
+      <s:element name="GetListeProfil">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iUserLogin"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iUserPassword"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:complexType name="MGCodeLibelle">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="1" name="Code"\r
+type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="Libelle"\r
+type="s:string" />\r
+          <s:element minOccurs="1" maxOccurs="1" name="Defaut"\r
+type="s:boolean" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="Tag" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:complexType name="ArrayOfMGCodeLibelle">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="unbounded"\r
+name="MGCodeLibelle" nillable="true" type="s0:MGCodeLibelle" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:element name="GetListeProfilResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetListeProfilResult" type="s0:ArrayOfMGCodeLibelle" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetListeValCodif">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="Code"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:complexType name="ArrayOfMGCodif">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="unbounded" name="MGCodif"\r
+nillable="true" type="s0:MGCodif" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:complexType name="MGCodif">\r
+        <s:complexContent mixed="false">\r
+          <s:extension base="s0:MGCodeLibelle" />\r
+        </s:complexContent>\r
+      </s:complexType>\r
+      <s:element name="GetListeValCodifResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetListeValCodifResult" type="s0:ArrayOfMGCodif" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="TestPhpSoap">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="entree"\r
+type="s0:MGCodif" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="TestPhpSoapResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="TestPhpSoapResult" type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetListeCodif">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="1" maxOccurs="1"\r
+name="iGetListeValeur" type="s:boolean" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:complexType name="MGCodifGrp">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="1" name="TypeCodif"\r
+type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="LibCodif"\r
+type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="ListeCodifs"\r
+type="s0:ArrayOfMGCodif" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:complexType name="ArrayOfMGCodifGrp">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="unbounded"\r
+name="MGCodifGrp" nillable="true" type="s0:MGCodifGrp" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:element name="GetListeCodifResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetListeCodifResult" type="s0:ArrayOfMGCodifGrp" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="DroitCreation">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iObjet"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iProfil"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="DroitCreationResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="1" maxOccurs="1"\r
+name="DroitCreationResult" type="s:boolean" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="ListeDroitCreation">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iListeObjet"\r
+type="s0:ArrayOfString" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iProfil"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:complexType name="ArrayOfString">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="unbounded" name="string"\r
+nillable="true" type="s:string" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:element name="ListeDroitCreationResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="ListeDroitCreationResult" type="s0:ArrayOfAnyType" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetDroitsObjetProtege">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iObjet"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iProfil"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iUtilisateur"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:complexType name="MGDroitsObjetProtege">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="1" name="LbUti"\r
+type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="LbProf"\r
+type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="LbServ"\r
+type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="LbDir"\r
+type="s:string" />\r
+          <s:element minOccurs="1" maxOccurs="1" name="isProtected"\r
+type="s:boolean" />\r
+          <s:element minOccurs="0" maxOccurs="1" name="ListeDroitsAcces"\r
+type="s0:ArrayOfMGDroitAcces" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:complexType name="ArrayOfMGDroitAcces">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="unbounded"\r
+name="MGDroitAcces" nillable="true" type="s0:MGDroitAcces" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:complexType name="MGDroitAcces">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="1" name="IdProfil"\r
+type="s:string" />\r
+          <s:element minOccurs="1" maxOccurs="1" name="Lecture"\r
+type="s:boolean" />\r
+          <s:element minOccurs="1" maxOccurs="1" name="Modification"\r
+type="s:boolean" />\r
+          <s:element minOccurs="1" maxOccurs="1" name="Suppression"\r
+type="s:boolean" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:element name="GetDroitsObjetProtegeResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetDroitsObjetProtegeResult" type="s0:MGDroitsObjetProtege" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetPrivileges">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iIdSupport"\r
+type="s:string" />\r
+            <s:element minOccurs="1" maxOccurs="1" name="iIdForme"\r
+type="s:int" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iProfil"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetPrivilegesResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetPrivilegesResult" type="s0:ArrayOfString" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetLibelleProfil">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iIdProfil"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetLibelleProfilResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetLibelleProfilResult" type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetValeurRecherche">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iChampSource"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iTable"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iOrderByClause"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetValeurRechercheResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetValeurRechercheResult" type="s0:ArrayOfString" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetValeurRechercheWithClauseWhere">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1" name="iChampSource"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iTable"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iClauseWhere"\r
+type="s:string" />\r
+            <s:element minOccurs="0" maxOccurs="1" name="iOrderByClause"\r
+type="s:string" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetValeurRechercheWithClauseWhereResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetValeurRechercheWithClauseWhereResult" type="s0:ArrayOfString"\r
+/>\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+      <s:element name="GetEnvironnement">\r
+        <s:complexType />\r
+      </s:element>\r
+      <s:complexType name="MGEnvironnement">\r
+        <s:sequence>\r
+          <s:element minOccurs="0" maxOccurs="1" name="RepBureautique"\r
+type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1"\r
+name="RepBureautiqueImage" type="s:string" />\r
+          <s:element minOccurs="0" maxOccurs="1"\r
+name="RepBureautiqueDoc" type="s:string" />\r
+        </s:sequence>\r
+      </s:complexType>\r
+      <s:element name="GetEnvironnementResponse">\r
+        <s:complexType>\r
+          <s:sequence>\r
+            <s:element minOccurs="0" maxOccurs="1"\r
+name="GetEnvironnementResult" type="s0:MGEnvironnement" />\r
+          </s:sequence>\r
+        </s:complexType>\r
+      </s:element>\r
+    </s:schema>\r
+  </types>\r
+  <message name="LoginMGDISSoapIn">\r
+    <part name="parameters" element="s0:LoginMGDIS" />\r
+  </message>\r
+  <message name="LoginMGDISSoapOut">\r
+    <part name="parameters" element="s0:LoginMGDISResponse" />\r
+  </message>\r
+  <message name="GetIdentificationSoapIn">\r
+    <part name="parameters" element="s0:GetIdentification" />\r
+  </message>\r
+  <message name="GetIdentificationSoapOut">\r
+    <part name="parameters" element="s0:GetIdentificationResponse" />\r
+  </message>\r
+  <message name="RollbackCurrentTransactionSoapIn">\r
+    <part name="parameters" element="s0:RollbackCurrentTransaction" />\r
+  </message>\r
+  <message name="RollbackCurrentTransactionSoapOut">\r
+    <part name="parameters"\r
+element="s0:RollbackCurrentTransactionResponse" />\r
+  </message>\r
+  <message name="GetListeProfilSoapIn">\r
+    <part name="parameters" element="s0:GetListeProfil" />\r
+  </message>\r
+  <message name="GetListeProfilSoapOut">\r
+    <part name="parameters" element="s0:GetListeProfilResponse" />\r
+  </message>\r
+  <message name="GetListeValCodifSoapIn">\r
+    <part name="parameters" element="s0:GetListeValCodif" />\r
+  </message>\r
+  <message name="GetListeValCodifSoapOut">\r
+    <part name="parameters" element="s0:GetListeValCodifResponse" />\r
+  </message>\r
+  <message name="TestPhpSoapSoapIn">\r
+    <part name="parameters" element="s0:TestPhpSoap" />\r
+  </message>\r
+  <message name="TestPhpSoapSoapOut">\r
+    <part name="parameters" element="s0:TestPhpSoapResponse" />\r
+  </message>\r
+  <message name="GetListeCodifSoapIn">\r
+    <part name="parameters" element="s0:GetListeCodif" />\r
+  </message>\r
+  <message name="GetListeCodifSoapOut">\r
+    <part name="parameters" element="s0:GetListeCodifResponse" />\r
+  </message>\r
+  <message name="DroitCreationSoapIn">\r
+    <part name="parameters" element="s0:DroitCreation" />\r
+  </message>\r
+  <message name="DroitCreationSoapOut">\r
+    <part name="parameters" element="s0:DroitCreationResponse" />\r
+  </message>\r
+  <message name="ListeDroitCreationSoapIn">\r
+    <part name="parameters" element="s0:ListeDroitCreation" />\r
+  </message>\r
+  <message name="ListeDroitCreationSoapOut">\r
+    <part name="parameters" element="s0:ListeDroitCreationResponse" />\r
+  </message>\r
+  <message name="GetDroitsObjetProtegeSoapIn">\r
+    <part name="parameters" element="s0:GetDroitsObjetProtege" />\r
+  </message>\r
+  <message name="GetDroitsObjetProtegeSoapOut">\r
+    <part name="parameters" element="s0:GetDroitsObjetProtegeResponse"\r
+/>\r
+  </message>\r
+  <message name="GetPrivilegesSoapIn">\r
+    <part name="parameters" element="s0:GetPrivileges" />\r
+  </message>\r
+  <message name="GetPrivilegesSoapOut">\r
+    <part name="parameters" element="s0:GetPrivilegesResponse" />\r
+  </message>\r
+  <message name="GetLibelleProfilSoapIn">\r
+    <part name="parameters" element="s0:GetLibelleProfil" />\r
+  </message>\r
+  <message name="GetLibelleProfilSoapOut">\r
+    <part name="parameters" element="s0:GetLibelleProfilResponse" />\r
+  </message>\r
+  <message name="GetValeurRechercheSoapIn">\r
+    <part name="parameters" element="s0:GetValeurRecherche" />\r
+  </message>\r
+  <message name="GetValeurRechercheSoapOut">\r
+    <part name="parameters" element="s0:GetValeurRechercheResponse" />\r
+  </message>\r
+  <message name="GetValeurRechercheWithClauseWhereSoapIn">\r
+    <part name="parameters"\r
+element="s0:GetValeurRechercheWithClauseWhere" />\r
+  </message>\r
+  <message name="GetValeurRechercheWithClauseWhereSoapOut">\r
+    <part name="parameters"\r
+element="s0:GetValeurRechercheWithClauseWhereResponse" />\r
+  </message>\r
+  <message name="GetEnvironnementSoapIn">\r
+    <part name="parameters" element="s0:GetEnvironnement" />\r
+  </message>\r
+  <message name="GetEnvironnementSoapOut">\r
+    <part name="parameters" element="s0:GetEnvironnementResponse" />\r
+  </message>\r
+  <portType name="MGServiceNoyauNETSoap">\r
+    <operation name="LoginMGDIS">\r
+      <input message="s0:LoginMGDISSoapIn" />\r
+      <output message="s0:LoginMGDISSoapOut" />\r
+    </operation>\r
+    <operation name="GetIdentification">\r
+      <input message="s0:GetIdentificationSoapIn" />\r
+      <output message="s0:GetIdentificationSoapOut" />\r
+    </operation>\r
+    <operation name="RollbackCurrentTransaction">\r
+      <input message="s0:RollbackCurrentTransactionSoapIn" />\r
+      <output message="s0:RollbackCurrentTransactionSoapOut" />\r
+    </operation>\r
+    <operation name="GetListeProfil">\r
+      <input message="s0:GetListeProfilSoapIn" />\r
+      <output message="s0:GetListeProfilSoapOut" />\r
+    </operation>\r
+    <operation name="GetListeValCodif">\r
+      <input message="s0:GetListeValCodifSoapIn" />\r
+      <output message="s0:GetListeValCodifSoapOut" />\r
+    </operation>\r
+    <operation name="TestPhpSoap">\r
+      <input message="s0:TestPhpSoapSoapIn" />\r
+      <output message="s0:TestPhpSoapSoapOut" />\r
+    </operation>\r
+    <operation name="GetListeCodif">\r
+      <input message="s0:GetListeCodifSoapIn" />\r
+      <output message="s0:GetListeCodifSoapOut" />\r
+    </operation>\r
+    <operation name="DroitCreation">\r
+      <input message="s0:DroitCreationSoapIn" />\r
+      <output message="s0:DroitCreationSoapOut" />\r
+    </operation>\r
+    <operation name="ListeDroitCreation">\r
+      <input message="s0:ListeDroitCreationSoapIn" />\r
+      <output message="s0:ListeDroitCreationSoapOut" />\r
+    </operation>\r
+    <operation name="GetDroitsObjetProtege">\r
+      <input message="s0:GetDroitsObjetProtegeSoapIn" />\r
+      <output message="s0:GetDroitsObjetProtegeSoapOut" />\r
+    </operation>\r
+    <operation name="GetPrivileges">\r
+      <input message="s0:GetPrivilegesSoapIn" />\r
+      <output message="s0:GetPrivilegesSoapOut" />\r
+    </operation>\r
+    <operation name="GetLibelleProfil">\r
+      <input message="s0:GetLibelleProfilSoapIn" />\r
+      <output message="s0:GetLibelleProfilSoapOut" />\r
+    </operation>\r
+    <operation name="GetValeurRecherche">\r
+      <input message="s0:GetValeurRechercheSoapIn" />\r
+      <output message="s0:GetValeurRechercheSoapOut" />\r
+    </operation>\r
+    <operation name="GetValeurRechercheWithClauseWhere">\r
+      <input message="s0:GetValeurRechercheWithClauseWhereSoapIn" />\r
+      <output message="s0:GetValeurRechercheWithClauseWhereSoapOut" />\r
+    </operation>\r
+    <operation name="GetEnvironnement">\r
+      <input message="s0:GetEnvironnementSoapIn" />\r
+      <output message="s0:GetEnvironnementSoapOut" />\r
+    </operation>\r
+  </portType>\r
+  <binding name="MGServiceNoyauNETSoap"\r
+type="s0:MGServiceNoyauNETSoap">\r
+    <soap:binding transport="http://schemas.xmlsoap.org/soap/http"\r
+style="document" />\r
+    <operation name="LoginMGDIS">\r
+      <soap:operation soapAction="http://tempuri.org/LoginMGDIS"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetIdentification">\r
+      <soap:operation soapAction="http://tempuri.org/GetIdentification"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="RollbackCurrentTransaction">\r
+      <soap:operation\r
+soapAction="http://tempuri.org/RollbackCurrentTransaction"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetListeProfil">\r
+      <soap:operation soapAction="http://tempuri.org/GetListeProfil"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetListeValCodif">\r
+      <soap:operation soapAction="http://tempuri.org/GetListeValCodif"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="TestPhpSoap">\r
+      <soap:operation soapAction="http://tempuri.org/TestPhpSoap"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetListeCodif">\r
+      <soap:operation soapAction="http://tempuri.org/GetListeCodif"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="DroitCreation">\r
+      <soap:operation soapAction="http://tempuri.org/DroitCreation"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="ListeDroitCreation">\r
+      <soap:operation soapAction="http://tempuri.org/ListeDroitCreation"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetDroitsObjetProtege">\r
+      <soap:operation\r
+soapAction="http://tempuri.org/GetDroitsObjetProtege" style="document"\r
+/>\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetPrivileges">\r
+      <soap:operation soapAction="http://tempuri.org/GetPrivileges"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetLibelleProfil">\r
+      <soap:operation soapAction="http://tempuri.org/GetLibelleProfil"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetValeurRecherche">\r
+      <soap:operation soapAction="http://tempuri.org/GetValeurRecherche"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetValeurRechercheWithClauseWhere">\r
+      <soap:operation\r
+soapAction="http://tempuri.org/GetValeurRechercheWithClauseWhere"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+    <operation name="GetEnvironnement">\r
+      <soap:operation soapAction="http://tempuri.org/GetEnvironnement"\r
+style="document" />\r
+      <input>\r
+        <soap:body use="literal" />\r
+      </input>\r
+      <output>\r
+        <soap:body use="literal" />\r
+      </output>\r
+    </operation>\r
+  </binding>\r
+  <service name="MGServiceNoyauNET">\r
+    <port name="MGServiceNoyauNETSoap"\r
+binding="s0:MGServiceNoyauNETSoap">\r
+      <soap:address\r
+location="http://localhost/SoapSrvSOFI/MGServiceNoyauNET.asmx" />\r
+    </port>\r
+  </service>\r
+</definitions>\r