|
IDZEBRA 2.2.8
|
#include <stdio.h>#include <stdlib.h>#include <assert.h>#include <ctype.h>#include <stdarg.h>#include <yaz/diagbib1.h>#include <yaz/tpath.h>#include <yaz/snprintf.h>#include <libxml/xmlversion.h>#include <libxml/parser.h>#include <libxml/tree.h>#include <libxml/xmlIO.h>#include <libxml/xmlreader.h>#include <libxslt/transform.h>#include <libxslt/xsltutils.h>#include <idzebra/util.h>#include <idzebra/recctrl.h>#include <yaz/oid_db.h>Go to the source code of this file.
Data Structures | |
| struct | convert_xslt |
| struct | convert_meta |
| struct | convert_s |
| struct | filter_extract |
| struct | filter_store |
| struct | filter_retrieve |
| struct | filter_input |
| struct | filter_info |
Macros | |
| #define | ZEBRA_DOM_NS "http://indexdata.com/zebra-2.0" |
| #define | ZEBRA_PI_NAME "zebra-2.0" |
| #define | DOM_INPUT_XMLREADER 1 |
| #define | DOM_INPUT_MARC 2 |
| #define | XML_STRCMP(a, b) strcmp((char*)a, b) |
| #define | XML_STRLEN(a) strlen((char*)a) |
| #define | FOR_EACH_ELEMENT(ptr) for (; ptr; ptr = ptr->next) if (ptr->type == XML_ELEMENT_NODE) |
Enumerations | |
| enum | convert_type { convert_xslt_type , convert_meta_type } |
Functions | |
| static void | dom_log (int level, struct filter_info *tinfo, xmlNodePtr ptr, const char *fmt,...) |
| static void | set_param_str (const char **params, const char *name, const char *value, NMEM nmem) |
| static void | set_param_int (const char **params, const char *name, zint value, NMEM nmem) |
| static void * | filter_init (Res res, RecType recType) |
| static int | attr_content (struct _xmlAttr *attr, const char *name, const char **dst_content) |
| static void | destroy_xsp (struct convert_s *c) |
| static void | destroy_dom (struct filter_info *tinfo) |
| static ZEBRA_RES | parse_convert (struct filter_info *tinfo, xmlNodePtr ptr, struct convert_s **l) |
| static int | process_meta (struct filter_info *tinfo, xmlDocPtr doc, xmlNodePtr node, struct recRetrieveCtrl *retctr) |
| static ZEBRA_RES | perform_convert (struct filter_info *tinfo, struct recExtractCtrl *extctr, struct recRetrieveCtrl *retctr, struct convert_s *convert, const char **params, xmlDocPtr *doc, xsltStylesheetPtr *last_xsp) |
| static struct filter_input * | new_input (struct filter_info *tinfo, int type) |
| static ZEBRA_RES | parse_input (struct filter_info *tinfo, xmlNodePtr ptr, const char *syntax, const char *name) |
| static ZEBRA_RES | parse_dom (struct filter_info *tinfo, const char *fname) |
| static struct filter_retrieve * | lookup_retrieve (struct filter_info *tinfo, const char *est) |
| static ZEBRA_RES | filter_config (void *clientData, Res res, const char *args) |
| static void | filter_destroy (void *clientData) |
| static int | ioread_ex (void *context, char *buffer, int len) |
| static int | ioclose_ex (void *context) |
| static void | index_value_of (struct filter_info *tinfo, struct recExtractCtrl *extctr, RecWord *recword, xmlNodePtr node, const char *index_p) |
| static void | set_record_info (struct filter_info *tinfo, struct recExtractCtrl *extctr, xmlNodePtr node, const char *id_p, const char *rank_p, const char *type_p) |
| static void | process_xml_element_node (struct filter_info *tinfo, struct recExtractCtrl *extctr, RecWord *recword, xmlNodePtr node) |
| static void | process_xml_element_zebra_node (struct filter_info *tinfo, struct recExtractCtrl *extctr, RecWord *recword, xmlNodePtr node) |
| static int | attr_content_pi (const char **c_ptr, const char *name, char *value, size_t value_max) |
| static void | process_xml_pi_node (struct filter_info *tinfo, struct recExtractCtrl *extctr, xmlNodePtr node, const char **index_pp) |
| static void | extract_dom_doc_node (struct filter_info *tinfo, struct recExtractCtrl *extctr, xmlDocPtr doc) |
| static int | convert_extract_doc (struct filter_info *tinfo, struct filter_input *input, struct recExtractCtrl *p, xmlDocPtr doc) |
| static int | extract_xml_split (struct filter_info *tinfo, struct filter_input *input, struct recExtractCtrl *p) |
| static int | extract_xml_full (struct filter_info *tinfo, struct filter_input *input, struct recExtractCtrl *p) |
| static int | extract_iso2709 (struct filter_info *tinfo, struct filter_input *input, struct recExtractCtrl *p) |
| static int | filter_extract (void *clientData, struct recExtractCtrl *p) |
| static int | ioread_ret (void *context, char *buffer, int len) |
| static int | ioclose_ret (void *context) |
| static int | filter_retrieve (void *clientData, struct recRetrieveCtrl *p) |
Variables | |
| static const char * | zebra_dom_ns = ZEBRA_DOM_NS |
| static const char * | zebra_pi_name = ZEBRA_PI_NAME |
| static struct recType | filter_type |
| RecType | idzebra_filter [] |
| #define FOR_EACH_ELEMENT | ( | ptr | ) | for (; ptr; ptr = ptr->next) if (ptr->type == XML_ELEMENT_NODE) |
| enum convert_type |
|
static |
Definition at line 213 of file mod_dom.c.
References XML_STRCMP.
Referenced by parse_convert(), parse_dom(), parse_input(), process_meta(), and process_xml_element_zebra_node().
|
static |
Definition at line 1085 of file mod_dom.c.
Referenced by process_xml_pi_node().
|
static |
Definition at line 1229 of file mod_dom.c.
References filter_extract::convert, filter_store::convert, filter_input::convert, filter_info::extract, extract_dom_doc_node(), recExtractCtrl::flagShowRecords, filter_info::nmem_record, outf, perform_convert(), RECCTRL_EXTRACT_OK, RECCTRL_EXTRACT_SKIP, filter_info::record_info_invoked, set_param_str(), recExtractCtrl::setStoreData, filter_info::store, and zebra_dom_ns.
Referenced by extract_iso2709(), extract_xml_full(), and extract_xml_split().
|
static |
Definition at line 238 of file mod_dom.c.
References filter_extract::convert, filter_store::convert, filter_retrieve::convert, filter_input::convert, destroy_xsp(), filter_info::doc_config, DOM_INPUT_MARC, DOM_INPUT_XMLREADER, filter_info::extract, filter_input::handle, filter_input::iconv, filter_info::input_list, filter_input::marc, filter_retrieve::next, filter_input::next, filter_info::nmem_config, filter_input::reader, filter_info::retrieve_list, filter_info::store, filter_input::type, filter_input::u, and filter_input::xmlreader.
Referenced by filter_config(), and filter_destroy().
|
static |
Definition at line 225 of file mod_dom.c.
References convert_xslt_type, convert_s::next, convert_xslt::stylesheet_xsp, convert_s::u, convert_s::which, and convert_s::xslt.
Referenced by destroy_dom().
|
static |
Definition at line 146 of file mod_dom.c.
References filter_info::fname.
Referenced by extract_iso2709(), index_value_of(), parse_convert(), parse_dom(), parse_input(), process_meta(), process_xml_element_zebra_node(), process_xml_pi_node(), and set_record_info().
|
static |
Definition at line 1217 of file mod_dom.c.
References recExtractCtrl::init, and process_xml_element_node().
Referenced by convert_extract_doc().
|
static |
Definition at line 1406 of file mod_dom.c.
References convert_extract_doc(), dom_log(), filter_input::handle, filter_input::marc, ZebraRecStream::readf, RECCTRL_EXTRACT_EOF, RECCTRL_EXTRACT_ERROR_GENERIC, RECCTRL_EXTRACT_OK, recExtractCtrl::stream, and filter_input::u.
Referenced by filter_extract().
|
static |
Definition at line 1383 of file mod_dom.c.
References convert_extract_doc(), recExtractCtrl::first_record, ioclose_ex(), ioread_ex(), RECCTRL_EXTRACT_EOF, and RECCTRL_EXTRACT_ERROR_GENERIC.
Referenced by filter_extract().
|
static |
Definition at line 1310 of file mod_dom.c.
References convert_extract_doc(), recExtractCtrl::first_record, recExtractCtrl::flagShowRecords, filter_info::fname, ioclose_ex(), ioread_ex(), filter_input::reader, RECCTRL_EXTRACT_EOF, RECCTRL_EXTRACT_ERROR_GENERIC, filter_info::record_info_invoked, filter_input::split_level, filter_input::u, and filter_input::xmlreader.
Referenced by filter_extract().
Definition at line 769 of file mod_dom.c.
References destroy_dom(), filter_info::fname, parse_dom(), filter_info::profile_path, res_get(), ZEBRA_FAIL, and ZEBRA_OK.
|
static |
Definition at line 787 of file mod_dom.c.
References destroy_dom(), filter_info::nmem_config, and filter_info::nmem_record.
|
static |
Definition at line 1464 of file mod_dom.c.
References DOM_INPUT_MARC, DOM_INPUT_XMLREADER, extract_iso2709(), extract_xml_full(), extract_xml_split(), filter_info::input_list, filter_info::nmem_record, RECCTRL_EXTRACT_ERROR_GENERIC, recExtractCtrl::setStoreData, filter_input::split_level, filter_input::type, filter_input::u, and filter_input::xmlreader.
Definition at line 191 of file mod_dom.c.
References filter_info::doc_config, filter_info::extract, filter_info::fname, filter_info::full_name, filter_info::input_list, filter_info::nmem_config, filter_info::nmem_record, filter_info::profile_path, filter_info::record_info_invoked, filter_info::retrieve_list, and filter_info::store.
|
static |
Definition at line 1502 of file mod_dom.c.
References recRetrieveCtrl::addinfo, recRetrieveCtrl::comp, filter_retrieve::convert, recRetrieveCtrl::diagnostic, filter_info::doc, recRetrieveCtrl::fname, filter_retrieve::identifier, recRetrieveCtrl::input_format, ioclose_ret(), ioread_ret(), recRetrieveCtrl::localno, lookup_retrieve(), filter_retrieve::name, recRetrieveCtrl::odr, recRetrieveCtrl::output_format, perform_convert(), recRetrieveCtrl::rec_buf, recRetrieveCtrl::rec_len, recRetrieveCtrl::recordSize, recRetrieveCtrl::score, set_param_int(), set_param_str(), and recRetrieveCtrl::staticrank.
|
static |
Definition at line 810 of file mod_dom.c.
References dom_log(), recExtractCtrl::flagShowRecords, RecWord::index_name, RecWord::index_type, filter_info::record_info_invoked, RecWord::seqno, RecWord::term_buf, RecWord::term_len, and recExtractCtrl::tokenAdd.
Referenced by process_xml_element_node(), and process_xml_element_zebra_node().
|
static |
Definition at line 802 of file mod_dom.c.
Referenced by extract_xml_full(), and extract_xml_split().
|
static |
Definition at line 1497 of file mod_dom.c.
Referenced by filter_retrieve().
|
static |
Definition at line 796 of file mod_dom.c.
References ZebraRecStream::readf, and recExtractCtrl::stream.
Referenced by extract_xml_full(), and extract_xml_split().
|
static |
Definition at line 1490 of file mod_dom.c.
References ZebraRecStream::readf, and recRetrieveCtrl::stream.
Referenced by filter_retrieve().
|
static |
Definition at line 747 of file mod_dom.c.
References filter_retrieve::identifier, filter_retrieve::name, filter_retrieve::next, and filter_info::retrieve_list.
Referenced by filter_retrieve().
|
static |
Definition at line 480 of file mod_dom.c.
References filter_input::convert, filter_info::input_list, filter_input::name, filter_input::next, filter_info::nmem_config, filter_input::syntax, and filter_input::type.
Referenced by parse_dom(), and parse_input().
|
static |
Definition at line 286 of file mod_dom.c.
References attr_content(), convert_meta_type, convert_xslt_type, dom_log(), FOR_EACH_ELEMENT, convert_s::next, filter_info::nmem_config, filter_info::profile_path, convert_xslt::stylesheet, convert_xslt::stylesheet_xsp, convert_s::u, convert_s::which, XML_STRCMP, convert_s::xslt, ZEBRA_FAIL, and ZEBRA_OK.
Referenced by parse_dom(), and parse_input().
|
static |
Definition at line 579 of file mod_dom.c.
References attr_content(), filter_extract::convert, filter_store::convert, filter_retrieve::convert, filter_info::doc_config, DOM_INPUT_XMLREADER, dom_log(), filter_info::extract, filter_info::fname, FOR_EACH_ELEMENT, filter_info::full_name, filter_retrieve::identifier, filter_info::input_list, filter_extract::name, filter_retrieve::name, new_input(), filter_retrieve::next, filter_info::nmem_config, parse_convert(), parse_input(), filter_info::profile_path, filter_input::reader, filter_info::retrieve_list, filter_input::split_level, filter_info::store, filter_input::u, XML_STRCMP, filter_input::xmlreader, ZEBRA_FAIL, and ZEBRA_OK.
Referenced by filter_config().
|
static |
Definition at line 495 of file mod_dom.c.
References attr_content(), filter_input::convert, DOM_INPUT_MARC, DOM_INPUT_XMLREADER, dom_log(), FOR_EACH_ELEMENT, filter_input::handle, filter_input::iconv, filter_input::input_charset, filter_input::marc, new_input(), parse_convert(), filter_input::reader, filter_input::split_level, filter_input::u, XML_STRCMP, filter_input::xmlreader, ZEBRA_FAIL, and ZEBRA_OK.
Referenced by parse_dom().
|
static |
Definition at line 424 of file mod_dom.c.
References convert_meta_type, convert_xslt_type, recExtractCtrl::flagShowRecords, filter_info::fname, convert_s::next, process_meta(), convert_xslt::stylesheet, convert_xslt::stylesheet_xsp, convert_s::u, convert_s::which, convert_s::xslt, and ZEBRA_OK.
Referenced by convert_extract_doc(), and filter_retrieve().
|
static |
Definition at line 369 of file mod_dom.c.
References attr_content(), dom_log(), recRetrieveCtrl::handle, process_meta(), recRetrieveCtrl::special_fetch, XML_STRCMP, and zebra_dom_ns.
Referenced by perform_convert(), and process_meta().
|
static |
Definition at line 1180 of file mod_dom.c.
References index_value_of(), process_xml_element_node(), process_xml_element_zebra_node(), and process_xml_pi_node().
Referenced by extract_dom_doc_node(), process_xml_element_node(), and process_xml_element_zebra_node().
|
static |
Definition at line 973 of file mod_dom.c.
References attr_content(), dom_log(), recExtractCtrl::flagShowRecords, RecWord::index_name, RecWord::index_type, index_value_of(), process_xml_element_node(), set_record_info(), RecWord::term_buf, RecWord::term_len, recExtractCtrl::tokenAdd, XML_STRCMP, zebra_dom_ns, and ZEBRA_GROUP_INDEX_NAME.
Referenced by process_xml_element_node().
|
static |
Definition at line 1113 of file mod_dom.c.
References attr_content_pi(), dom_log(), set_record_info(), and zebra_pi_name.
Referenced by process_xml_element_node().
|
static |
|
static |
Definition at line 167 of file mod_dom.c.
Referenced by convert_extract_doc(), and filter_retrieve().
|
static |
Definition at line 911 of file mod_dom.c.
References recExtractCtrl::action, action_a_delete, action_delete, action_insert, action_replace, action_update, atozint(), dom_log(), recExtractCtrl::flagShowRecords, recExtractCtrl::match_criteria, filter_info::record_info_invoked, and recExtractCtrl::staticrank.
Referenced by process_xml_element_zebra_node(), and process_xml_pi_node().
|
static |
| RecType idzebra_filter[] |
|
static |
Definition at line 51 of file mod_dom.c.
Referenced by convert_extract_doc(), process_meta(), and process_xml_element_zebra_node().
|
static |
Definition at line 55 of file mod_dom.c.
Referenced by process_xml_pi_node().