def decode(node, errs, where): l = [] nodes = xmlext.getAllNodes(node, path) #print node, tag + '/' + comp_tag, nodes if len(nodes)==0 and req==mandatory: errs.append(where + ': ' + _('Mandatory list "%s" under "%s" node is empty.') % (path, node.name())) ix = 1 for node in nodes: dummy = xmlext.newNode(node, "Dummy") xmlext.addNode(dummy, '', node) l.append(decode_item(dummy, errs, where + str("[%s]" % ix))) #l.append(decode_item(node, errs, where + unicode("[%s]" % ix))) ix += 1 return l
def decode(self, node, errs, where = ""): # flags, tag name, instance attribute assert self.tag != '' nodes = xmlext.getAllNodes(node, self.tag) if not nodes: if self.req == mandatory: errs.append(where + ': ' + _("At least one '%s' tag should have local text") % self.tag ) else: for node in nodes: lang = xmlext.getNodeAttribute(node, 'xml:lang') c = xmlext.getNodeText(node) if not c: errs.append(where + ': ' + _("'%s' language of tag '%s' is empty") % (lang, self.tag)) # FIXME: check for dups and 'en' if not lang: lang = 'en' self[lang] = c