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

RE: Defining a key on a RTF inside a Template

Subject: RE: Defining a key on a RTF inside a Template
From: Mukul Gandhi <mukul_gandhi@xxxxxxxxx>
Date: Wed, 8 Dec 2004 04:19:13 -0800 (PST)
create rtf
Sorry for writing while Mike is explaining..

I have found the following technique to work:

1) Define xsl:key as a direct child of xsl:stylesheet,
like this.. 
<xsl:key name="countDetail" match="temp/projectsum"
use="@id"/>

2) Create RTF like this..
<xsl:variable name="projectSum">
 <temp>
   <xsl:for-each select="//project">
     <!-- other code -->
   </xsl:for-each>
 </temp>
</xsl:variable>
Please note the use of extra tag <temp>. This name I
have used in the <xsl:key definition.. It is this use
of a temporary tag(temp), which makes the scope of
xsl:key the RTF..

3) Now use key() function..
key('countDetail','id-value') .. The id-value can be
hardcoded or can come from the context..

Regards,
Mukul

--- "Ranjan K. Baisak" <ranjanbaisak@xxxxxxxxx> wrote:

> Michael,
>        I am afraid if I understood your suggestion
> correctly.
> My key is associated with RTF "projectSum". The I am
> wodering how I can use "projectSum" RTF in my key.
> "projectsum" is a node in "projectSum" RTF variable.
> 
> regards,
> Ranjan
> --- Michael Kay <mike@xxxxxxxxxxxx> wrote:
> 
> > The value of the match attribute must be a valid
> > pattern
> > 
> > match="exslt:node-set($projectSum)/projectsum"
> > 
> > should simply be
> > 
> > match="projectsum"
> > 
> > The xsl:key declaration doesn't define which
> > document the key is referring
> > to; that's decided at the time you use the key()
> > function.
> > 
> > Michael Kay
> > http://www.saxonica.com/ 
> > 
> > > -----Original Message-----
> > > From: Ranjan K. Baisak
> > [mailto:ranjanbaisak@xxxxxxxxx] 
> > > Sent: 08 December 2004 09:05
> > > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> > > Subject: RE:  Defining a key on a RTF
> inside
> > a Template 
> > > 
> > > I am quite agree with Michael because my key
> > depends
> > > upon an RTF. So I can take that RTF is the
> context
> > > node for declaring key.
> > > 
> > > In either case, I am getting error during
> > processing.
> > > In XALAN : "Incorrect place of defining key"
> > > In SAXON 8.1.1: XPath syntax error at char 0 in
> > > {exslt:node-set($}:;     The only functions
> > allowed in
> > > a pattern are id() and key()
> > > 
> > > I too tried to declare the key at the top of my
> > > stylesheet but it still throw error.
> > > 
> > > 
> > > regards,
> > > Ranjan
> > > 
> > > --- Michael Kay <mike@xxxxxxxxxxxx> wrote:
> > > 
> > > > > According to XSLT 1.0 specificatoion ( 
> > > > > http://www.w3.org/TR/1999/REC-xslt-19991116
> ),
> > > > xsl:key is a
> > > > > top-level element. Therefore you cannot
> place
> > it
> > > > outside a 
> > > > > xsl:stylesheet/xsl:transform .
> > > > > The easiest solution: do not use keys.
> > > > 
> > > > No, it's perfectly OK to use keys to search
> > within
> > > > an RTF.
> > > > 
> > > > Michael Kay
> > > > http://www.saxonica.com/
> > > > 
> > > > > 
> > > > > --- "Ranjan K. Baisak"
> > <ranjanbaisak@xxxxxxxxx>
> > > > wrote:
> > > > > 
> > > > > > I am creating  a key inside a template
> with
> > RTF
> > > > as
> > > > > > below:
> > > > > > <xsl:variable name="projectSum">
> > > > > > 	<xsl:for-each select="//project">
> > > > > > 		<xsl:variable name="projectname"
> > > > select="./@name"/>
> > > > > > 		<xsl:variable name="projectid"
> > select="@id"/>
> > > > > > 		<xsl:variable name="projectref"
> > > > > > select="projectelement/@ref"/>
> > > > > > 		<xsl:copy>
> > > > > > 			<xsl:copy-of select="./@name"/>
> > > > > > 			<xsl:copy-of select="./@id"/>
> > > > > > 			<projectsum>
> > > > > > 				<xsl:copy-of
> > > > > >
> > > >
> > >
> >
>
select="count(key('ProjectPartNumber',$projectref))"/>
> > > > > > 			</projectsum>
> > > > > > 		</xsl:copy>
> > > > > > 	</xsl:for-each>
> > > > > > </xsl:variable>
> > > > > > 
> > > > > > <xsl:key name="countDetail"
> > > > > >
> > match="exslt:node-set($projectSum)/projectsum"
> > > > > > use="./@id"/>
> > > > > > 
> > > > > > In XALAN it throws error with message
> > "Incorrect
> > > > place
> > > > > > of defining Key".
> > > > > > I am not sure whether it is possible to
> > create a
> > > > key
> > > > > > with RTF within a template?
> > > > > > If not possible, is there any otherway to
> > achive
> > > > the
> > > > > > same functionality?
> > > > > > 
> > > > > > regards,
> > > > > > Ranjan
> > > > > > 
> > > > > > 
> > > > > > 
> > > > > > 		
> > > > > > __________________________________ 
> > > > > > Do you Yahoo!? 
> > > > > > Yahoo! Mail - now with 250MB free storage.
> > Learn
> > > > more.
> > > > > > http://info.mail.yahoo.com/mail_250
> > > > > > 
> > > > > > 
> > > > > 
> > > > > 
> > > > > =====
> > > > > Marian
> > > > > http://www.utdallas.edu/~mgo031000/
> > > > > 
> > > > > 
> > > > > 		
> > > > > __________________________________ 
> > > > > Do you Yahoo!? 
> > > > > Yahoo! Mail - Find what you need with new
> > enhanced
> > > > search.
> > > > > http://info.mail.yahoo.com/mail_250
> > > > 
> > > > 
> > > 
> > > 
> > >
> __________________________________________________
> > > Do You Yahoo!?
> > > Tired of spam?  Yahoo! Mail has the best spam
> > protection around 
> > > http://mail.yahoo.com 
> > > 
> > 
> === message truncated ===
> 
> 
> 
> 		
> __________________________________ 
> Do you Yahoo!? 
> The all-new My Yahoo! - Get yours free! 
> http://my.yahoo.com 
> 
> 



		
__________________________________ 
Do you Yahoo!? 
Check out the new Yahoo! Front Page. 
www.yahoo.com 

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.