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

Losing xsl:param values within a called template for-e

Subject: Losing xsl:param values within a called template for-each loop
From: "CROFT, MICHAEL" <MCROFT@xxxxxxxxx>
Date: Mon, 13 May 2002 17:51:36 -0400
michael croft
I have a code excerpt below where Im trying to get a value from a dynamic
expression, and pass this value to a named template.  Within this template,
I want to cycle through all the specified <KeyGroup> elements and if its
attribute value (@id)  equals a the value I passed as a xsl:param, set the
text of its child element to the key value... I have the correct values when
I first enter the named template, then when I start to loop, I lose the parm
values...

Here is the sample xml doc...
<CrfActionGroup destinationLogicalId="I3">
		<CommandReference refid="CMD1"/>
		<KeyGroup id="K1" keyGroupType="PARTY"> <!-- get the
keygroup where its AlternateId child has a @sourceLogicalID equal to I3-->
			<AlternateId value="2001-07-25-00.00.00.003170"
sourceLogicalId="ANO" state="exists"/>
			<AlternateId value="826620515239830"
sourceLogicalId="I3" state="exists"/> <!-- pass the @value to the named
template-->
			<UUID>1155</UUID>
		</KeyGroup>
		<KeyGroup id="K2" keyGroupType="PARTY">
			<AlternateId value="2001-07-25-00.00.00.003171"
sourceLogicalId="ANO" state="exists"/>
			<AlternateId value="953689412580434"
sourceLogicalId="I3" state="exists"/>
			<UUID>1154</UUID>
		</KeyGroup>
	</CrfActionGroup>
	<COMMAND>
		<AddPelpPolicyRequest cmdType="request"
cmdMode="alwaysRespond">
			<Individual>
				<KeyGroup refid="K1"/> <!-- need to match
this refid value to the id value of the CrfActionGroup KeyGroup element seen
above-->
				<partyId/> <!-- this needs to become the
value of the @value for the <AlternateID> element where its @sourceLogicalID
= I3 as seen above-->
			</Individual>
			<LineOfBusiness>
				<PartyRole>
					<KeyGroup refid="K1"/>
					<partyId>PARTY ID</partyId>
				</PartyRole>
				<PartyRole>
					<KeyGroup refid="K2"/>
					<partyId/>
				</PartyRole>
			</LineOfBusiness>
		</AddPelpPolicyRequest>
	</COMMAND>

Here is the xsl template....

<xsl:template match="KeyGroup">  <!-- search through first set of KeyGroup
elements -->
		<xsl:for-each select="AlternateId">
			<xsl:if test=" @sourceLogicalId = 'I3' "> <!-- get
its child with the attribute value specified-->
				<xsl:call-template name="command"> <!-- if
the test is true, call the named template passing the parms-->
					<xsl:with-param name="keyvalue"
select="@value"/>
					<xsl:with-param name="keyid"
select="../@id"/>						
				</xsl:call-template>
			</xsl:if>
		</xsl:for-each>
	</xsl:template>

	<xsl:template name="command" match="COMMAND">
		<xsl:param name="keyvalue"/>
		<xsl:param name="keyid"/>
			<xsl:if test="($keyvalue != '') and ($keyid != '')">
			<!-- TEST VALUES These output correctly here-->
			<xsl:value-of select="$keyvalue"></xsl:value-of>
			<xsl:value-of select="$keyid"></xsl:value-of>
				<xsl:for-each select="descendant::KeyGroup">
<!--search the KeyGroup descendants of the COMMAND element-->
					<!-- LOSING THE PARAM VALUES HERE-->
					<xsl:if test="@refid = '$keyid'">
<!-- if the refId = parm passed in, then output the other parm value passed
in-->
						partyId <xsl:value-of
select="$keyvalue"/>
					</xsl:if>
				</xsl:for-each>
			</xsl:if>
	</xsl:template>

Also, Im not sure how to avoid using the name & match attributes in the same
xsl:template element, and still cycle through the specific <KeyGroup>
elements for the parent <COMMAND> element?  Any help is greatly appreciated.

Michael D. Croft
Corporate Information Systems
E-Commerce/APA
Software Development Team
mcroft@xxxxxxxxx 



**********************************************************************
This email and any files transmitted with it are confidential and
intended solely for the use of the individual or entity to whom they
are addressed. If you have received this email in error please notify
the sender and postmaster@xxxxxxxxxx
**********************************************************************
 


 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.