IDZEBRA
2.2.7
|
#include <stdio.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 212 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 1084 of file mod_dom.c.
Referenced by process_xml_pi_node().
|
static |
Definition at line 1228 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 237 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_info::input_list, filter_input::marc, filter_retrieve::next, filter_input::next, filter_info::nmem_config, 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 224 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 145 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 1216 of file mod_dom.c.
References recExtractCtrl::init, and process_xml_element_node().
Referenced by convert_extract_doc().
|
static |
Definition at line 1405 of file mod_dom.c.
References convert_extract_doc(), dom_log(), 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 1382 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 1309 of file mod_dom.c.
References convert_extract_doc(), recExtractCtrl::first_record, recExtractCtrl::flagShowRecords, filter_info::fname, ioclose_ex(), ioread_ex(), RECCTRL_EXTRACT_EOF, RECCTRL_EXTRACT_ERROR_GENERIC, filter_info::record_info_invoked, filter_input::u, and filter_input::xmlreader.
Referenced by filter_extract().
Definition at line 768 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 786 of file mod_dom.c.
References destroy_dom(), filter_info::nmem_config, and filter_info::nmem_record.
|
static |
Definition at line 1463 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::type, filter_input::u, and filter_input::xmlreader.
Definition at line 190 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 1501 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 809 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 801 of file mod_dom.c.
Referenced by extract_xml_full(), and extract_xml_split().
|
static |
Definition at line 1496 of file mod_dom.c.
Referenced by filter_retrieve().
|
static |
Definition at line 795 of file mod_dom.c.
References ZebraRecStream::readf, and recExtractCtrl::stream.
Referenced by extract_xml_full(), and extract_xml_split().
|
static |
Definition at line 1489 of file mod_dom.c.
References ZebraRecStream::readf, and recRetrieveCtrl::stream.
Referenced by filter_retrieve().
|
static |
Definition at line 746 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 479 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 285 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 578 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_info::retrieve_list, filter_info::store, filter_input::u, XML_STRCMP, filter_input::xmlreader, ZEBRA_FAIL, and ZEBRA_OK.
Referenced by filter_config().
|
static |
Definition at line 494 of file mod_dom.c.
References attr_content(), filter_input::convert, DOM_INPUT_MARC, DOM_INPUT_XMLREADER, dom_log(), FOR_EACH_ELEMENT, filter_input::iconv, filter_input::input_charset, filter_input::marc, new_input(), parse_convert(), filter_input::u, XML_STRCMP, filter_input::xmlreader, ZEBRA_FAIL, and ZEBRA_OK.
Referenced by parse_dom().
|
static |
Definition at line 423 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 368 of file mod_dom.c.
References attr_content(), dom_log(), recRetrieveCtrl::handle, recRetrieveCtrl::special_fetch, XML_STRCMP, and zebra_dom_ns.
Referenced by perform_convert().
|
static |
Definition at line 1179 of file mod_dom.c.
References index_value_of(), process_xml_element_zebra_node(), and process_xml_pi_node().
Referenced by extract_dom_doc_node(), and process_xml_element_zebra_node().
|
static |
Definition at line 972 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 1112 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 166 of file mod_dom.c.
Referenced by convert_extract_doc(), and filter_retrieve().
|
static |
Definition at line 910 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 50 of file mod_dom.c.
Referenced by convert_extract_doc(), process_meta(), and process_xml_element_zebra_node().
|
static |
Definition at line 54 of file mod_dom.c.
Referenced by process_xml_pi_node().