Updating wsdl + generator in SVN.
authorSapan Bhatia <sapanb@cs.princeton.edu>
Mon, 29 Jun 2009 18:45:09 +0000 (18:45 +0000)
committerSapan Bhatia <sapanb@cs.princeton.edu>
Mon, 29 Jun 2009 18:45:09 +0000 (18:45 +0000)
wsdl/gw2wsdl.py
wsdl/sfa.wsdl

index 682733c..257cd69 100755 (executable)
@@ -85,7 +85,7 @@ def name_complex_type(arg):
             element.setAttribute("name", n)
             element.setAttribute("type", "%s"%t)
             element.setAttribute("minOccurs","%d"%min_args)
-        return "tns:%s"%type_name
+        return "xsdl:%s"%type_name
     elif (isinstance(arg, Parameter)):
         return (name_simple_type(arg.type))
     elif type(arg) == ListType or type(arg) == TupleType:
@@ -96,10 +96,11 @@ def name_complex_type(arg):
         complex_type.setAttribute("name", type_name)
         complex_content = complex_type.appendChild(types.createElement("xsd:complexContent"))
         restriction = complex_content.appendChild(types.createElement("restriction"))
-        restriction.setAttribute("base","Array")
+        restriction.setAttribute("base","soapenc:Array")
         attribute = restriction.appendChild(types.createElement("attribute"))
+        attribute.setAttribute("ref","soapenc:arrayType")
         attribute.setAttribute("wsdl:arrayType",inner_type+"[]")
-        return "tns:%s"%type_name
+        return "xsdl:%s"%type_name
         
     elif type(arg) == DictType or arg == DictType or issubclass(arg, dict):
         num_types=num_types+1
@@ -114,7 +115,7 @@ def name_complex_type(arg):
             element.setAttribute("name",k)
             element.setAttribute("type",inner_type)
 
-        return "tns:%s"%type_name 
+        return "xsdl:%s"%type_name 
 
     else:
         return (name_simple_type(arg))
@@ -151,7 +152,7 @@ def add_wsdl_ports_and_bindings (wsdl):
         #print
 
         
-        in_el = wsdl.firstChild.appendChild(wsdl.createElement("wsdl:message"))
+        in_el = wsdl.firstChild.appendChild(wsdl.createElement("message"))
         in_el.setAttribute("name", method + "_in")
 
         for service_name in function.interfaces:
@@ -166,37 +167,37 @@ def add_wsdl_ports_and_bindings (wsdl):
         if (function.accepts):
             (min_args, max_args, defaults) = function.args()
             for (argname,argtype) in zip(max_args,function.accepts):
-                arg_part = in_el.appendChild(wsdl.createElement("wsdl:part"))
+                arg_part = in_el.appendChild(wsdl.createElement("part"))
                 arg_part.setAttribute("name", argname)
                 arg_part.setAttribute("type", param_type(argtype))
                 
         # Return type            
         return_type = function.returns
-        out_el = wsdl.firstChild.appendChild(wsdl.createElement("wsdl:message"))
+        out_el = wsdl.firstChild.appendChild(wsdl.createElement("message"))
         out_el.setAttribute("name", method + "_out")
-        ret_part = out_el.appendChild(wsdl.createElement("wsdl:part"))
+        ret_part = out_el.appendChild(wsdl.createElement("part"))
         ret_part.setAttribute("name", "returnvalue")
         ret_part.setAttribute("type", param_type(return_type))
 
         # Port connecting arguments with return type
 
-        port_el = wsdl.firstChild.appendChild(wsdl.createElement("wsdl:portType"))
+        port_el = wsdl.firstChild.appendChild(wsdl.createElement("portType"))
         port_el.setAttribute("name", method + "_port")
         
-        op_el = port_el.appendChild(wsdl.createElement("wsdl:operation"))
+        op_el = port_el.appendChild(wsdl.createElement("operation"))
         op_el.setAttribute("name", method)
-        inp_el=wsdl.createElement("wsdl:input")
+        inp_el=wsdl.createElement("input")
         inp_el.setAttribute("message","tns:" + method + "_in")
         inp_el.setAttribute("name",method+"_request")
         op_el.appendChild(inp_el)
