def list_stmt(self, stmt, p_elem, pset): lelem = SchemaNode.list(self.prefix_id(stmt.arg), p_elem) plist, new_pset = self.select_patch(pset, stmt.arg) lelem.minEl, lelem.maxEl = self.get_minmax(stmt, plist) keyst = stmt.search_one("key") if keyst: self.lists.append(lelem) lelem.keys = [self.prefix_id(k) for k in keyst.arg.split()] for s in plist: self.handle_stmt(s, lelem, new_pset) self.handle_substmts(stmt, lelem, new_pset)
def list_stmt(self, stmt, p_elem, pset): lelem = SchemaNode.list(self.qname(stmt), p_elem) keyst = stmt.search_one("key") if keyst: lelem.keys = [self.add_prefix(k, stmt) for k in keyst.arg.split()] refd, augs, new_pset = self.process_patches(pset, stmt, lelem) left = self.lookup_expand(stmt, new_pset.keys() + lelem.keys) for a in augs: left = self.lookup_expand(a, left) lelem.minEl, lelem.maxEl = self.get_minmax(stmt, refd) if int(lelem.minEl) > 0: self.propagate_occur(p_elem, 2) self.handle_substmts(stmt, lelem, new_pset) self.apply_augments(augs, lelem, new_pset) if not lelem.children: SchemaNode("empty", lelem)