-/* $Id: d1_absyn.c,v 1.30 2006-09-29 10:02:45 adam Exp $
- Copyright (C) 1995-2006
+/* $Id: d1_absyn.c,v 1.36 2007-05-08 12:50:03 adam Exp $
+ Copyright (C) 1995-2007
Index Data ApS
This file is part of the Zebra server.
#include <string.h>
#include <yaz/log.h>
-#include <yaz/oid.h>
+#include <yaz/oid_db.h>
#include <idzebra/data1.h>
#include <idzebra/recctrl.h>
#include <zebra_xpath.h>
return 0;
}
-data1_attset *data1_attset_search_id (data1_handle dh, int id)
+data1_attset *data1_attset_search_id(data1_handle dh, const Odr_oid *oid)
{
data1_attset_cache p = *data1_attset_cache_get (dh);
while (p)
{
- if (id == p->attset->reference)
+ if (p->attset->oid && !oid_oidcmp(oid, p->attset->oid))
return p->attset;
p = p->next;
}
return argc;
}
-data1_marctab *data1_absyn_getmarctab(data1_handle dh, data1_absyn *absyn)
+data1_marctab *data1_absyn_getmarctab(data1_handle dh, data1_node *root)
{
- return absyn->marc;
+ if (root->u.root.absyn)
+ return root->u.root.absyn->marc;
+ return 0;
}
-YAZ_EXPORT data1_element *data1_absyn_getelements(data1_handle dh,
- data1_absyn *absyn)
+data1_element *data1_absyn_getelements(data1_handle dh,
+ data1_node *root)
{
- return absyn->main_elements;
+ if (root->u.root.absyn)
+ return root->u.root.absyn->main_elements;
+ return 0;
}
static data1_absyn *data1_read_absyn(data1_handle dh, const char *file,
res = (data1_absyn *) nmem_malloc(data1_nmem_get(dh), sizeof(*res));
res->name = 0;
- res->reference = VAL_NONE;
+ res->oid = 0;
res->tagset = 0;
res->encoding = 0;
res->xpath_indexing =
continue;
}
name = argv[1];
- if ((res->reference = oid_getvalbyname(name)) == VAL_NONE)
+ res->oid = yaz_string_to_oid_nmem(yaz_oid_std(),
+ CLASS_SCHEMA, name,
+ data1_nmem_get(dh));
+ if (!res->oid)
{
yaz_log(YLOG_WARN, "%s:%d: Unknown tagset ref '%s'",
file, lineno, name);
*systagsp = 0;
return res;
}
+
/*
* Local variables:
* c-basic-offset: 4