-        out_el = wsdl.createElement("wsdl:output")
+        out_el = wsdl.createElement("output")
         out_el.setAttribute("message","tns:" + method + "_out")
         out_el.setAttribute("name",method+"_response")
         op_el.appendChild(out_el)
 
         # Bindings
 
-        bind_el = wsdl.firstChild.appendChild(wsdl.createElement("wsdl:binding"))
+        bind_el = wsdl.firstChild.appendChild(wsdl.createElement("binding"))
         bind_el.setAttribute("name", method + "_binding")
         bind_el.setAttribute("type", "tns:" + method + "_port")
         
@@ -205,20 +206,20 @@ def add_wsdl_ports_and_bindings (wsdl):
         soap_bind.setAttribute("transport","http://schemas.xmlsoap.org/soap/http")
 
         
-        wsdl_op = bind_el.appendChild(wsdl.createElement("wsdl:operation"))
+        wsdl_op = bind_el.appendChild(wsdl.createElement("operation"))
         wsdl_op.setAttribute("name", method)
         wsdl_op.appendChild(wsdl.createElement("soap:operation")).setAttribute("soapAction",
                 "urn:" + method)
 
         
-        wsdl_input = wsdl_op.appendChild(wsdl.createElement("wsdl:input"))
+        wsdl_input = wsdl_op.appendChild(wsdl.createElement("input"))
         input_soap_body = wsdl_input.appendChild(wsdl.createElement("soap:body"))
         input_soap_body.setAttribute("use", "encoded")
         input_soap_body.setAttribute("namespace", "urn:" + method)
         input_soap_body.setAttribute("encodingStyle","http://schemas.xmlsoap.org/soap/encoding/")
 
         
-        wsdl_output = wsdl_op.appendChild(wsdl.createElement("wsdl:output"))
+        wsdl_output = wsdl_op.appendChild(wsdl.createElement("output"))
         output_soap_body = wsdl_output.appendChild(wsdl.createElement("soap:body"))
         output_soap_body.setAttribute("use", "encoded")
         output_soap_body.setAttribute("namespace", "urn:" + method)
@@ -227,12 +228,12 @@ def add_wsdl_ports_and_bindings (wsdl):
 
 def add_wsdl_service(wsdl):
     for service in services.keys():
-        service_el = wsdl.firstChild.appendChild(wsdl.createElement("wsdl:service"))
+        service_el = wsdl.firstChild.appendChild(wsdl.createElement("service"))
         service_el.setAttribute("name", service)
 
         for method in services[service]:
             name=method
-            servport_el = service_el.appendChild(wsdl.createElement("wsdl:port"))
+            servport_el = service_el.appendChild(wsdl.createElement("port"))
             servport_el.setAttribute("name", name + "_port")
             servport_el.setAttribute("binding", "tns:" + name + "_binding")
 
@@ -243,28 +244,16 @@ def add_wsdl_service(wsdl):
 def get_wsdl_definitions():
     wsdl_text_header = """
         <wsdl:definitions
-        name="auto_generated"
-        targetNamespace="%s"
-        xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
-        xmlns:tns="xmlns:%s"
-        xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
-        xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
-        """ % (globals.plc_ns,globals.plc_ns)
-        
-    wsdl = xml.dom.minidom.parseString(wsdl_text_header)
-    
-    return wsdl
-
-def get_wsdl_definitions():
-    wsdl_text_header = """
-        <wsdl:definitions
-        name="auto_generated"
-        targetNamespace="%s"
-        xmlns:xsd="http://www.w3.org/2000/10/XMLSchema"
-        xmlns:tns="%s"
+        name="geniwrapper_autogenerated"
+        targetNamespace="%s/2009/06/sfa.wsdl"
+        xmlns="http://schemas.xmlsoap.org/wsdl/"
+        xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+        xmlns:xsdl="http://%s/2009/06/schema"
+        xmlns:tns="%s/2009/06/sfa.wsdl"
         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+        xmlns:soapenc="http://schemas.xmlsoap.org/wsdl/soap/encoding"
         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"/>
-        """ % (globals.plc_ns,globals.plc_ns)
+        """ % (globals.plc_ns,globals.plc_ns,globals.plc_ns)
         
     wsdl = xml.dom.minidom.parseString(wsdl_text_header)
     
@@ -273,16 +262,19 @@ def get_wsdl_definitions():
 def get_wsdl_definitions_and_types():
     wsdl_text_header = """
     <wsdl:definitions
