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
Jon GallegosSubject: Problems with xsl:variable
Author: Jon Gallegos
Date: 23 Jul 2008 11:52 AM
I get a message saying;
XPST0008: XPath syntax error at char 15 on line 35 in {$WSPartNameText}:
Variable $WSPartNameText has not been declared

But my variable are displayed. I am so confused



<?xml version='1.0' ?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:a="http://www.lotus.com/dxl">
<xsl:template match="/">
<PLMXML schemaVersion="">
<xsl:attribute name="schemaVersion">
<xsl:for-each select="a:document">5.1</xsl:for-each>
</xsl:attribute>

<Header>
<xsl:attribute name="id">
<xsl:number value="count(preceding-sibling::*)*30+1"/>
</xsl:attribute>
<xsl:attribute name="traverseRootRefs">
<xsl:for-each select="a:document">
#
<xsl:number value="count(preceding-sibling::*)*30+2"/>
</xsl:for-each>
</xsl:attribute>
<xsl:attribute name="transferContext">CRF Form Import</xsl:attribute>
</Header>

<xsl:for-each select="a:document/a:item">
<xsl:if test="@name = 'Pname'">
<xsl:variable name="WSPartNameText" select="a:text"></xsl:variable>
<xsl:variable name="WSPartNameName" select="@name"></xsl:variable>
</xsl:if>
</xsl:for-each>

<Product subType="Official Part">
<xsl:attribute name="id">
<xsl:value-of select="count(preceding-sibling::*)*30+3"/>
</xsl:attribute>
<xsl:attribute name="name">
<xsl:value-of select="@name"/>
</xsl:attribute>
<xsl:attribute name="productId">
<xsl:copy-of select="$WSPartNameText"/>
</xsl:attribute>
</xsl:for-each>

</PLMXML>
</xsl:template>
</xsl:stylesheet>

Posttop
Tony LavinioSubject: Problems with xsl:variable
Author: Tony Lavinio
Date: 23 Jul 2008 05:06 PM
This sort of thing won't fly in XSLT, because in XSLT variables
are scoped to the enclosing block. This means that in the following:

<xsl:if test="@name = 'Pname'">
<xsl:variable name="WSPartNameText" select="a:text"></xsl:variable>
<xsl:variable name="WSPartNameName" select="@name"></xsl:variable>
</xsl:if>

the two variables go out of scope at the end of the </xsl:if>!

The whole document is accessible to you; use the XPaths as your
friends to reach into it. Especially powerful are the predicates
(the parts in [ and ]) that let you filter down result sets.

 
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.