def get_type(self, tn): if tn is None: return Null if tn.startswith("{"): ns, qn = tn[1:].split('}', 1) elif ":" in tn: ns, qn = tn.split(":", 1) ns = self.nsmap[ns] else: if None in self.nsmap: ns, qn = self.nsmap[None], tn else: ns, qn = self.tns, tn ti = self.retval.get(ns) if ti is not None: t = ti.types.get(qn) if t: return t e = ti.elements.get(qn) if e: if ":" in e.type: return self.get_type(e.type) else: retval = self.get_type("{%s}%s" % (ns, e.type)) if retval is None and None in self.nsmap: retval = self.get_type("{%s}%s" % (self.nsmap[None], e.type)) return retval return TYPE_MAP.get("{%s}%s" % (ns, qn))
def get_type(ctx, tn): if tn is None: return Null if tn.startswith("{"): ns, qn = tn[1:].split('}',1) elif ":" in tn: ns, qn = tn.split(":",1) ns = ctx.nsmap[ns] else: if None in ctx.nsmap: ns, qn = ctx.nsmap[None], tn else: ns, qn = ctx.tns, tn ti = ctx.retval.get(ns) if ti is not None: t = ti.types.get(qn) if t: return t e = ti.elements.get(qn) if e: if ":" in e.type: return get_type(ctx, e.type) else: retval = get_type(ctx, "{%s}%s" % (ns, e.type)) if retval is None and None in ctx.nsmap: retval = get_type(ctx, "{%s}%s" % (ctx.nsmap[None], e.type)) return retval return TYPE_MAP.get("{%s}%s" % (ns, qn))
def get_type(self, tn): if tn is None: return Null ns, qn = self.get_name(tn) ti = self.retval.get(ns) if ti is not None: t = ti.types.get(qn) if t: return t e = ti.elements.get(qn) if e: if ":" in e.type: return self.get_type(e.type) else: retval = self.get_type("{%s}%s" % (ns, e.type)) if retval is None and None in self.nsmap: retval = self.get_type("{%s}%s" % (self.nsmap[None], e.type)) return retval return TYPE_MAP.get("{%s}%s" % (ns, qn))