-        name="auto_generated"
-        targetNamespace="%s"
+        name="geniwrapper_autogenerated"
+        targetNamespace="%s/2009/06/sfa.wsdl"
+        xmlns="http://schemas.xmlsoap.org/wsdl/"
         xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-        xmlns:tns="%s"
+        xmlns:xsdl="http://%s/2009/06/schema"
+        xmlns:tns="%s/2009/06/sfa.wsdl"
         xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
+        xmlns:soapenc="http://schemas.xmlsoap.org/wsdl/soap/encoding"
         xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
-        <wsdl:types>
-            <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="%s"/>
-        </wsdl:types>
-    </wsdl:definitions> """ % (globals.plc_ns,globals.plc_ns,globals.plc_ns)
+        <types>
+            <xsd:schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="%s/2009/06/schema"/>
+        </types>
+    </wsdl:definitions> """ % (globals.plc_ns, globals.plc_ns, globals.plc_ns, globals.plc_ns)
     wsdl = xml.dom.minidom.parseString(wsdl_text_header)
     return wsdl
 
@@ -291,7 +283,7 @@ types = get_wsdl_definitions_and_types()
 
 wsdl = get_wsdl_definitions()
 add_wsdl_ports_and_bindings(wsdl)
-wsdl_types = wsdl.importNode(types.getElementsByTagName("wsdl:types")[0], True)
+wsdl_types = wsdl.importNode(types.getElementsByTagName("types")[0], True)
 wsdl.firstChild.appendChild(wsdl_types)
 add_wsdl_service(wsdl)
 
index fc80ee3..2f83df2 100644 (file)
 <?xml version='1.0' encoding='UTF-8'?>
-<wsdl:definitions xmlns='http://www.w3.org/2001/XMLSchema' xmlns:tns='xmlns:http://www.planet-lab.org/geniwrapper.wsdl' xmlns:xsd='http://www.w3.org/2000/10/XMLSchema' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' name='auto_generated' targetNamespace='http://www.planet-lab.org/geniwrapper.wsdl'>
-  <wsdl:message name='create_gid_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-    <wsdl:part type='tns:Type1' name='uuid'/>
-    <wsdl:part type='xsd:string' name='pubkey_str'/>
-  </wsdl:message>
-  <wsdl:message name='create_gid_out'>
-    <wsdl:part type='xsd:string' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='create_gid_port'>
-    <wsdl:operation name='create_gid'>
-      <wsdl:input message='tns:create_gid_in' name='create_gid_request'/>
-      <wsdl:output message='tns:create_gid_out' name='create_gid_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:create_gid_port' name='create_gid_binding'>
+<wsdl:definitions xmlns='http://schemas.xmlsoap.org/wsdl/' xmlns:tns='http://www.planet-lab.org/geniwrapper.wsdl' xmlns:soapenc='http://schemas.xmlsoap.org/wsdl/soap/encoding' xmlns:xsd='http://www.w3.org/2001/XMLSchema' xmlns:xsdl='http://http://www.planet-lab.org/geniwrapper/2009/06/schema' xmlns:wsdl='http://schemas.xmlsoap.org/wsdl/' xmlns:soap='http://schemas.xmlsoap.org/wsdl/soap/' name='geniwrapper_autogenerated' targetNamespace='http://www.planet-lab.org/geniwrapper/2009/06/sfa.wsdl'>
+  <message name='create_gid_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+    <part type='xsdl:Type1' name='uuid'/>
+    <part type='xsd:string' name='pubkey_str'/>
+  </message>
+  <message name='create_gid_out'>
+    <part type='xsd:string' name='returnvalue'/>
+  </message>
+  <portType name='create_gid_port'>
+    <operation name='create_gid'>
+      <input message='tns:create_gid_in' name='create_gid_request'/>
+      <output message='tns:create_gid_out' name='create_gid_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:create_gid_port' name='create_gid_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='create_gid'>
+    <operation name='create_gid'>
       <soap:operation soapAction='urn:create_gid'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:create_gid' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:create_gid' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='create_slice_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-    <wsdl:part type='xsd:string' name='rspec'/>
