This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
Re: creating links to resource files listed in XML file
- From: David Carlisle <davidc at nag dot co dot uk>
- To: xsl-list at lists dot mulberrytech dot com
- Date: Thu, 18 Jul 2002 11:12:48 +0100
- Subject: Re: [xsl] creating links to resource files listed in XML file
- References: <03F3A585B9FE034EB571F04E4C792E220545C09C@2k_exch.analysys.com>
- Reply-to: xsl-list at lists dot mulberrytech dot com
> also can I ask why < and > aren't allowed in attributes in XML/XSL. I
well they're not allowed in XSL as they are not in XML, and XSL
stylesheets have to be well formed XML.
In XML I suppose the answer is yes it's a parsing issue.
But if they were allowed (as they are in SGML) it wouldn't have the
effect people seem to want.
<a href='<xsl:value-of select="$myVar"/>'>
here the user is trying to get <xsl:value-of/> inside an attribute.
This isn't a syntax issue about quoting < it's a semantic issue: XML
attributes are not structured.
In SGML, CDATA attributes (note attibutes are never PCDATA)
you'd have been able to go
<a href='<xsl:value-of select="$myVar"/>'>
but it would _mean_ the same as above ie as in a CDATA section.
It would not mean that element was inside the attribute.
HTML uses this for example to use < meaning less-than inside javascript:
href attribuutes.
So the designers of XML probably banned < in attributes specifcally so
that users would get a syntax error on
<a href='<xsl:value-of select="$myVar"/>'>
rather than it parsing OK but then producing the text
<xsl:value-of select="$myVar"/>
rather than evaluating an XSL value-of element.
David
_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list