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

Pattern: Replicating Key Table Construction for Debugg

Subject: Pattern: Replicating Key Table Construction for Debugging
From: "W. Eliot Kimber" <eliot@xxxxxxxxxx>
Date: Tue, 19 Feb 2002 20:49:48 -0600
replicating keys
This should have been obvious, but it took me a while to figure it out
and I know a lot of people are struggling with key-based processing:

There's no direct way to see what the entries in a table are (e.g., the
equivalent of Hastable.getKeySet() in Java). However, you can easily
replicate what the key table is doing and sanity check what's happening.
All you do is a for-each from the root that uses the same select rule as
the key.

For example, if your key declaration is:

<xsl:key name="primary" 
  match="index.marker" 
  use="normalize-space(concat(primary/@sortas,
primary[not(@sortas)]))"/>

Then to see what is actually going into the table, just do this:

<xsl:for-each select="//index.marker">
 <xsl:message>key='<xsl:value-of 
  select="normalize-space(concat(primary/@sortas, 
                                
primary[not(@sortas)]))"/>'</xsl:message>
</xsl:for-each>

This should print out the equivalent of all the entries in the table.
You can also capture the key value and do a lookup in the table to see,
for example, how many of that entry are in the table under that key.

<xsl:for-each select="//index.marker">
 <xsl:variable name="tempkey">
  <xsl:value-of
    select="normalize-space(concat(primary/@sortas, 
                                 primary[not(@sortas)]))"/>
 <xsl:variable>
 <xsl:message>key='<xsl:value-of select="$tempkey"/>'</xsl:message>
 <xsl:message>  <xsl:value-of select="count(key('primary', $tempkey))/>
items found
  </xsl:message>
</xsl:for-each>  

Cheers,

Eliot
-- 
W. Eliot Kimber, eliot@xxxxxxxxxx
Consultant, ISOGEN International

1016 La Posada Dr., Suite 240
Austin, TX  78752 Phone: 512.656.4139

 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.