-  </wsdl:message>
-  <wsdl:message name='create_slice_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='create_slice_port'>
-    <wsdl:operation name='create_slice'>
-      <wsdl:input message='tns:create_slice_in' name='create_slice_request'/>
-      <wsdl:output message='tns:create_slice_out' name='create_slice_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:create_slice_port' name='create_slice_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='create_slice_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+    <part type='xsd:string' name='rspec'/>
+  </message>
+  <message name='create_slice_out'>
+    <part type='xsdl:Type2' name='returnvalue'/>
+  </message>
+  <portType name='create_slice_port'>
+    <operation name='create_slice'>
+      <input message='tns:create_slice_in' name='create_slice_request'/>
+      <output message='tns:create_slice_out' name='create_slice_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:create_slice_port' name='create_slice_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='create_slice'>
+    <operation name='create_slice'>
       <soap:operation soapAction='urn:create_slice'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:create_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:create_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='delete_slice_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='delete_slice_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='delete_slice_port'>
-    <wsdl:operation name='delete_slice'>
-      <wsdl:input message='tns:delete_slice_in' name='delete_slice_request'/>
-      <wsdl:output message='tns:delete_slice_out' name='delete_slice_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:delete_slice_port' name='delete_slice_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='delete_slice_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+  </message>
+  <message name='delete_slice_out'>
+    <part type='xsdl:Type3' name='returnvalue'/>
+  </message>
+  <portType name='delete_slice_port'>
+    <operation name='delete_slice'>
+      <input message='tns:delete_slice_in' name='delete_slice_request'/>
+      <output message='tns:delete_slice_out' name='delete_slice_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:delete_slice_port' name='delete_slice_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='delete_slice'>
+    <operation name='delete_slice'>
       <soap:operation soapAction='urn:delete_slice'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:delete_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:delete_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='get_credential_in'>
-    <wsdl:part type='tns:Type2' name='cred'/>
-    <wsdl:part type='xsd:string' name='type'/>
-  </wsdl:message>
-  <wsdl:message name='get_credential_out'>
-    <wsdl:part type='xsd:string' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='get_credential_port'>
-    <wsdl:operation name='get_credential'>
-      <wsdl:input message='tns:get_credential_in' name='get_credential_request'/>
-      <wsdl:output message='tns:get_credential_out' name='get_credential_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:get_credential_port' name='get_credential_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='get_credential_in'>
+    <part type='xsdl:Type4' name='cred'/>
+    <part type='xsd:string' name='type'/>
+  </message>
+  <message name='get_credential_out'>
+    <part type='xsd:string' name='returnvalue'/>
+  </message>
+  <portType name='get_credential_port'>
+    <operation name='get_credential'>
+      <input message='tns:get_credential_in' name='get_credential_request'/>
+      <output message='tns:get_credential_out' name='get_credential_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:get_credential_port' name='get_credential_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='get_credential'>
+    <operation name='get_credential'>
       <soap:operation soapAction='urn:get_credential'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:get_credential' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:get_credential' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='get_resources_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='tns:Type3' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='get_resources_out'>
-    <wsdl:part type='xsd:string' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='get_resources_port'>
-    <wsdl:operation name='get_resources'>
-      <wsdl:input message='tns:get_resources_in' name='get_resources_request'/>
-      <wsdl:output message='tns:get_resources_out' name='get_resources_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:get_resources_port' name='get_resources_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='get_resources_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsdl:Type5' name='hrn'/>
+  </message>
+  <message name='get_resources_out'>
+    <part type='xsd:string' name='returnvalue'/>
+  </message>
+  <portType name='get_resources_port'>
+    <operation name='get_resources'>
+      <input message='tns:get_resources_in' name='get_resources_request'/>
+      <output message='tns:get_resources_out' name='get_resources_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:get_resources_port' name='get_resources_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='get_resources'>
+    <operation name='get_resources'>
       <soap:operation soapAction='urn:get_resources'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:get_resources' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:get_resources' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='get_slices_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-  </wsdl:message>
