[Python-Dev] Unicode entities in XML cause problems :-(
Matthias Urlichs
smurf@noris.de
Sun, 28 Apr 2002 06:16:10 +0200
Hi,
Martin v. Loewis:
> The proper fix, IMO, is to have writexml accept an encoding argument,
> and, by default, write the output as UTF-8. Then there is no need for
> character or entity references.
>
The encoding should probably default to the one from the document header
(UTF-8 if that isn't given).
> In any case, emitting ü and € in XML is wrong: you cannot
> use them unless your document type provides them - you should not
> assume that all XML files use the HTML DTD.
>
Good point. On the other hand, I didn't plan to do that anyway. ;-)
(Are Ӓ and friends OK with any DTD?)
> Please see http://python.org/sf/432401. Walter is working on such a
> codec.
>
Thank you.
For XML escaping, the approach suggested by this patch would be to use
xmlcharrefreplace() (see the test script) as the error handler.
But that doesn't help with &<>". Personally, I rather dislike having to do
a separate replace() for these.
One approach would be to use character maps which have strategic holes
where & < > and possibly " live..?
--
Matthias Urlichs | noris network AG | http://smurf.noris.de/