If you can express the condition with an @as attribute, use that in preference
to an xsl:assert, because it's much more amenable to static analysis -
certainly with Saxon, xsl:assert will only ever give you a run-time error. The
diagnostics for type errors will also tend to be better.
<xsl:param name="item" as="element(author)"/>
is equivalent to:
<xsl:param name="item"/>
<xsl:assert test="name($item) eq 'author'"/>
Almost. name() is sensitive to the choice of namespace prefixes, and should
only be used to generate diagnostic output. If you need an assertion here, use
<xsl:assert test="$item[self::author]"/>
or
<xsl:assert test="$item instance of element(author)"/>
Michael Kay
Saxonica
--~----------------------------------------------------------------
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
--~--