-  <wsdl:message name='get_slices_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='get_slices_port'>
-    <wsdl:operation name='get_slices'>
-      <wsdl:input message='tns:get_slices_in' name='get_slices_request'/>
-      <wsdl:output message='tns:get_slices_out' name='get_slices_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:get_slices_port' name='get_slices_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='get_slices_in'>
+    <part type='xsd:string' name='cred'/>
+  </message>
+  <message name='get_slices_out'>
+    <part type='xsdl:Type6' name='returnvalue'/>
+  </message>
+  <portType name='get_slices_port'>
+    <operation name='get_slices'>
+      <input message='tns:get_slices_in' name='get_slices_request'/>
+      <output message='tns:get_slices_out' name='get_slices_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:get_slices_port' name='get_slices_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='get_slices'>
+    <operation name='get_slices'>
       <soap:operation soapAction='urn:get_slices'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:get_slices' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:get_slices' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='get_ticket_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-    <wsdl:part type='xsd:string' name='rspec'/>
-  </wsdl:message>
-  <wsdl:message name='get_ticket_out'>
-    <wsdl:part type='xsd:string' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='get_ticket_port'>
-    <wsdl:operation name='get_ticket'>
-      <wsdl:input message='tns:get_ticket_in' name='get_ticket_request'/>
-      <wsdl:output message='tns:get_ticket_out' name='get_ticket_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:get_ticket_port' name='get_ticket_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='get_ticket_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+    <part type='xsd:string' name='rspec'/>
+  </message>
+  <message name='get_ticket_out'>
+    <part type='xsd:string' name='returnvalue'/>
+  </message>
+  <portType name='get_ticket_port'>
+    <operation name='get_ticket'>
+      <input message='tns:get_ticket_in' name='get_ticket_request'/>
+      <output message='tns:get_ticket_out' name='get_ticket_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:get_ticket_port' name='get_ticket_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='get_ticket'>
+    <operation name='get_ticket'>
       <soap:operation soapAction='urn:get_ticket'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:get_ticket' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:get_ticket' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='list_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='list_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='list_port'>
-    <wsdl:operation name='list'>
-      <wsdl:input message='tns:list_in' name='list_request'/>
-      <wsdl:output message='tns:list_out' name='list_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:list_port' name='list_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='list_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+  </message>
+  <message name='list_out'>
+    <part type='xsdl:Type8' name='returnvalue'/>
+  </message>
+  <portType name='list_port'>
+    <operation name='list'>
+      <input message='tns:list_in' name='list_request'/>
+      <output message='tns:list_out' name='list_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:list_port' name='list_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='list'>
+    <operation name='list'>
       <soap:operation soapAction='urn:list'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:list' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:list' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='register_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:dict' name='record_dict'/>
-  </wsdl:message>
-  <wsdl:message name='register_out'>
-    <wsdl:part type='xsd:int' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='register_port'>
-    <wsdl:operation name='register'>
-      <wsdl:input message='tns:register_in' name='register_request'/>
-      <wsdl:output message='tns:register_out' name='register_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:register_port' name='register_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='register_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:anyType' name='record_dict'/>
+  </message>
+  <message name='register_out'>
+    <part type='xsd:int' name='returnvalue'/>
+  </message>
+  <portType name='register_port'>
+    <operation name='register'>
+      <input message='tns:register_in' name='register_request'/>
+      <output message='tns:register_out' name='register_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:register_port' name='register_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='register'>
+    <operation name='register'>
       <soap:operation soapAction='urn:register'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:register' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:register' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='remove_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='type'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='remove_out'>
-    <wsdl:part type='xsd:int' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='remove_port'>
-    <wsdl:operation name='remove'>
-      <wsdl:input message='tns:remove_in' name='remove_request'/>
-      <wsdl:output message='tns:remove_out' name='remove_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:remove_port' name='remove_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='remove_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='type'/>
+    <part type='xsd:string' name='hrn'/>
+  </message>
+  <message name='remove_out'>
+    <part type='xsd:int' name='returnvalue'/>
+  </message>
+  <portType name='remove_port'>
+    <operation name='remove'>
+      <input message='tns:remove_in' name='remove_request'/>
+      <output message='tns:remove_out' name='remove_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:remove_port' name='remove_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='remove'>
+    <operation name='remove'>
       <soap:operation soapAction='urn:remove'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:remove' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:remove' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='reset_slices_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='reset_slices_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='reset_slices_port'>
