You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@xerces.apache.org by bu...@apache.org on 2004/03/08 09:14:52 UTC

DO NOT REPLY [Bug 27119] - Improper handling of elements in external entities

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://issues.apache.org/bugzilla/show_bug.cgi?id=27119>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://issues.apache.org/bugzilla/show_bug.cgi?id=27119

Improper handling of elements in external entities





------- Additional Comments From jrb@slac.stanford.edu  2004-03-08 08:14 -------
I will attach a proposed patch for AbstractDOMParser.cpp   The patch only
affects the behavior when the fCreateEntityReferenceNodes flag has been set to
false (not the default; the behavior in the default case is already correct as
far as I know.).  In that case, the startEntityReference method returns before
creating a DOMEntityReference object. and endEntityReference returns immediately. 
The old behavior was to always create the DOMEntityReference and let the usual
parsing process create element nodes, etc. which were its descendants.  The
whole thing was marked read-only but, not attached to the document.  Instead, a
cloned version (not read-only) was attached.  However, the bookkeeping for ID
attributes had already been done on the original elements created, hence
getElementById would return a pointer to the wrong copy.    Rather than attempt
to fix up the bookkeeping, it seemed simpler and safer to just eliminate the
duplicate and let the original creation of the elements be in the "right" place
and with the right properties (not read-only). 
The patch fixes the problem demonstrated by the test program previously
attached, however I make no guarantee that it doesn't cause some other problem
somewhere else.  Please check it out!  Thanks.  Joanne

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-c-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-c-dev-help@xml.apache.org