xsl-list
[Top] [All Lists]

RE: output/@indent="yes" and *[(_at_)xml:space="preserve"]

2003-02-04 16:32:30
Oh dear, I think you're right. The spec says in effect that whitespace
shouldn't be added where <xsl:strip-space> wouldn't cause it to be
stripped: which is the case when xml:space="preserve" applies. It also
says that it shouldn't be added inside an xsl:text element - a rather
odd provision which seems to special-case the output of stylesheets.

Michael Kay
Software AG
home: Michael(_dot_)H(_dot_)Kay(_at_)ntlworld(_dot_)com
work: Michael(_dot_)Kay(_at_)softwareag(_dot_)com 

-----Original Message-----
From: Gunther Schadow 
[mailto:gunther(_at_)aurora(_dot_)regenstrief(_dot_)org] 
Sent: 04 February 2003 20:33
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: xsl:output/@indent="yes" and *[(_at_)xml:space="preserve"]


Hi,

suppose I run the following transform (on anything)

<xsl:transform version="1.0"
     xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
   <xsl:output method="xml" indent="yes"/>
   <xsl:strip-space elements="*"/>
   <xsl:template match="/">
     <root>
       <span xml:space="preserve"><xsl:text>&#xA;</xsl:text></span>
     </root>
   </xsl:template>
</xsl:transform>

In Saxon this produces the following output

<?xml version="1.0" encoding="utf-8"?>
<root>
    <span xml:space="preserve">

    </span>
</root>

however, I submit this is not correct, or at least not what I 
would expect. If space is to be preserved on the span 
element, then I would hope that no space is added either. IMO 
the output should be:

<?xml version="1.0" encoding="utf-8"?>
<root>
    <span xml:space="preserve">
</span>
</root>

i.e., there should be a single newline only, even though that 
somewhat messes up the XML prettyness.

Is this something that Saxon just happens to get wrong or is 
this something that the XSLT spec leaves open to 
interpretation, or does the XSLT spec actually require this 
behavior? If the latter is true, how can one preserve space 
precisely on certain elements without having to choose 
xsl:output/@indent="no"?

thanks,
-Gunther


-- 
Gunther Schadow, M.D., Ph.D.                    
gschadow(_at_)regenstrief(_dot_)org
Medical Information Scientist      Regenstrief Institute for 
Health Care
Adjunct Assistant Professor        Indiana University School 
of Medicine
tel:1(317)630-7960                         
http://aurora.regenstrief.org




 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list