[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

Re: Best practice for typing?

Subject: Re: Best practice for typing?
From: "David Birnbaum djbpitt@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Sun, 24 Nov 2019 02:15:08 -0000
Re:  Best practice for typing?
Dear Dimitre, Pieter, and Michael,

Thank you all for the informative and helpful responses!

Best,

David

On Sat, Nov 23, 2019 at 2:18 AM Michael Kay mike@xxxxxxxxxxxx <
xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:

> Declaring the type on xsl:param is always good practice.
>
> Declaring the type on xsl:variable is also good practice, though I don't
> tend to bother if it's obvious, e.g. <xsl:variable name="x" select="12"/>.
>
> Declaring the type on xsl:with-param can be useful documentation for
> someone reading the code, in cases where the type isn't obvious, but it's
> not something I regard as important.
>
> Declaring the return type on functions and templates is also good
> practice; I always do it for functions, but I tend not to bother for
> templates if they are constructing new elements, since that's usually
> obvious.
>
> In Saxon, I think the only case where declaring a type is likely to incur
> a significant run-time cost is with maps: checking that a map conforms to
> its declared type can be expensive, though Saxon does try to keep track of
> the type information through map modifications in many cases. By contrast,
> providing type information can sometimes enable very worthwhile
> optimizations. For example with the expression $x/firstName, it's very
> useful to know statically that $x is a single node: this not only avoids a
> run-time check, it can also avoid a sort operation (but actually, we should
> get into the habit of writing this as $x!firstName instead). Similarly with
> xxx[$i] it is very useful to know in advance that $i is an integer.
>
> Michael Kay
> Saxonica
>
> On 23 Nov 2019, at 01:44, David Birnbaum djbpitt@xxxxxxxxx <
> xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx> wrote:
>
> Dear xsl-list,
>
> Is there a consensus about best practice with respect to possibly
> redundant typing? For example, we can specify a type using @as on
> corresponding <xsl:param> and <xsl:with-param> elements, but if the type is
> specified on <xsl:param>, it seems as if that might make it redundant also
> to specify it on <xsl:with-param>, since using the wrong type at the level
> of <xsl:with-param> will be caught by the type specification on <xsl:param>
> anyway. Similarly, if I construct the return value of a function by using
> <xsl:sequence> inside the body of the function, I can specify the typing on
> <xsl:sequence>, but also on <xsl:function>, and it seems as if specifying
> it in either of those places will catch the same errors as specifying in
> both. (I am only beginning to learn to use schema-aware processing, and
> therefore less certain about how specifying @type when constructing an
> interim element or attribute interacts with specifying @as when using it.)
>
> Is there consensus among XSLT developers about whether it might be better
> to use @as everywhere it is allowed, or, alternatively, better to avoid
> using it redundantly? What is the practice of other readers of this list?
>
> Thanks,
>
> David
> djbpitt@xxxxxxxxx
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/293509> (by
> email)
>
>
> XSL-List info and archive <http://www.mulberrytech.com/xsl/xsl-list>
> EasyUnsubscribe <http://lists.mulberrytech.com/unsub/xsl-list/3318727> (by
> email <>)

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.