X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=include%2Fdata1.h;h=94ce8a4d4e552fae1c9ea093f168f1ceca44f497;hb=7c3a0352f0492609a3b6b26b63a72b0b2d207aab;hp=33958f98ed1614a9fe5c17e86930f14d03d35414;hpb=c8a333d48c42e2a51f43fd42ef79e23d40a565a7;p=idzebra-moved-to-github.git diff --git a/include/data1.h b/include/data1.h index 33958f9..94ce8a4 100644 --- a/include/data1.h +++ b/include/data1.h @@ -1,5 +1,5 @@ -/* $Id: data1.h,v 1.3 2002-12-02 16:55:14 adam Exp $ - Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002 +/* $Id: data1.h,v 1.11 2004-08-25 09:23:35 adam Exp $ + Copyright (C) 1995,1996,1997,1998,1999,2000,2001,2002,2003,2004 Index Data Aps This file is part of the Zebra server. @@ -23,16 +23,21 @@ Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA #ifndef DATA1_H #define DATA1_H +#define ENHANCED_XELM 1 + #include #include #include #include +#include #include #include #include #include +#include /* pop */ +#include /* pop */ #define d1_isspace(c) strchr(" \r\n\t\f", c) #define d1_isdigit(c) ((c) <= '9' && (c) >= '0') @@ -85,6 +90,7 @@ typedef struct data1_marctab int force_indicator_length; int force_identifier_length; + char leader[24]; /* Fixme! Need linear access to LEADER of MARC record */ struct data1_marctab *next; } data1_marctab; @@ -187,6 +193,19 @@ typedef struct data1_sub_elements { data1_element *elements; } data1_sub_elements; +/* pop */ +typedef struct data1_xpelement +{ + char *xpath_expr; +#ifdef ENHANCED_XELM + struct xpath_location_step xpath[XPATH_STEP_COUNT]; + int xpath_len; +#endif + struct DFA *dfa; + data1_termlist *termlists; + struct data1_xpelement *next; +} data1_xpelement; + typedef struct data1_xattr { char *name; char *value; @@ -209,6 +228,7 @@ typedef struct data1_absyn data1_marctab *marc; data1_sub_elements *sub_elements; data1_element *main_elements; + data1_xpelement *xp_elements; /* pop */ struct data1_systag *systags; char *encoding; int enable_xpath_indexing; @@ -388,11 +408,25 @@ YAZ_EXPORT data1_node *data1_mk_preprocess (data1_handle dh, NMEM nmem, const char **attr, data1_node *at); +YAZ_EXPORT data1_node *data1_insert_preprocess_n (data1_handle dh, NMEM nmem, + const char *target, + size_t len, + const char **attr, + data1_node *at); + +YAZ_EXPORT data1_node *data1_insert_preprocess (data1_handle dh, NMEM nmem, + const char *target, + const char **attr, + data1_node *at); + YAZ_EXPORT data1_node *data1_mk_root (data1_handle dh, NMEM nmem, const char *name); YAZ_EXPORT void data1_set_root(data1_handle dh, data1_node *res, NMEM nmem, const char *name); +YAZ_EXPORT data1_node *data1_mk_tag_data_zint (data1_handle dh, data1_node *at, + const char *tag, zint num, + NMEM nmem); YAZ_EXPORT data1_node *data1_mk_tag_data_int (data1_handle dh, data1_node *at, const char *tag, int num, NMEM nmem); @@ -493,6 +527,10 @@ YAZ_EXPORT int data1_is_xmlmode(data1_handle dh); YAZ_EXPORT const char *data1_systag_lookup(data1_absyn *absyn, const char *tag, const char *default_value); +YAZ_EXPORT void data1_concat_text(data1_handle dh, NMEM m, data1_node *n); + +YAZ_EXPORT void data1_absyn_destroy(data1_handle dh); + YAZ_END_CDECL #endif