On Sun, Mar 05, 2006 at 09:37:15AM +0100, Danilo Šegan wrote:
> Hi,

  Hi

> In-Reply-To: <[EMAIL PROTECTED]> (Daniel Veillard's message of
>        "Sat, 4 Mar 2006 12:59:54 -0500")

  Don't hijack threads, or fix/change your mail agent, doing a reply to
a completely unrelated mail from the list do break the few structure 
that we get from mailing list, even if you manually change the title !
  
> Some users[1] are complaining that xml2po doesn't give expected
> results for:
> 
> my-entities.ent:
>   <!ENTITY testentity "something">
> 
> test.xml:
> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN"
> "http://www.docbook.org/xml/4.4/docbookx.dtd"; [
> <!ENTITY % MY-ENTITIES SYSTEM "my-entities.ent">
> %MY-ENTITIES;
> ]>
> <article>
> <title>Test &testentity;</title>
> </article>
> 
> If I even process it with "xmllint test.xml" (or merge translation 
> using xml2po, which is using libxml2), I get:
> 
> <?xml version="1.0"?>
> <!DOCTYPE article PUBLIC "-//OASIS//DTD DocBook XML V4.4//EN" 
> "http://www.docbook.org/xml/4.4/docbookx.dtd"; [
> <!ENTITY % MY-ENTITIES SYSTEM "my-entities.ent">
> <!ENTITY testentity "something">
> ]>
> <article>
> <title>Test &testentity;</title>
> </article>
> 
> I.e. instead of %MY-ENTITIES; entire my-entities.ent is inlined.  I
> understand that the resulting file has the same meaning as the
> original, but is this actually expected behaviour?

  yes there is no way around that. libxml2 DTD parser don't store the
unstructured part of the internal subset, just the resulting structure.

> 
> It might cause problems for xml2po as well since translations might 
> want to use a different "my-entities.ent" (of course, I'd need to fix
> xml2po to support "--keep-entities" as well, which is probably why I
> didn't notice this sooner).

  Relying on parameter entities substitutions for localization doesn't 
sounds a good idea to me, very fragile and relies on the most complex
part of the XML-1.0 specification. For example a parser operating in 
non-validating mode of XML-1.0 is allowed to drop any declaration occuring
in the internal subset after a parameter entity reference, and will do
so without warning, fragile, very fragile ...

Daniel

-- 
Daniel Veillard      | Red Hat http://redhat.com/
[EMAIL PROTECTED]  | libxml GNOME XML XSLT toolkit  http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to