Re: [xsl] XSLT 1.0 serializer for XML

Subject: Re: [xsl] XSLT 1.0 serializer for XML
From: Hermann Stamm-Wilbrandt <STAMMW@xxxxxxxxxx>
Date: Thu, 19 Aug 2010 18:14:36 +0200
> It has been done in XSLT 1.0 too:
> http://lenzconsulting.com/xml-to-string/xml-to-string.xsl

Thanks for the pointer.
I modified serialize-demo.xml to use xml-to-string.xsl and it
produced identical output in the browser.


> The XSLT/XPath data model does not know any CDATA sections respectively
> does not distinguish between "normal" text nodes and CDATA section
> nodes, like the W3C DOM does. So XSLT operates on a tree model where
> there are only text nodes.

So what does this section of xml-to-string.xsl do then?
  <xsl:template name="escape-markup-characters">
    <xsl:param name="text"/>
...
    <xsl:call-template name="replace-string">
      <xsl:with-param name="text" select="$ltEscaped"/>
      <xsl:with-param name="replace" select="']]>'"/>
      <xsl:with-param name="with" select="']]&amp;gt;'"/>
    </xsl:call-template>
  </xsl:template>

It cannot see the "]]>", correct?


Another question,   <xsl:template name="isDeclaredAbove">
does a recursive search to determine whether a namespace is declared
above the current element.

This seems to work in serialize.xsl and does the same job:
     <xsl:if test="not(.=../../namespace::*) and name()!='xml'">

Is it correct?


Mit besten Gruessen / Best wishes,

Hermann Stamm-Wilbrandt
Developer, XML Compiler, L3
WebSphere DataPower SOA Appliances
----------------------------------------------------------------------
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martin Jetter
Geschaeftsfuehrung: Dirk Wittkopp
Sitz der Gesellschaft: Boeblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294



From:       Martin Honnen <Martin.Honnen@xxxxxx>
To:         xsl-list@xxxxxxxxxxxxxxxxxxxxxx
Date:       08/19/2010 05:40 PM
Subject:    Re: [xsl] XSLT 1.0 serializer for XML



Hermann Stamm-Wilbrandt wrote:

> in another thread Florent posted [1] a link to a XML serializer written
> in pure XSLT [2].
> That serializer is written in XSLT 2.0 and cannot be used in browsers;
> they do support XSLT 1.0 only.

It has been done in XSLT 1.0 too:
http://lenzconsulting.com/xml-to-string/xml-to-string.xsl

> With Michael's help I got the differentiation of the 6 XML node types

> Question 3:
> Is it correct, that a stylesheet cannot have access to the CDATA
sections?
> (I think the parser removes them)

The XSLT/XPath data model does not know any CDATA sections respectively
does not distinguish between "normal" text nodes and CDATA section
nodes, like the W3C DOM does. So XSLT operates on a tree model where
there are only text nodes.



--

             Martin Honnen
             http://msmvps.com/blogs/martin_honnen/

Current Thread