[2.0] Constructor Functions
XPath 2.0 introduces the idea of constructor
functions, which are similar to constructor functions in
object-oriented languages. As with object-oriented languages, the name
of the constructor function is the name of the datatype. Here’s how to
create a value of type xs:date
:
<xsl:variable name="birthday" select="xs:date('1995-04-21')"/>
This takes the string 1995-04-21
and creates a new value of type
xs:date
. This can cause runtime
errors, as you would expect. A stylesheet that contains this
instruction won’t run at all:
<xsl:variable name="birthday" select="xs:date('next Tuesday')"/>
This is a static error because the stylesheet processor knows
this instruction will fail. On the other hand, we’ll get a runtime
error if we send bad data to the xs:date
constructor while the stylesheet is
being processed:
<xsl:variable name="birthday" select="xs:date(@birthday)"/>
This uses the birthday
attribute of the current node to create a new xs:date
value. If that attribute contains a
value that can be cast as a xs:date
, everything is fine; if the
attribute doesn’t contain valid data, we get a runtime error.
Get XSLT, 2nd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.