|
Subject: RE: [xsl] 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) |
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: [xsl] 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 |
|---|
|
| <- Previous | Index | Next -> |
|---|---|---|
| Re: [xsl] Defining a key on a RTF i, Ranjan K. Baisak | Thread | Re: [xsl] Defining a key on a RTF i, David Carlisle |
| Re: [xsl] Same XPath expression wit, xptm | Date | RE: [xsl] Defining a key on a RTF i, Ranjan K. Baisak |
| Month |