From: Martin Holmes <mholmes@uv...> - 2004-11-22 19:27:24
I've found that eXist (1.02b) doesn't seem to want to index XML files
which use character entities when those entities are defined in an
external DTD (even though the DTD is linked through the catalog file).
If I include the entity declarations in the DOCTYPE declaration of the
file, eXist accepts it, but if I put them in the external DTD, it
doesn't. I don't want to have to include a whole stack of entity
declarations in every single XML file. Is there any way around this?
All help appreciated,
From: Michael Beddow <mbexlist-2@mb...> - 2004-11-23 13:11:28
Martin Holmes <mholmes <at> uvic.ca> wrote:
> Hi there,
> I've found that eXist (1.02b) doesn't seem to want to index XML files
> which use character entities when those entities are defined in an
> external DTD (even though the DTD is linked through the catalog file).
The XML spec doesn't require a parser to resolve entities defined in an
external DTD unless it is validating against that DTD. Some parsers will
open an external DTD just to check for entity declarations even if
validation is turned off. It looks from what you say as though Xerces as used
in eXist doesn't. If you turn on validation in conf.xml. via the appropriate
attribute on <indexer> (the default is "no" validation), you should find
that your entities are resolved, provided your catalog entries are right.
This will give you the additional overhead of a full validation, of course.
BTW at some levels of logging, the eXist indexer will say it is
"validating", when it is merely parsing (and therefore checking only for
well-formedness). So don't be misled by this message into thinking
validation is actually taking place...