[xml] What is the _private field actually for?
- From: Michael Day <mikeday yeslogic com>
- To: xml gnome org
- Cc: veillard redhat com
- Subject: [xml] What is the _private field actually for?
- Date: Mon, 25 Sep 2006 18:11:22 +1000
I've just realised that the XInclude mechanism does not support this, as
it creates its own XML parser context internally and doesn't provide any
mechanism to pass in user data via the _private field.
I've tried creating a new function: xmlXIncludeProcessFlagsData(), which
takes an additional void* argument that it passes in to the _private
field of the created XML parser context. This works fine.
However, I've discovered when parsing an XML document that uses external
entities, the context used for parsing the external entities does not
preserve the _private field of the original parser context.
eg. If I try to parse the following document using xmlCtxtReadFile:
<!DOCTYPE foo [
<!ENTITY bar SYSTEM "bar.xml">
]>
<foo>Hello &bar; world!</foo>
the context that I pass in (with _private field set) will *not* be used
to parse the external entity "bar.xml". Strangely enough, the context
that I pass in *will* be used to parse external DTDs, which seems a bit
inconsistent.
It seems that further patches to libxml2 will be necessary if I want to
be able to use the _private field of the XML parser context in this way.
Which leads me to ask what the _private field exists for in the first
place, if it cannot be relied upon to be there. What is the use case for
this application data field, and in what situations can it actually be
used reliably?
(On a slightly unrelated note, it seems that requirements for a future
libxml3 have been circulating since 2002 or before. Has there been any
progress since then? :)
Cheers,
Michael
--
Print XML with Prince!
http://www.princexml.com
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]