def download(self, options): """ download the schema """ try: reader = DocumentReader(options) d = yield reader.open(self.url) root = d.root() root.set('url', self.url) schema = yield self.build_schema(root, options) defer.returnValue(schema) except TransportError: msg = 'imported schema (%s) at (%s), failed' % (self.ns[1], self.url) log.error('%s, %s', self.id, msg, exc_info=True) raise Exception(msg)
def build(self): log.debug('reading wsdl at: %s ...', self.url) reader = DocumentReader(self.options) d = yield reader.open(self.url) root = d.root() WObject.__init__(self, root) self.root = root self.tns = self.mktns(root) self.add_children(self.root) self.children.sort() yield self.open_imports() self.resolve() yield self.build_schema() self.set_wrapped() for s in self.services: self.add_methods(s) log.debug("wsdl at '%s' loaded:\n%s", self.url, self)