-/* $Id: alvis.c,v 1.11 2007-01-15 15:10:16 adam Exp $
+/* $Id: alvis.c,v 1.17 2007-04-16 21:54:37 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
#include <yaz/diagbib1.h>
#include <yaz/tpath.h>
+#include <yaz/oid_db.h>
#include <libxml/xmlversion.h>
#include <libxml/parser.h>
{
struct filter_info *tinfo = clientData;
destroy_schemas(tinfo);
+ xfree(tinfo->full_name);
if (tinfo->reader)
xmlFreeTextReader(tinfo->reader);
odr_destroy(tinfo->odr);
p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE
+ | XML_PARSE_NOENT
+ | XML_PARSE_NONET);
}
if (!tinfo->reader)
return RECCTRL_EXTRACT_ERROR_GENERIC;
xmlDocPtr doc = xmlReadIO(ioread_ex, ioclose_ex, p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE
+ | XML_PARSE_NOENT
+ | XML_PARSE_NONET);
if (!doc)
- {
return RECCTRL_EXTRACT_ERROR_GENERIC;
- }
+ /* else {
+ xmlNodePtr root = xmlDocGetRootElement(doc);
+ if (!root)
+ return RECCTRL_EXTRACT_ERROR_GENERIC;
+ } */
+
return extract_doc(tinfo, p, doc);
}
else
else
wrbuf_printf(wrbuf, "</snippet>\n");
- xml_doc_str = odr_strdup(p->odr, wrbuf_buf(wrbuf));
+ xml_doc_str = odr_strdup(p->odr, wrbuf_cstr(wrbuf));
zebra_snippets_destroy(res);
- wrbuf_free(wrbuf, 1);
+ wrbuf_destroy(wrbuf);
return xml_doc_str;
}
doc = xmlReadIO(ioread_ret, ioclose_ret, p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE | XML_PARSE_NOENT | XML_PARSE_NONET);
if (!doc)
{
p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;
{
p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;
}
- else if (p->input_format == VAL_NONE || p->input_format == VAL_TEXT_XML)
+ else if (!p->input_format
+ || !oid_oidcmp(p->input_format, yaz_oid_recsyn_xml))
{
xmlChar *buf_out;
int len_out;
else
xmlDocDumpMemory(resDoc, &buf_out, &len_out);
- p->output_format = VAL_TEXT_XML;
+ p->output_format = yaz_oid_recsyn_xml;
p->rec_len = len_out;
p->rec_buf = odr_malloc(p->odr, p->rec_len);
memcpy(p->rec_buf, buf_out, p->rec_len);
xmlFree(buf_out);
}
- else if (p->output_format == VAL_SUTRS)
+ else if (!oid_oidcmp(p->output_format, yaz_oid_recsyn_sutrs))
{
xmlChar *buf_out;
int len_out;
else
xmlDocDumpMemory(resDoc, &buf_out, &len_out);
- p->output_format = VAL_SUTRS;
+ p->output_format = yaz_oid_recsyn_sutrs;
p->rec_len = len_out;
p->rec_buf = odr_malloc(p->odr, p->rec_len);
memcpy(p->rec_buf, buf_out, p->rec_len);