| Subject: Validating/enforcing a list of names (Was: Re: [xsl] Detecting presence of attributes ) From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Mon, 5 Feb 2001 21:36:50 -0800 (PST) | 
Well done, Jeni!
Why don't we call it with a proper name -- isn't this a general method
of validating and enforcing a list of valid names?
I haven't seen this before -- shall we call it "the Tennison method"?
:o)))
Cheers,
Dimitre.
Jeni Tennison wrote:
Well, inspired by Dimitre's insight about id(), here's a solution that
doesn't involve recursive templates, as long as you don't mind
repeating in the stylesheet the list of allowed options:
<?xml version="1.0"?>
<!DOCTYPE xsl:stylesheet [
<!ATTLIST thesis:opt id ID #REQUIRED>
]>
<xsl:stylesheet version="1.0"
                xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
                xmlns:thesis="http://www.silmaril.ie/thesis"
                exclude-result-prefixes="thesis">
<thesis:opts>
  <thesis:opt id="foo" />
  <thesis:opt id="bar" />
</thesis:opts>
<xsl:template match="thesis">
   <xsl:text>Options: </xsl:text>
   <xsl:variable name="options" select="@options" />
   <!-- change the context to the stylesheet document -->
   <xsl:for-each select="document('')/*">
      <!-- get the id attributes of any options identified by ID -->
      <xsl:for-each select="id($options)/@id">
         <xsl:value-of select="." />
         <xsl:if test="position() != last()">, </xsl:if>
      </xsl:for-each>
   </xsl:for-each>
</xsl:template>
</xsl:stylesheet>
It has the advantage that you can deal with bad values (e.g. if
'blort' wasn't actually allowed) within the stylesheet - if that's an
advantage.
Cheers,
Jeni
---
Jeni Tennison
http://www.jenitennison.com/
__________________________________________________
Do You Yahoo!?
Yahoo! Auctions - Buy the things you want at great prices.
http://auctions.yahoo.com/
 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
| Current Thread | 
|---|
| 
 | 
| <- Previous | Index | Next -> | 
|---|---|---|
| Re: [xsl] copyright symbol, Miloslav Nic | Thread | Re: Validating/enforcing a list of , Jeni Tennison | 
| Re: [xsl] White space in HTML resul, Mike Brown | Date | Re: [xsl] copyright symbol, Miloslav Nic | 
| Month |