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 |