[xml] Sax and entity handling
- From: Rob Richards <rrichards ctindustries net>
- To: xml gnome org
- Subject: [xml] Sax and entity handling
- Date: Thu, 30 Oct 2008 16:53:36 -0400
Would it be possible to consider reverting the behavior introduced in
2.7 for the handling of predefined entities?
For the past month I have been trying to come up with a way to fix the
xml extension in PHP, which breaks when used with 2.7.x, and have
concluded that it is impossible to fix without having some sort of BC
breakage or the order of entity processing changed back to its original
state.
I understand that predefined entities can not be overriden, but by
allowing getEntity to be called first, more flexibility is provided to
the application layer.
For instance, within getEntity, I am handling the predefined entities by
calling xmlGetPredefinedEntity so that the application is still
compliant by not overriding any predefined entities. Why this is
necessary is that the behavior of the sax parser doesn't follow exactly
what libxml does, but rather is mimicking the behavior of expat. There
are a number of differences, the biggest being expat's support for a
default handler and difference in behavior whether this handler is
defined or not.
In order to get all of this to work, within the PHP extension, all of
the entity handling is performed within the getEntity call. To avoid
having libxml perform any of the handling, the wellFormed flag is set to
0, so within xmlParseReference, the function returns prior to calling
any callbacks. Of course this is pretty much a hack, but was necessary
to get the desired behavior.
That's pretty much it in a nutshell. I'm open to any other suggestions
if going back to the old order is out of the questions.
Thanks,
Rob
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]