-/* $Id: data1.h,v 1.16 2006-07-06 11:40:24 adam Exp $
- Copyright (C) 1995-2006
- Index Data ApS
-
-This file is part of the Zebra server.
+/* This file is part of the Zebra server.
+ Copyright (C) 1995-2008 Index Data
Zebra is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free
for more details.
You should have received a copy of the GNU General Public License
-along with Zebra; see the file LICENSE.zebra. If not, write to the
-Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA
-02111-1307, USA.
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
*/
#ifndef DATA1_H
#include <stdio.h>
#include <yaz/nmem.h>
-#include <yaz/oid.h>
#include <yaz/proto.h>
#include <yaz/yaz-util.h>
struct data1_attset
{
char *name; /* symbolic name */
- oid_value reference; /* external ID of attset */
+ Odr_oid *oid; /* attribute set OID */
data1_att *atts; /* attributes */
data1_attset_child *children; /* included attset */
data1_attset *next; /* next in cache */
struct data1_maptag *next;
} data1_maptag;
-typedef struct data1_mapunit
-{
- int no_data;
- char *source_element_name;
- data1_maptag *target_path;
- struct data1_mapunit *next;
-} data1_mapunit;
+typedef struct data1_mapunit data1_mapunit;
typedef struct data1_maptab
{
char *name;
- oid_value target_absyn_ref;
+ Odr_oid *oid; /* target abstract syntax */
char *target_absyn_name;
data1_mapunit *map;
struct data1_maptab *next;
} data1_maptab;
+
typedef struct data1_name
{
char *name;
typedef struct data1_marctab
{
char *name;
- oid_value reference;
+ Odr_oid *oid; /* MARC OID */
char record_status[2];
char implementation_codes[5];
typedef struct data1_varset
{
char *name;
- oid_value reference;
+ Odr_oid *oid; /* variant OID */
data1_varclass *classes;
} data1_varset;
{
int type; /* type of tagset in current context */
char *name; /* symbolic name */
- oid_value reference;
+ Odr_oid *oid; /* variant OID */
data1_tag *tags; /* tags defined by this set */
data1_tagset *children; /* children */
data1_tagset *next; /* sibling */
YAZ_EXPORT data1_node *data1_read_record(data1_handle dh,
int (*rf)(void *, char *, size_t),
void *fh, NMEM m);
+
+YAZ_EXPORT void data1_remove_node (data1_handle dh, data1_node *n);
+YAZ_EXPORT void data1_remove_idzebra_subtree (data1_handle dh, data1_node *n);
YAZ_EXPORT data1_tag *data1_gettagbynum(data1_handle dh,
data1_tagset *s,
int type, int value);
YAZ_EXPORT data1_marctab *data1_read_marctab (data1_handle dh,
const char *file);
YAZ_EXPORT data1_marctab *data1_absyn_getmarctab(data1_handle dh,
- data1_absyn *absyn);
+ data1_node *root);
YAZ_EXPORT data1_element *data1_absyn_getelements(data1_handle dh,
- data1_absyn *absyn);
+ data1_node *root);
YAZ_EXPORT char *data1_nodetomarc(data1_handle dh, data1_marctab *p,
data1_node *n, int selected, int *len);
YAZ_EXPORT char *data1_nodetoidsgml(data1_handle dh, data1_node *n,
void (*fh)(data1_handle dh,
void *h, data1_absyn *a));
-YAZ_EXPORT data1_attset *data1_attset_search_id (data1_handle dh, int id);
+YAZ_EXPORT data1_attset *data1_attset_search_id (data1_handle dh,
+ const Odr_oid *oid);
YAZ_EXPORT char *data1_getNodeValue(data1_node* node, char* pTagPath);
YAZ_EXPORT data1_node *data1_LookupNode(data1_node* node, char* pTagPath);
const char *default_value);
YAZ_EXPORT void data1_concat_text(data1_handle dh, NMEM m, data1_node *n);
+YAZ_EXPORT void data1_chop_text(data1_handle dh, NMEM m, data1_node *n);
YAZ_EXPORT void data1_absyn_destroy(data1_handle dh);
+YAZ_EXPORT const char *data1_absyn_get_staticrank(data1_absyn *absyn);
+
YAZ_END_CDECL
#endif