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

Re: Lookup tables

Subject: Re: Lookup tables
From: Kamal Bhatt <kbhatt@xxxxxxxxx>
Date: Fri, 16 Mar 2007 12:40:15 +1100
Re:  Lookup tables
Joe Fawcett wrote:
Kamal Bhatt

I would have thought that you could use data embedded in the XML, but access via a key. This is declared using xsl:key in the XSLT and retrieved using the key function, see http://www.w3schools.com/xsl/func_key.asp.
I tried to use a key, but couldn't get it to "go backwards". Maybe I am using it incorrectly
Another possibility is to embed the data in the XSLT, via an include maybe, and access via document(''). The disadvantage of this is that document(''), which points to the stylesheet itself, does not always work "out of the box", for example if the XSLT has been fetched from a database table. In that case they are things you can do to make it work, a custom XmlResolver in .NET and the same, I think, in Java.
The lookup table is part of the XML, with the key embedded in a child eg:

<A>
 <Keys>
    <Key value="abc123" name="key1"/>
    <Key value="abc432" name="key2"/>
 </Keys>
 <B>
    <C>
     <Referrer ref="key1"/>
   </C>
  </B
</A>

If someone can give me an example where you match Referrer and get the value from Key (without using ancestor or '..' syntax), that would be great.

Joe Fawcett (MVP - XML) http://joe.fawcett.name

----- Original Message ----- From: "Kamal Bhatt" <kbhatt@xxxxxxxxx>
To: <xsl-list@xxxxxxxxxxxxxxxxxxxxxx>
Sent: Friday, March 16, 2007 1:09 AM
Subject:  Lookup tables


Hi
My company is designing XML specifically for XSLT processing. A question that has come up is the use of lookup tables. We have a lot of repeated data, and our system architect would like that data put in a "lookup table" at the top of the XML. By lookup table I mean XML with some key that can be identified. The only way I can think of processing this XML in XSLT 1.0 (without a lot of '..') is to use something like


ancestor::node()//LookUp/Parameter[@key = 'key_to_lookup'].

First question, is there another way of doing this, secondly, in XSLT parsers, particular those that use SAX, is there a major performance hit in using this method over having the data repeated.

Personally, I would prefer avoiding ancestor::node() and I would definitely like to avoid //.

Cheers.

--
Kamal Bhatt




--
Kamal Bhatt

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.