-    <wsdl:operation name='reset_slices'>
-      <wsdl:input message='tns:reset_slices_in' name='reset_slices_request'/>
-      <wsdl:output message='tns:reset_slices_out' name='reset_slices_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:reset_slices_port' name='reset_slices_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='reset_slices_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+  </message>
+  <message name='reset_slices_out'>
+    <part type='xsdl:Type9' name='returnvalue'/>
+  </message>
+  <portType name='reset_slices_port'>
+    <operation name='reset_slices'>
+      <input message='tns:reset_slices_in' name='reset_slices_request'/>
+      <output message='tns:reset_slices_out' name='reset_slices_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:reset_slices_port' name='reset_slices_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='reset_slices'>
+    <operation name='reset_slices'>
       <soap:operation soapAction='urn:reset_slices'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:reset_slices' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:reset_slices' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='resolve_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='resolve_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='resolve_port'>
-    <wsdl:operation name='resolve'>
-      <wsdl:input message='tns:resolve_in' name='resolve_request'/>
-      <wsdl:output message='tns:resolve_out' name='resolve_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:resolve_port' name='resolve_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='resolve_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+  </message>
+  <message name='resolve_out'>
+    <part type='xsdl:Type11' name='returnvalue'/>
+  </message>
+  <portType name='resolve_port'>
+    <operation name='resolve'>
+      <input message='tns:resolve_in' name='resolve_request'/>
+      <output message='tns:resolve_out' name='resolve_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:resolve_port' name='resolve_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='resolve'>
+    <operation name='resolve'>
       <soap:operation soapAction='urn:resolve'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:resolve' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:resolve' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='start_slice_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='start_slice_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='start_slice_port'>
-    <wsdl:operation name='start_slice'>
-      <wsdl:input message='tns:start_slice_in' name='start_slice_request'/>
-      <wsdl:output message='tns:start_slice_out' name='start_slice_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:start_slice_port' name='start_slice_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='start_slice_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+  </message>
+  <message name='start_slice_out'>
+    <part type='xsdl:Type12' name='returnvalue'/>
+  </message>
+  <portType name='start_slice_port'>
+    <operation name='start_slice'>
+      <input message='tns:start_slice_in' name='start_slice_request'/>
+      <output message='tns:start_slice_out' name='start_slice_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:start_slice_port' name='start_slice_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='start_slice'>
+    <operation name='start_slice'>
       <soap:operation soapAction='urn:start_slice'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:start_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:start_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='stop_slice_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:string' name='hrn'/>
-  </wsdl:message>
-  <wsdl:message name='stop_slice_out'>
-    <wsdl:part type='sequence' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='stop_slice_port'>
-    <wsdl:operation name='stop_slice'>
-      <wsdl:input message='tns:stop_slice_in' name='stop_slice_request'/>
-      <wsdl:output message='tns:stop_slice_out' name='stop_slice_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:stop_slice_port' name='stop_slice_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='stop_slice_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:string' name='hrn'/>
+  </message>
+  <message name='stop_slice_out'>
+    <part type='xsdl:Type13' name='returnvalue'/>
+  </message>
+  <portType name='stop_slice_port'>
+    <operation name='stop_slice'>
+      <input message='tns:stop_slice_in' name='stop_slice_request'/>
+      <output message='tns:stop_slice_out' name='stop_slice_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:stop_slice_port' name='stop_slice_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='stop_slice'>
+    <operation name='stop_slice'>
       <soap:operation soapAction='urn:stop_slice'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:stop_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:stop_slice' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:message name='update_in'>
