IDZEBRA 2.2.11
mod_alvis.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
#include <ctype.h>
#include <yaz/diagbib1.h>
#include <yaz/tpath.h>
#include <yaz/oid_db.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>

Go to the source code of this file.

Data Structures

struct  filter_schema
struct  filter_info

Macros

#define ZEBRA_SCHEMA_XSLT_NS   "http://indexdata.dk/zebra/xslt/1"
#define XML_STRCMP(a, b)
#define XML_STRLEN(a)
#define ENABLE_INPUT_CALLBACK   0

Functions

static void set_param_str (const char **params, const char *name, const char *value, ODR odr)
static void set_param_int (const char **params, const char *name, zint value, ODR odr)
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_schemas (struct filter_info *tinfo)
static ZEBRA_RES create_schemas (struct filter_info *tinfo, const char *fname)
static struct filter_schema * lookup_schema (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_cdata (struct filter_info *tinfo, struct recExtractCtrl *ctrl, xmlNodePtr ptr, RecWord *recWord)
static void index_node (struct filter_info *tinfo, struct recExtractCtrl *ctrl, xmlNodePtr ptr, RecWord *recWord)
static void index_record (struct filter_info *tinfo, struct recExtractCtrl *ctrl, xmlNodePtr ptr, RecWord *recWord)
static int extract_doc (struct filter_info *tinfo, struct recExtractCtrl *p, xmlDocPtr doc)
static int extract_split (struct filter_info *tinfo, struct recExtractCtrl *p)
static int extract_full (struct filter_info *tinfo, 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_xslt_ns = ZEBRA_SCHEMA_XSLT_NS
static struct recType filter_type
RecType idzebra_filter []

Macro Definition Documentation

◆ ENABLE_INPUT_CALLBACK

#define ENABLE_INPUT_CALLBACK   0

Definition at line 101 of file mod_alvis.c.

◆ XML_STRCMP

#define XML_STRCMP ( a,
b )
Value:
strcmp((char*)a, b)

Definition at line 72 of file mod_alvis.c.

Referenced by attr_content(), create_schemas(), index_node(), index_record(), parse_dom(), process_meta(), and process_xml_element_zebra_node().

◆ XML_STRLEN

#define XML_STRLEN ( a)
Value:
strlen((char*)a)

Definition at line 73 of file mod_alvis.c.

Referenced by index_cdata().

◆ ZEBRA_SCHEMA_XSLT_NS

#define ZEBRA_SCHEMA_XSLT_NS   "http://indexdata.dk/zebra/xslt/1"

Definition at line 70 of file mod_alvis.c.

Function Documentation

◆ attr_content()

int attr_content ( struct _xmlAttr * attr,
const char * name,
const char ** dst_content )
static

Definition at line 153 of file mod_alvis.c.

References XML_STRCMP.

Referenced by create_schemas(), index_node(), and index_record().

◆ create_schemas()

◆ destroy_schemas()

void destroy_schemas ( struct filter_info * tinfo)
static

◆ extract_doc()

◆ extract_full()

int extract_full ( struct filter_info * tinfo,
struct recExtractCtrl * p )
static

◆ extract_split()

◆ filter_config()

ZEBRA_RES filter_config ( void * clientData,
Res res,
const char * args )
static

◆ filter_destroy()

void filter_destroy ( void * clientData)
static

◆ filter_extract()

int filter_extract ( void * clientData,
struct recExtractCtrl * p )
static

◆ filter_init()

◆ filter_retrieve()

◆ index_cdata()

void index_cdata ( struct filter_info * tinfo,
struct recExtractCtrl * ctrl,
xmlNodePtr ptr,
RecWord * recWord )
static

◆ index_node()

void index_node ( struct filter_info * tinfo,
struct recExtractCtrl * ctrl,
xmlNodePtr ptr,
RecWord * recWord )
static

◆ index_record()

void index_record ( struct filter_info * tinfo,
struct recExtractCtrl * ctrl,
xmlNodePtr ptr,
RecWord * recWord )
static

◆ ioclose_ex()

int ioclose_ex ( void * context)
static

Definition at line 351 of file mod_alvis.c.

Referenced by extract_full(), extract_split(), extract_xml_full(), and extract_xml_split().

◆ ioclose_ret()

int ioclose_ret ( void * context)
static

Definition at line 581 of file mod_alvis.c.

Referenced by filter_retrieve(), and filter_retrieve().

◆ ioread_ex()

int ioread_ex ( void * context,
char * buffer,
int len )
static

◆ ioread_ret()

int ioread_ret ( void * context,
char * buffer,
int len )
static

Definition at line 575 of file mod_alvis.c.

References ZebraRecStream::readf, and recRetrieveCtrl::stream.

Referenced by filter_retrieve(), and filter_retrieve().

◆ lookup_schema()

struct filter_schema * lookup_schema ( struct filter_info * tinfo,
const char * est )
static

◆ set_param_int()

void set_param_int ( const char ** params,
const char * name,
zint value,
ODR odr )
static

Definition at line 89 of file mod_alvis.c.

References filter_schema::name, and ZINT_FORMAT.

Referenced by filter_retrieve().

◆ set_param_str()

void set_param_str ( const char ** params,
const char * name,
const char * value,
ODR odr )
static

Definition at line 77 of file mod_alvis.c.

References filter_schema::name, and ZINT_FORMAT.

Referenced by extract_doc(), and filter_retrieve().

Variable Documentation

◆ filter_type

struct recType filter_type
static
Initial value:
= {
0,
"alvis",
}
static void filter_destroy(void *clientData)
Definition mod_alvis.c:334
static void * filter_init(Res res, RecType recType)
Definition mod_alvis.c:126
static ZEBRA_RES filter_config(void *clientData, Res res, const char *args)
Definition mod_alvis.c:315

Definition at line 706 of file mod_alvis.c.

◆ idzebra_filter

RecType idzebra_filter[]
Initial value:
= {
0,
}
static struct recType filter_type
Definition mod_alvis.c:706

Definition at line 720 of file mod_alvis.c.

◆ zebra_xslt_ns

const char* zebra_xslt_ns = ZEBRA_SCHEMA_XSLT_NS
static

Definition at line 75 of file mod_alvis.c.

Referenced by extract_doc(), index_node(), and index_record().