xsl-list
[Top] [All Lists]

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

2003-02-04 13:33:21
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