Hello! I've got a stylesheet that takes two string parameters:
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
<xsl:param name="from.att" as="xs:string"/>
<xsl:param name="to.att" as="xs:string"/>
Both parameters are expected to be strings in the form of
@attributename=value
At first I tried adding a check at the top level of the stylesheet:
<xsl:if test="not(matches($from.att, '^@\w+=\w+$') and matches($to.att,
'^@\w+=\w+$'))">
<xsl:message terminate="yes">Input parameters must be in the form
'@attributename=value'.</xsl:message>
</xsl:if>
but <xsl:if> isn't allowed at the top level of a stylesheet.
So for now I'm doing this in a "dummy" root element template that doesn't do
anything:
<!-- this doesn't actually do anything other than validate our input
parameters -->
<xsl:template match="/" priority="20">
<xsl:choose>
<xsl:when test="matches($from.att, '^@\w+=\w+$') and matches($to.att,
'^@\w+=\w+$')">
<xsl:next-match/>
</xsl:when>
<xsl:otherwise>
<xsl:message>Input parameters must be in the form
'@attributename=value'.</xsl:message>
<xsl:copy-of select="."/>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
but I feel like there's probably a better way. Is there?
-----
Chris Papademetrious
Tech Writer, Implementation Group
(610) 628-9718 home office
(570) 460-6078 cell
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--