[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Disable Output Escaping - really useful

Subject: Disable Output Escaping - really useful
From: Dylan Walsh <Dylan.Walsh@xxxxxx>
Date: Wed, 22 Mar 2000 11:21:42 -0000
disable output escaping certain elements
I read on this mailing a while back that certain XSLT processors do not
support disable-output-escaping. It got me wondering, because I have found
that when using XSL I nearly always end up using it for something or
another, so what would I do without it?
 
For example, when began using XSL to create WML (WAP) decks, they required a
WML DOCTYPE declaration. At the time XT did not support creating this using
xsl:output and its doctype-system and doctype-public attributes. So I had to
use output escaping.

Another example is the case below. A loosegrid element in my source XML is
like a table, but it doesn't specify how to lay it out i.e. how many items
are contained in the rows. The idea is that this decision is defered to
stylesheet, which will layout the table according to its target audience
e.g. wide tables for HTML, narrow tables for mobile users of WAP. In the
template for loosegrids below, 5 items are put in each row. When an item is
the 5th, 10th, 15th etc. (using "position() mod 5 =0") it should close this
row and start the next. Unfortunately putting </tr><tr> inside <xsl:if> is
badly formed XML. Hence my use of disable-output-escaping.

Anyone know a way of doing this without disable-output-escaping? Is using
disable-output-escaping like this a bit of a hack?

<!-- A grid where there is no heading row, and hence the no. 
	of columns is not critical. The items are broken up 
	into rows by the stylesheet. -->
  <xsl:template match="loosegrid">
	<table cellpadding="5">
		<tr>
		<xsl:for-each select="item"> 
			<xsl:apply-templates select="." mode="normal"/>
			<xsl:if test="position() mod 5 = 0">
				<!-- 	Want to close this row and open
another, every five rows
					However having a closing </tr>
following by an opening one
					<tr> inside the <xsl:if> would be
improper overlapping
					and hence badly formed XML.
					Cheating here by using output
escaping to get round the
					problem -->
				<xsl:text
disable-output-escaping="yes">&lt;/tr>&lt;tr></xsl:text>
			</xsl:if>
		</xsl:for-each>
		</tr>
	</table><br/>
  </xsl:template>


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


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.