rowan(_at_)sylvester-bradley(_dot_)org wrote:
I found it very confusing that one requires the {} to be doubled and the
other doesn't. Where is it documented which attributes require braces to be
doubled up and which do not?
If you look at
http://www.w3.org/TR/xslt20/#analyze-string
then it has the following definition:
<xsl:analyze-string
select = expression
regex = { string }
flags? = { string }>
<!-- Content: (xsl:matching-substring?, xsl:non-matching-substring?,
xsl:fallback*) -->
</xsl:analyze-string>
so the attribute definition in the form of
regex = { string }
shows you that an attribute value template is expected while
select = expression
only takes an XPath expression.
There is even a prose warning note in there:
Because the regex attribute is an attribute value template, curly
brackets within the regular expression must be doubled. For example, to
match a sequence of one to five characters, write regex=".{{1,5}}". For
regular expressions containing many curly brackets it may be more
convenient to use a notation such as
regex="{'[0-9]{1,5}[a-z]{3}[0-9]{1,2}'}", or to use a variable.
--
Martin Honnen
http://msmvps.com/blogs/martin_honnen/
--~------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--