Ejemplo n.º 1
0
 def resolve(self, definitions):
     """
     Resolve named references to other WSDL objects.
     @param definitions: A definitions object.
     @type definitions: L{Definitions}
     """
     for op in self.operations.values():
         if op.input is None:
             op.input = Message(Element('no-input'), definitions)
         else:
             qref = qualify(op.input, self.root, definitions.tns)
             msg = definitions.messages.get(qref)
             if msg is None:
                 raise Exception("msg '%s', not-found" % op.input)
             else:
                 op.input = msg
         if op.output is None:
             op.output = Message(Element('no-output'), definitions)
         else:
             qref = qualify(op.output, self.root, definitions.tns)
             msg = definitions.messages.get(qref)
             if msg is None:
                 raise Exception("msg '%s', not-found" % op.output)
             else:
                 op.output = msg
         for f in op.faults:
             qref = qualify(f.message, self.root, definitions.tns)
             msg = definitions.messages.get(qref)
             if msg is None:
                 raise Exception, "msg '%s', not-found" % f.message
             f.message = msg
Ejemplo n.º 2
0
 def __getref(self, a, tns):
     """ Get the qualified value of attribute named 'a'."""
     s = self.root.get(a)
     if s is None:
         return s
     else:
         return qualify(s, self.root, tns)  
Ejemplo n.º 3
0
 def resolveport(self, definitions):
     """
     Resolve port_type reference.
     @param definitions: A definitions object.
     @type definitions: L{Definitions}
     """
     ref = qualify(self.type, self.root, definitions.tns)
     port_type = definitions.port_types.get(ref)
     if port_type is None:
         raise Exception("portType '%s', not-found" % self.type)
     else:
         self.type = port_type
Ejemplo n.º 4
0
 def resolve(self, definitions):
     """
     Resolve named references to other WSDL objects.
     Ports without soap bindings are discarded.
     @param definitions: A definitions object.
     @type definitions: L{Definitions}
     """
     filtered = []
     for p in self.ports:
         ref = qualify(p.binding, self.root, definitions.tns)
         binding = definitions.bindings.get(ref)
         if binding is None:
             raise Exception("binding '%s', not-found" % p.binding)
         if binding.soap is None:
             log.debug('binding "%s" - not a soap, discarded', binding.name)
             continue
         p.binding = binding
         filtered.append(p)
     self.ports = filtered
Ejemplo n.º 5
0
 def resolveheaders(self, definitions, op):
     """
     Resolve soap header I{message} references.
     @param definitions: A definitions object.
     @type definitions: L{Definitions}
     @param op: An I{operation} object.
     @type op: I{operation}
     """
     soap = op.soap
     headers = soap.input.headers + soap.output.headers
     for header in headers:
         mn = header.message
         ref = qualify(mn, self.root, definitions.tns)
         message = definitions.messages.get(ref)
         if message is None:
             raise Exception, "message'%s', not-found" % mn
         pn = header.part
         for p in message.parts:
             if p.name == pn:
                 header.part = p
                 break
         if pn == header.part:
             raise Exception, \
                 "message '%s' has not part named '%s'" % (ref, pn)