After some trivial corrections to your stylesheet (like the unfinished
<xsl:template match="/"> template) I'm getting the output
CFCK DPARK slots.t11 pots.t11
which looks right.
I think you're hitting bugs in the processor rather than language problems
with XSLT 2.0. Given that you seem to be using a processor that allows
href="..\text\text.justify.xslt"
in a place where the spec requires a URI, I don't think you're using Saxon.
Michael Kay
http://www.saxonica.com/
-----Original Message-----
From: Heckel, Matt , Ctr, OSD-PA&E
[mailto:Matthew(_dot_)Heckel(_dot_)ctr(_at_)osd(_dot_)mil]
Sent: 02 March 2005 20:38
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Problem with converting to XSLT 2.0
Classification: UNCLASSIFIED
Hi,
I've managed to turn a seemingly simple task into a major
time kill. All I
wanted to do was convert my template to version 2.0 (from
version 1.0) to
take advantage of its nifty grouping functionality. But no..
after nailing
the complicated grouping stuff, I ran into a problem using a
simple utility
template, text.justify.xslt, from Sal Mangano's Cookbook
that worked fine
in V. 1.0. From what I've observed, the <xsl:choose> element in
text.justify.xslt is now acting more like an <xsl:if>
element. That is, all
of the <when> conditions are being tested for, including
<otherwise>, even
though the first test of the group is true. I should be
getting the one
data element in my source file but instead I'm getting the
string "INVALID
ALIGN" printed out after each attribute.
I'm not sure if my problem lies with the new <sequence>
element for choose
(doubt it) or something to do with XSLT V. 2.0 only allowing
1 node being
used in value-of calls as opposed to a nodeset which was ok
in V. 1.0. I
think this is an ez one for someone other then my newbie self. MUCH
appreciation~ Matt
Source Doc:
<?xml version="1.0" encoding="UTF-8" ?>
<CASTDataset>
<ETL_KV_1 BLUE_THTR_CMD_NM="CFCK" KV_POT_FILE_NM="pots.t11"
KV_SLOT_FILE_NM="slots.t11" RED_THTR_CMD_NM="DPARK" THTR_ID="1" />
</CASTDataset>
Main Template:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2004/07/xpath-functions"
xmlns:xdt="http://www.w3.org/2004/07/xpath-datatypes">
<xsl:output method="text" version="1.0" encoding="UTF-8"
indent="yes"/>
<xsl:include href="..\text\text.justify.xslt"/>
<xsl:variable name="endline" select="'
'"/>
<xsl:template match="/">
<xsl:template match="CASTDataset/ETL_KV_1">
<xsl:call-template name="text_justify">
<xsl:with-param name="value" select="concat('
',@BLUE_THTR_CMD_NM)"/>
<xsl:with-param name="width" select="14"/>
<xsl:with-param name="align" select=" 'left' "/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="text_justify">
<xsl:with-param name="value" select="concat('
',@RED_THTR_CMD_NM)"/>
<xsl:with-param name="width" select="12"/>
<xsl:with-param name="align" select=" 'left' "/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="text_justify">
<xsl:with-param name="value" select="concat('
',@KV_SLOT_FILE_NM)"/>
<xsl:with-param name="width" select="30"/>
<xsl:with-param name="align" select=" 'left' "/>
</xsl:call-template>
<xsl:text> </xsl:text>
<xsl:call-template name="text_justify">
<xsl:with-param name="value" select="concat('
',@KV_POT_FILE_NM)"/>
<xsl:with-param name="width" select="30"/>
<xsl:with-param name="align" select=" 'left' "/>
</xsl:call-template>
<xsl:value-of select="$endline"/>
</xsl:template>
</xsl:stylesheet>
Utility Template: (I've abbreviated the code from the Cookbook for
readability)
<?xml version="1.0" encoding="UTF-8"?>
<!--<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:str="http://www.ora.com/XSLTCookbook/namespaces/strings"
xmlns:text="http://www.ora.com/XSLTCookbook/namespaces/text"
extension-element-prefixes="text"> -->
<xsl:stylesheet version="2.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:fn="http://www.w3.org/2004/07/xpath-functions"
xmlns:text="http://www.ora.com/XSLTCookbook/namespaces/text"
extension-element-prefixes="text">
<xsl:template name="text_justify">
<xsl:param name="value" />
<xsl:param name="width" select="10"/>
<xsl:param name="align" select=" 'left' "/>
<xsl:variable name="output" select="substring($value,1,$width)"/>
<xsl:choose>
<xsl:when test="$align = 'left'">
<xsl:value-of select="$output"/>
</xsl:when>
<xsl:when test="$align = 'right'">
<xsl:value-of select="$output"/>
</xsl:when>
<xsl:when test="$align = 'center'">
<xsl:value-of select="$output"/>
</xsl:when>
<xsl:otherwise>INVALID ALIGN</xsl:otherwise>
</xsl:choose>
</xsl:template>
</xsl:stylesheet>
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--