Re: [xml] xml:space and xml:lang problem
- From: Rob Richards <rrichards ctindustries net>
- To: veillard redhat com
- Cc: xml gnome org
- Subject: Re: [xml] xml:space and xml:lang problem
- Date: Wed, 08 Jun 2005 16:45:10 -0400
The xmllint example was just a way to exemplify the issue using xmllint.
I was loading xml using dom methods and told it to stip out whitespaces.
This works fine, except the xml:space attribute when set to preserve
should prevent the removal of whitespaces in its context.
When the xml is output it looks like:
<?xml version="1.0"?>
<doc><e1><e2 xml:space="preserve"><e3 id="E3"/></e2></e1></doc>
while it should look like:
<?xml version="1.0"?>
<doc><e1><e2 xml:space="preserve">
<e3 id="E3"/>
</e2></e1></doc>
which it does using 2.5.x as well as 2.6 with the patch.
Hadn't played with the xml:lang, but saw it has the same problem as
xml:space. The code in xmlParseAttribute was carried over to
xmlParseAttribute2, but within xmlParseAttribute2, the attribute is
broken out into prefix and name, so the tests xmlStrEqual(name, BAD_CAST
"xml:space") and (xmlStrEqual(name, BAD_CAST "xml:lang")) will never be
true like they are in xmlParseAttribute.
As far as moving code around, I made a test just for
xmlStrEqual(*prefix, BAD_CAST "xml") and if that is true will fall into
the block to check for name equal to space or lang. figured it would be
faster rather than testing everything twice when the prefix may not even
be correct in the first place.
The logic is the same as that used in xmlParseAttribute, which does only
check lang if pedantic is used. The change was just to get the checks to
actually kick in as they would never be true in xmlParseAttribute2.
Rob
Daniel Veillard wrote:
On Wed, Jun 08, 2005 at 02:41:36PM -0400, Rob Richards wrote:
Looks like xml:space is broken as of 2.6.0 with sax2
Running xmllint --noblanks on the following:
<doc>
<e1>
<e2 xml:space="preserve">
<e3 id="E3"/>
</e2>
</e1>
</doc>
ignores the preserve while it doesn't in 2.5.x (different function call)
xml:lang has the same issue
Attached is the patch I'm using for it - moved some things around as well.
I'm not against applying the patch, but could you give a few lines of
explanations ? xmllint --noblanks is not conformant "by design", but I think
I understand what it's about, I would just like to be sure. I assume
the xml:lang is about checking the value, we (W3C XML Core WG) relaxed this
a lot in the second edition of the XML specification. I would say
xml:lang warnings should only be raised in pedantic mode at this point,
note also that xml:lang="" may be used too.
Daniel
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]