[xsl] keyed lookup table

Subject: [xsl] keyed lookup table
From: Kevin Rodgers <kevin.rodgers@xxxxxxx>
Date: Thu, 17 Feb 2005 09:44:27 -0700
I've got a working lookup table implemented like this:

<xsl:variable name="language-table">
  <!-- See ISO 639 -->
  <name code="ar">ARABIC</name>
  <name code="de">GERMAN</name>
  <name code="en">ENGLISH</name>
...
  <name code="zh">CHINESE</name>
</xsl:variable>

that I can access in my templates with an expression like:

	$language-table/name[@code='de']

I was hoping I could access that table via a key:

	<xsl:key name="language-code" match="name" use="@code"/>

that I would access with this expression:

	key('language-code', 'de', $stylesheet)"/>

given:

	<xsl:variable name="stylesheet" select="document('')"/>

But the key function always returns an empty sequence.  Why?  Can I use
a key on these $language-table/name nodes, which are internal to the
stylesheet?  (I'm sure it will work if I move the lookup table from the
stylesheet to its own external XML document, which is more maintainable
anyway, but I want to udnerstand what is wrong with the idea of a keyed
lookup table within the stylesheet.)

Thanks,
-- 
Kevin

Current Thread