Hi Daniel,
thank you for the prompt response.

There are not a whole lot of example around catalog, translating a SystemID
into a new SystemID in particular.
Suppose I go build a catalog. How do I tell the xmlReader to use it with
the document I am about to open?

I did not find any examples to this.

Tapping into the I/O with callbacks does not seem to achieve this. At
least, the examples I see in io1.c do not help.

Any further hints?

Best regards: Zoltán Ördögh


On Thu, Mar 28, 2013 at 3:51 AM, Daniel Veillard <veill...@redhat.com>wrote:

> On Tue, Mar 26, 2013 at 03:48:13PM -0400, Zoltán Ördögh (GMail) wrote:
> > Hi all,
> > I am looking for a legal, built-in solution to override the SystemID in
> an
> > XML document without having to patch the document on-the-fly myself; I
> want
> > to avoid sting crunching when we have an advanced parser already.
> >
> > I.e.:
> > xmlTextReaderPtr _ptrxmlReader=xmlReaderForFile(_sFilename.c_str(),
> > _sEncoding, XML_PARSE_RECOVER, _sNewSystemID);
> >
> > I know it does not exist, this is just to illustrate what I want to
> achieve
> > - not necessarily like this, but in way that's already in libxml.
> >
> > Below, you can find the problem description.
> >
> > The XML is generated on a machine, where the DTD may be located in, for
> > example: ~/tool/sample.dtd , resulting in:
> > <!DOCTYPE xmlexport SYSTEM "file:///~/tool/sample.dtd">
> >
> > The XML may be processed on other machines as well - where the DTD may be
> > located elsewhere (e.g. /bin/tool/sample.dtd) - and then libxml
> > (rightfully) throws an error because it did not find the DTD.
> > The 'tool' knows its own location, so it could provide the new SystemID
> to
> > the XML reader.
> >
> > Any tips?
> >
> > Could this be added to libxml itself (as new reader constructors)?
>
>   Hum, catalogs are done exactly for this:
>     http://xmlsoft.org/catalog.html
>
> otherwise just override the I/O handling something along the lines of
> what is presented in:
>   http://xmlsoft.org/examples/index.html#io1.c
>
> Daniel
>
> --
> Daniel Veillard      | Open Source and Standards, Red Hat
> veill...@redhat.com  | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
> http://veillard.com/ | virtualization library  http://libvirt.org/
>
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
xml@gnome.org
https://mail.gnome.org/mailman/listinfo/xml

Reply via email to