+static void index_record(struct filter_xslt_info *tinfo,struct recExtractCtrl *ctrl,
+ xmlNodePtr ptr, RecWord *recWord)
+{
+ if (ptr && ptr->type == XML_ELEMENT_NODE && ptr->ns &&
+ !XML_STRCMP(ptr->ns->href, zebra_xslt_ns)
+ && !XML_STRCMP(ptr->name, "record"))
+ {
+ const char *type_str = "update";
+ const char *id_str = 0;
+ const char *rank_str = 0;
+ struct _xmlAttr *attr;
+ for (attr = ptr->properties; attr; attr = attr->next)
+ {
+ attr_content(attr, "type", &type_str);
+ attr_content(attr, "id", &id_str);
+ attr_content(attr, "rank", &rank_str);
+ }
+ if (id_str)
+ sscanf(id_str, "%255s", ctrl->match_criteria);
+ if (rank_str)
+ {
+ ctrl->staticrank = atoi(rank_str);
+ yaz_log(YLOG_LOG, "rank=%d",ctrl->staticrank);
+ }
+ else
+ yaz_log(YLOG_LOG, "no rank");
+
+ ptr = ptr->children;
+ }
+ index_node(tinfo, ctrl, ptr, recWord);
+}
+
+static int extract_doc(struct filter_xslt_info *tinfo, struct recExtractCtrl *p,