XML Editor
Sign up for a WebBoard account Sign Up Keyword Search Search More Options... Options
Chat Rooms Chat Help Help News News Log in to WebBoard Log in Not Logged in
Show tree view Topic
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Postnext
Jamil TaylorSubject: Built-In Processor Handling CDATA Transforms Differently
Author: Jamil Taylor
Date: 01 Dec 2007 11:38 AM
I am using the latest version of Stylus Studio 2007 R2 Enterprise currently available for download. An issue I have just encountered is detailed below:

My XSLT 1.0 transformation outputs to HTML, and my HTML contains a table. When the cells for the table from my source XML are empty, the entire row is collapsed in the table. I do not wish for the table to appear this way, so I used the old HTML trick of adding  
Instead of this in my HTML output:

<td></td>

I have this:

<td>&nbsp;</td>

The issue I have encountered is that my HTML appears just the way I expect when using the Built-In XSL processor. The empty table cells contain no text and are not collapsed. If I use any other processor, the table cells contain the text &nbsp;

The portion of my XSL transformation contained within a template is below:

<xsl:for-each select="column">
<td>
<xsl:variable name="value"><xsl:value-of select="translate(self::node(),' ','')"/></xsl:variable>
<xsl:choose>
<xsl:when test="string-length($value)=0"><![CDATA[&nbsp;]]></xsl:when>
<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
</td>
</xsl:for-each>

Postnext
Jamil TaylorSubject: Built-In Processor Handling CDATA Transforms Differently
Author: Jamil Taylor
Date: 01 Dec 2007 12:55 PM
More on this--

I have discovered a way to get the desired output in all other processors BUT Built-In. That is to replace the line above to the following:

<xsl:when test="string-length($value)=0">&#160;</xsl:when>

When I use this, all processors except for Built-In now show an empty table row.

Built-In, however, now shows a collapsed table row.

Is this a bug?

Postnext
Alberto MassariSubject: Built-In Processor Handling CDATA Transforms Differently
Author: Alberto Massari
Date: 06 Dec 2007 08:49 AM
Hi Jamil,
yes, it's a bug of the built-in processor; the &nbsp; will appear if there is other non-whitespace text to be printed.

Alberto

Postnext
Jamil TaylorSubject: Built-In Processor Handling CDATA Transforms Differently
Author: Jamil Taylor
Date: 07 Dec 2007 07:34 AM
Originally Posted: 07 Dec 2007 07:31 AM
Thank you for investigating this.

I am not sure what 'Built-in' in the name of the processor actually refers to. Does this mean that your team owns the source code for this processor and is able to correct the issue? I thought I read something about the code being used from another open source project or something.

This is the first issue I have found with the Built-in processor. Now it seems that almost every processor within Stylus Studio has a different problem (there's two more I can try still).

Posttop
Alberto MassariSubject: Built-In Processor Handling CDATA Transforms Differently
Author: Alberto Massari
Date: 11 Dec 2007 06:22 AM
Hi Jamil,
the 'built-in' XSLT processor is a processor we wrote in house; on the other hand, the 'built-in' XML validation processor is the open source Xerces-C++ XML parser.
As for each XSLT processor behaving in different ways... that's the beauty of having multiple processors inside Stylus Studio: so you can test your stylesheet against the specific processor you are going to use when deploying your stylesheet.

Hope this helps,
Alberto

 
Topic Page 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Go to previous topicPrev TopicGo to next topicNext Topic
Download A Free Trial of Stylus Studio 6 XML Professional Edition Today! Powered by Stylus Studio, the world's leading XML IDE for XML, XSLT, XQuery, XML Schema, DTD, XPath, WSDL, XHTML, SQL/XML, and XML Mapping!  
go

Log In Options

Site Map | Privacy Policy | Terms of Use | Trademarks
Stylus Scoop XML Newsletter:
W3C Member
Stylus Studio® and DataDirect XQuery ™are from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2016 All Rights Reserved.