Subject: Re: [xsl] Defensive programming in XSLT using asserts and as="..." From: "Michael Kay mike@xxxxxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> Date: Fri, 6 May 2022 16:26:15 -0000 |
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
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] Defensive programming in , Dimitre Novatchev dn | Thread | Re: [xsl] Defensive programming in , Liam R. E. Quin liam |
Re: [xsl] Defensive programming in , Dimitre Novatchev dn | Date | Re: [xsl] Defensive programming in , Dimitre Novatchev dn |
Month |