In this case you can just reuse the sample you found for SAX; use
XercesDOMParser::setEntityResolver to specify your
EntityResolver-derived object (like the SimpleEntityResolver you found).
If you want more informations about the entity you are requested to
return, you can instead use XercesDOMParser::setXMLEntityResolver and
use the same class defined in the Redirect sample, in
samples\Redirect\RedirectHandlers.hpp
Alberto
Roberto Rigamonti wrote:
No, I'm using XercesDOMParser, I've tried to "force" it working with a
DOMEntityResolver but without results. Any other solution?
Thank you very much for your swift reply!
Roberto Rigamonti
Alberto Massari wrote:
If you are using DOMBuilder, you can use
DOMBuilder::setEntityResolver, specifying an instance of a class
derived from DOMEntityResolver.
In that class, override
virtual DOMInputSource* resolveEntity
(
const XMLCh* const publicId
, const XMLCh* const systemId
, const XMLCh* const baseURI
) = 0;
returning a new Wrapper4InputSource(new
LocalFileInputSource("location of visor.xsd")) when sysntemId==visor.xsd
Alberto
Roberto Rigamonti wrote:
Good afternoon, I'm always working on the same visor project and I
have some troubles using the entity resolver mechanism. I've tried
to understand its usage searching some examples with Google, but
most of them concern a SAX parser, whereas I'm using a DOM parser.
Looking in the mailing-list archives I've seen some posts on this
argument, but they require the derivation of the XMLEntityResolver
class and things like that, so they're far too complicated for my
needs.
What I have to do is the following: I have a schema file in the
executable's directory (e.g. /home/roby/3DVisor/sandbox/bin), let's
call it "visor.xsd". Then I have some temporary XML files placed in
the /tmp directory and created with the following header:
<visor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="visor.xsd">
I have to "dynamically replace" the "visor.xsd" attribute in the XML
file to the correct path of the schema file.
Is there a _simple_ way to do that? I've seen an example on
http://www.onlamp.com/pub/a/onlamp/2005/11/10/xerces_sax.html?page=3
that looks promising (the one using a SimpleEntityResolver), but
regards a SAX parser. Is there a trick to force it to work also for
a DOM parser?
Thanks in advance to anyone willing to help me.
Roberto Rigamonti