+ else if (!strcmp((const char *) n->name, (const char *) "xslt"))
+ {
+ if (service_xslt_config(service, n))
+ return 0;
+ }
+ else if (!strcmp((const char *) n->name, (const char *) "set"))
+ {
+ xmlChar *name= xmlGetProp(n, (xmlChar *) "name");
+ xmlChar *value = xmlGetProp(n, (xmlChar *) "value");
+ if (service->dictionary && name && value) {
+ yaz_log(YLOG_DEBUG, "service set: %s=%s (Not implemented)", (char *) name, (char *) value);
+ //service_aply_setting(service, name, value);
+ }
+ }
+ else if (!strcmp((const char *) n->name, "rank"))
+ {
+ char *rank_cluster = (char *) xmlGetProp(n, (xmlChar *) "cluster");
+
+ if (rank_cluster && !strcmp(rank_cluster, "yes"))
+ service->rank_cluster = 1;
+ else if (rank_cluster && !strcmp(rank_cluster, "no"))
+ service->rank_cluster = 0;
+ else
+ {
+ yaz_log(YLOG_FATAL, "service: rank@cluster boolean");
+ return 0;
+ }
+ xmlFree(rank_cluster);
+ }
+ else if (!strcmp((const char *) n->name, "sort-default"))
+ {
+ char *default_sort = (char *) xmlGetProp(n, (xmlChar *) "field");
+
+ if (default_sort && strcmp(default_sort, "")) {
+ service->default_sort = nmem_strdup(service->nmem, default_sort);
+ yaz_log(YLOG_LOG, "service %d: default sort order configured to: %s", service_id, default_sort);
+ }
+ else
+ {
+ yaz_log(YLOG_FATAL, "default sort order is invalid: %s", default_sort);
+ return 0;
+ }
+ xmlFree(default_sort);
+ }