IDZEBRA  2.2.7
Data Structures | Macros | Functions | Variables
mod_alvis.c File Reference
#include <stdio.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)   strcmp((char*)a, b)
 
#define XML_STRLEN(a)   strlen((char*)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_schemalookup_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 100 of file mod_alvis.c.

◆ XML_STRCMP

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

Definition at line 71 of file mod_alvis.c.

◆ XML_STRLEN

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

Definition at line 72 of file mod_alvis.c.

◆ ZEBRA_SCHEMA_XSLT_NS

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

Definition at line 69 of file mod_alvis.c.

Function Documentation

◆ attr_content()

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

Definition at line 152 of file mod_alvis.c.

References XML_STRCMP.

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

◆ create_schemas()

static ZEBRA_RES create_schemas ( struct filter_info tinfo,
const char *  fname 
)
static

◆ destroy_schemas()

static void destroy_schemas ( struct filter_info tinfo)
static

◆ extract_doc()

static int extract_doc ( struct filter_info tinfo,
struct recExtractCtrl p,
xmlDocPtr  doc 
)
static

◆ extract_full()

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

◆ extract_split()

static int extract_split ( struct filter_info tinfo,
struct recExtractCtrl p 
)
static

◆ filter_config()

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

◆ filter_destroy()

static void filter_destroy ( void *  clientData)
static

◆ filter_extract()

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

◆ filter_init()

static void* filter_init ( Res  res,
RecType  recType 
)
static

◆ filter_retrieve()

static int filter_retrieve ( void *  clientData,
struct recRetrieveCtrl p 
)
static

◆ index_cdata()

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

Definition at line 355 of file mod_alvis.c.

References RecWord::term_buf, RecWord::term_len, recExtractCtrl::tokenAdd, and XML_STRLEN.

Referenced by index_node().

◆ index_node()

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

◆ index_record()

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

◆ ioclose_ex()

static int ioclose_ex ( void *  context)
static

Definition at line 350 of file mod_alvis.c.

Referenced by extract_full(), and extract_split().

◆ ioclose_ret()

static int ioclose_ret ( void *  context)
static

Definition at line 580 of file mod_alvis.c.

Referenced by filter_retrieve().

◆ ioread_ex()

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

Definition at line 344 of file mod_alvis.c.

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

Referenced by extract_full(), and extract_split().

◆ ioread_ret()

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

Definition at line 574 of file mod_alvis.c.

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

Referenced by filter_retrieve().

◆ lookup_schema()

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

◆ set_param_int()

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

Definition at line 88 of file mod_alvis.c.

References filter_schema::name, and ZINT_FORMAT.

Referenced by filter_retrieve().

◆ set_param_str()

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

Definition at line 76 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:333
static int filter_extract(void *clientData, struct recExtractCtrl *p)
Definition: mod_alvis.c:563
static void * filter_init(Res res, RecType recType)
Definition: mod_alvis.c:125
static ZEBRA_RES filter_config(void *clientData, Res res, const char *args)
Definition: mod_alvis.c:314

Definition at line 585 of file mod_alvis.c.

◆ idzebra_filter

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

Definition at line 719 of file mod_alvis.c.

◆ zebra_xslt_ns

const char* zebra_xslt_ns = ZEBRA_SCHEMA_XSLT_NS
static

Definition at line 74 of file mod_alvis.c.

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