RE: [xsl] How to use an XML-based LUT with XSLT?

Subject: RE: [xsl] How to use an XML-based LUT with XSLT?
From: Taras Tielkes <taras@xxxxxxx>
Date: Thu, 27 Sep 2001 17:19:20 +0200
Hi Xavier,

As far as I understand, your XML source, and the XML containing the mapping
table are separate files.
XSLT has a function to access external XML documents, it's called
"document()".
You could adapt your value-of element to something like:

<xsl:value-of
select="document('errors.xml')/Table/Message[@Code=ActualErrorCode]"/>

Even better would be to cache the errors in hashmap using keys.(Note that
the XSL processor is not required to use a hashmap, although it's likely)

<xsl:key	name="translate-error"
		match="document('errors.xml')/Table/Message"
		use="@code"/>

Now you can use something like:

<xsl:value-of select="key('errors', ActualErrorCode)"/>

Regards,

// tt

> -----Original Message-----
> From: Xavier Defrang [mailto:xavier@xxxxxxxxxxxx]
> Sent: Thursday, September 27, 2001 4:50 PM
> To: Mulburrytech's XSL Mailing List
> Subject: [xsl] How to use an XML-based LUT with XSLT?
> 
> 
> 
> Hello folks,
> 
> I've written a XSL document to transform XML into XHTML (yes, 
> that's a big
> surprize!).  The document contains some error codes and I'd like to
> transform these numerical codes into an actual human-readable 
> message so I
> built a small XML document as follow :
> 
> <?xml version="1.0" standalone="yes"?>
> <Table>
> 	<Message Code="...">User-friendly error message</Message>
> 	...
> </Table>
> 
> Now I'd like to change my XSLT so I could look-up into the Table to
> substitute numerical error codes by text messages with 
> something like :
> 
> <xsl:value-of select="/Table/Message[@Code=ActualErrorCode]"/> 
> 
> Now the question is how do I "link" this table to my input 
> DOM so I can
> reach the Message elements from within my XSLT?  Is there any 
> possibility
> to that with plain XSLT? (I don't want to use any engine-dependant
> extensions)
> 
> Maybe should I make a <xsl:choose>-based template matching 
> the elements
> containing these codes?
> 
> Thanks in advance,
> 
> Xavier Defrang
> Perceval R&D Team
> xavier@xxxxxxxxxxxx
> 
> -------------------------------------------------
>  Perceval Technologies SA/NV  Tel: +32-2-6409194
>  Rue Tenbosch, 9              Fax: +32-2-6403154
>  B-1000 Brussels         http://www.perceval.net
>  BELGIUM                       info@xxxxxxxxxxxx
> -------------------------------------------------
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
> 

 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread