Re: [xsl] Lookup tables

Subject: Re: [xsl] Lookup tables
From: "Joe Fawcett" <joefawcett@xxxxxxxxxxx>
Date: Fri, 16 Mar 2007 01:17:41 -0000
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
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.

Joe Fawcett (MVP - XML)

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

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 //.


Kamal Bhatt

Current Thread