+Fixed bug #884: Entity declarations in input are lost at retrieval time.
+
Implemented new filter 'dom'. See test/xslt/dom-config*xml for examples.
This, like alvis, performs indexing and retrieval using XSLT. But Unlike
alvis, it allows multiple XSLT steps to be performed and does ISO2709
-/* $Id: alvis.c,v 1.11 2007-01-15 15:10:16 adam Exp $
+/* $Id: alvis.c,v 1.12 2007-02-12 10:33:51 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE|XML_PARSE_NOENT);
}
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);
if (!doc)
{
return RECCTRL_EXTRACT_ERROR_GENERIC;
doc = xmlReadIO(ioread_ret, ioclose_ret, p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE|XML_PARSE_NOENT);
if (!doc)
{
p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;
-/* $Id: mod_dom.c,v 1.1 2007-02-07 12:08:54 adam Exp $
+/* $Id: mod_dom.c,v 1.2 2007-02-12 10:33:51 adam Exp $
Copyright (C) 1995-2007
Index Data ApS
p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE|
+ XML_PARSE_NOENT);
}
if (!input->u.xmlreader.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);
if (!doc)
{
return RECCTRL_EXTRACT_ERROR_GENERIC;
doc = xmlReadIO(ioread_ret, ioclose_ret, p /* I/O handler */,
0 /* URL */,
0 /* encoding */,
- XML_PARSE_XINCLUDE);
+ XML_PARSE_XINCLUDE|XML_PARSE_NOENT);
if (!doc)
{
p->diagnostic = YAZ_BIB1_SYSTEM_ERROR_IN_PRESENTING_RECORDS;
+<!DOCTYPE x [
+ <!ENTITY com "computer">
+]>
<collection xmlns="http://www.loc.gov/MARC21/slim">
<record xmlns="http://www.loc.gov/MARC21/slim">
<rank>1</rank>
<subfield code="a">Jack Collins</subfield>
</datafield>
<datafield tag="245" ind1="1" ind2="0">
- <subfield code="a">How to program a computer</subfield>
+ <subfield code="a">How to program a &com;</subfield>
</datafield>
<datafield tag="260" ind1="1" ind2=" ">
<subfield code="a">Penguin</subfield>