-    <wsdl:part type='xsd:string' name='cred'/>
-    <wsdl:part type='xsd:dict' name='record_dict'/>
-  </wsdl:message>
-  <wsdl:message name='update_out'>
-    <wsdl:part type='xsd:int' name='returnvalue'/>
-  </wsdl:message>
-  <wsdl:portType name='update_port'>
-    <wsdl:operation name='update'>
-      <wsdl:input message='tns:update_in' name='update_request'/>
-      <wsdl:output message='tns:update_out' name='update_response'/>
-    </wsdl:operation>
-  </wsdl:portType>
-  <wsdl:binding type='tns:update_port' name='update_binding'>
+      </output>
+    </operation>
+  </binding>
+  <message name='update_in'>
+    <part type='xsd:string' name='cred'/>
+    <part type='xsd:anyType' name='record_dict'/>
+  </message>
+  <message name='update_out'>
+    <part type='xsd:int' name='returnvalue'/>
+  </message>
+  <portType name='update_port'>
+    <operation name='update'>
+      <input message='tns:update_in' name='update_request'/>
+      <output message='tns:update_out' name='update_response'/>
+    </operation>
+  </portType>
+  <binding type='tns:update_port' name='update_binding'>
     <soap:binding style='rpc' transport='http://schemas.xmlsoap.org/soap/http'/>
-    <wsdl:operation name='update'>
+    <operation name='update'>
       <soap:operation soapAction='urn:update'/>
-      <wsdl:input>
+      <input>
         <soap:body use='encoded' namespace='urn:update' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:input>
-      <wsdl:output>
+      </input>
+      <output>
         <soap:body use='encoded' namespace='urn:update' encodingStyle='http://schemas.xmlsoap.org/soap/encoding/'/>
