+ torus_searchable_url = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "content_url"))
+ torus_content_url = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "realm"))
+ default_realm = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "xsldir"))
+ xsldir = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "element_transform"))
+ element_transform = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "element_raw"))
+ element_raw = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "proxy"))
+ proxy = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "explain_xsl"))
+ explain_xslt_fname = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "record_xsl"))
+ record_xslt_fname = mp::xml::get_text(attr->children);
+ else
+ throw mp::filter::FilterException(
+ "Bad attribute " + std::string((const char *)
+ attr->name));
+ }
+ // If content_url is not given, use value of searchable, to
+ // ensure backwards compatibility
+ if (!torus_content_url.length())
+ torus_content_url = torus_searchable_url;
+ configure_local_records(ptr->children, test_only);
+ }
+ else if (!strcmp((const char *) ptr->name, "cclmap"))
+ {
+ const char *addinfo = 0;
+ ccl_xml_config(bibset, ptr, &addinfo);
+ }
+ else if (!strcmp((const char *) ptr->name, "fieldmap"))
+ {
+ const struct _xmlAttr *attr;
+ std::string ccl_field;
+ std::string cql_field;
+ for (attr = ptr->properties; attr; attr = attr->next)
+ {
+ if (!strcmp((const char *) attr->name, "ccl"))
+ ccl_field = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "cql"))
+ cql_field = mp::xml::get_text(attr->children);
+ else
+ throw mp::filter::FilterException(
+ "Bad attribute " + std::string((const char *)
+ attr->name));
+ }
+ if (cql_field.length())
+ fieldmap[cql_field] = ccl_field;
+ }
+ else if (!strcmp((const char *) ptr->name, "contentProxy"))
+ {
+ const struct _xmlAttr *attr;
+ for (attr = ptr->properties; attr; attr = attr->next)
+ {
+ if (!strcmp((const char *) attr->name, "server"))
+ {
+ yaz_log(YLOG_WARN,
+ "contentProxy's server attribute is deprecated");
+ yaz_log(YLOG_LOG,
+ "Specify config_file instead. For example:");
+ yaz_log(YLOG_LOG,
+ " content_file=\"/etc/cf-proxy/cproxy.cfg\"");
+ content_proxy_server = mp::xml::get_text(attr->children);
+ }
+ else if (!strcmp((const char *) attr->name, "tmp_file"))
+ content_tmp_file = mp::xml::get_text(attr->children);
+ else if (!strcmp((const char *) attr->name, "config_file"))
+ content_config_file = mp::xml::get_text(attr->children);
+ else
+ throw mp::filter::FilterException(
+ "Bad attribute " + std::string((const char *)
+ attr->name));
+ }
+ }
+ else if (!strcmp((const char *) ptr->name, "log"))
+ {
+ const struct _xmlAttr *attr;
+ for (attr = ptr->properties; attr; attr = attr->next)
+ {
+ if (!strcmp((const char *) attr->name, "apdu"))
+ apdu_log = mp::xml::get_bool(attr->children, false);