On Dec 21, 2007 6:59 PM, Daniel Veillard <[EMAIL PROTECTED]> wrote:

> Retake your example but make the content
>
> <foo>
>  <bar xmlns="bar">&test;</bar>
>  <bar xmlns="bar2">&test;</bar>
> </foo>
>
> When the person who wrote the entity test in your document system
> maybe it assumed a "bar" namespace, maybe it assumed no namespace,
> but it certainly didn't expect the entity to be used for two different
> kind of element.


Who's to say what the document author expected? The only thing we can safely
say is that he most likely expected that whichever parser was applied to his
document, it would comply with the XML specification.  That specification
says pretty clearly at 4.4.2 that an entity reference is to be treated as if
its replacement text were simply pasted in place of the reference.


> The only safe thing is taht if you use/expect namespace for content within
> a parsed entity you should put the namespace declaration in the entity
> itself
> to guarantee this.


That's nice, but sometimes you don't have the option of mucking with the
XML, and a well-formed document shouldn't need to be messed with in order to
be parsed. In this particular case, the documents in question were some of
the W3C's layout tests for SVG (see e.g.
http://www.w3.org/Graphics/SVG/Test/20061213/svggen/coords-viewattr-01-b.svgand
http://www.w3.org/Graphics/SVG/Test/20061213/svggen/coords-viewattr-02-b.svg.)
Shall I contact the W3C and tell them they need to change their perfectly
well-formed tests because libxml chokes on them?

The patch as is is not acceptable, as it breaks the ABI.


Sorry, I wasn't aware that the ABI was considered immutable... had I known,
I'd have submitted a different patch. Previous versions of the parser
handled internal entity references by inserting the entity's replacement
text into the input stream at the appropriate location. What was wrong with
that?
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to