-      </wsdl:output>
-    </wsdl:operation>
-  </wsdl:binding>
-  <wsdl:types>
-    <xsd:schema targetNamespace='http://www.planet-lab.org/geniwrapper.wsdl'/>
-    <xsd:complexType name='Type1'>
-      <xsd:choice>
-        <element type='xsd:string' name='Unique identifier for new GID (uuid)' minOccurs='0'/>
-      </xsd:choice>
-    </xsd:complexType>
-    <xsd:complexType name='Type2'>
-      <xsd:choice>
-        <element type='xsd:string' name='credential' minOccurs='0'/>
-      </xsd:choice>
-    </xsd:complexType>
-    <xsd:complexType name='Type3'>
-      <xsd:choice>
-        <element type='xsd:string' name='Human readable name (hrn)' minOccurs='0'/>
-      </xsd:choice>
-    </xsd:complexType>
-  </wsdl:types>
-  <wsdl:service name='aggregate'>
-    <wsdl:port binding='tns:create_slice_binding' name='create_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/aggregate'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:delete_slice_binding' name='delete_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/aggregate'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:get_resources_binding' name='get_resources_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/aggregate'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:get_slices_binding' name='get_slices_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/aggregate'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:reset_slices_binding' name='reset_slices_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/aggregate'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:start_slice_binding' name='start_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/aggregate'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:stop_slice_binding' name='stop_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/aggregate'/>
-    </wsdl:port>
-  </wsdl:service>
-  <wsdl:service name='slicemgr'>
-    <wsdl:port binding='tns:create_slice_binding' name='create_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/slicemgr'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:delete_slice_binding' name='delete_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/slicemgr'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:get_resources_binding' name='get_resources_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/slicemgr'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:get_slices_binding' name='get_slices_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/slicemgr'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:reset_slices_binding' name='reset_slices_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/slicemgr'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:start_slice_binding' name='start_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/slicemgr'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:stop_slice_binding' name='stop_slice_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/slicemgr'/>
-    </wsdl:port>
-  </wsdl:service>
-  <wsdl:service name='registry'>
-    <wsdl:port binding='tns:create_gid_binding' name='create_gid_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:get_credential_binding' name='get_credential_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:get_ticket_binding' name='get_ticket_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:list_binding' name='list_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:register_binding' name='register_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:remove_binding' name='remove_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:resolve_binding' name='resolve_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-    <wsdl:port binding='tns:update_binding' name='update_port'>
-      <soap:address location='http://www.planet-lab.org/geniwrapper.wsdl/registry'/>
-    </wsdl:port>
-  </wsdl:service>
+      </output>
+    </operation>
+  </binding>
+  <types>
+    <xsd:schema xmlns='http://www.w3.org/2001/XMLSchema' targetNamespace='http://www.planet-lab.org/geniwrapper/2009/06/schema'>
+      <xsd:complexType name='Type1'>
+        <xsd:choice>
+          <element type='xsd:string' name='uuid' minOccurs='0'/>
+        </xsd:choice>
+      </xsd:complexType>
+      <xsd:complexType name='Type2'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsd:int[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name='Type3'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsd:int[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name='Type4'>
+        <xsd:choice>
+          <element type='xsd:string' name='credential' minOccurs='0'/>
+        </xsd:choice>
+      </xsd:complexType>
+      <xsd:complexType name='Type5'>
+        <xsd:choice>
+          <element type='xsd:string' name='hrn' minOccurs='0'/>
+        </xsd:choice>
+      </xsd:complexType>
+      <xsd:complexType name='Type6'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsd:string[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name='Type7'>
+        <xsd:sequence>
+          <xsd:element type='xsd:string' name='gid'/>
+          <xsd:element type='xsd:string' name='hrn'/>
+          <xsd:element type='xsd:string' name='type'/>
+        </xsd:sequence>
+      </xsd:complexType>
+      <xsd:complexType name='Type8'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsdl:Type7[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name='Type9'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsd:int[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name='Type10'>
+        <xsd:sequence>
+          <xsd:element type='xsd:string' name='gid'/>
+          <xsd:element type='xsd:string' name='hrn'/>
+          <xsd:element type='xsd:string' name='type'/>
+        </xsd:sequence>
+      </xsd:complexType>
+      <xsd:complexType name='Type11'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsdl:Type10[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name='Type12'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsd:int[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+      <xsd:complexType name='Type13'>
+        <xsd:complexContent>
+          <restriction base='soapenc:Array'>
+            <attribute wsdl:arrayType='xsd:int[]' ref='soapenc:arrayType'/>
+          </restriction>
+        </xsd:complexContent>
+      </xsd:complexType>
+    </xsd:schema>
+  </types>
+  <service name='aggregate'>
+    <port binding='tns:create_slice_binding' name='create_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/aggregate'/>
+    </port>
+    <port binding='tns:delete_slice_binding' name='delete_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/aggregate'/>
+    </port>
+    <port binding='tns:get_resources_binding' name='get_resources_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/aggregate'/>
+    </port>
+    <port binding='tns:get_slices_binding' name='get_slices_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/aggregate'/>
+    </port>
+    <port binding='tns:reset_slices_binding' name='reset_slices_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/aggregate'/>
+    </port>
+    <port binding='tns:start_slice_binding' name='start_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/aggregate'/>
+    </port>
+    <port binding='tns:stop_slice_binding' name='stop_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/aggregate'/>
+    </port>
+  </service>
+  <service name='slicemgr'>
+    <port binding='tns:create_slice_binding' name='create_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/slicemgr'/>
+    </port>
+    <port binding='tns:delete_slice_binding' name='delete_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/slicemgr'/>
+    </port>
+    <port binding='tns:get_resources_binding' name='get_resources_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/slicemgr'/>
+    </port>
+    <port binding='tns:get_slices_binding' name='get_slices_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/slicemgr'/>
+    </port>
+    <port binding='tns:reset_slices_binding' name='reset_slices_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/slicemgr'/>
+    </port>
+    <port binding='tns:start_slice_binding' name='start_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/slicemgr'/>
+    </port>
+    <port binding='tns:stop_slice_binding' name='stop_slice_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/slicemgr'/>
+    </port>
+  </service>
+  <service name='registry'>
+    <port binding='tns:create_gid_binding' name='create_gid_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+    <port binding='tns:get_credential_binding' name='get_credential_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+    <port binding='tns:get_ticket_binding' name='get_ticket_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+    <port binding='tns:list_binding' name='list_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+    <port binding='tns:register_binding' name='register_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+    <port binding='tns:remove_binding' name='remove_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+    <port binding='tns:resolve_binding' name='resolve_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+    <port binding='tns:update_binding' name='update_port'>
+      <soap:address location='http://www.planet-lab.org/geniwrapper/registry'/>
+    </port>
+  </service>
 </wsdl:definitions>