Subject: RE: [xsl] Error recovery from casting in XSLT 2.0 From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Tue, 19 Jun 2007 12:08:50 +0100 |
There's a function error() that you can use for this purpose. Michael Kay http://www.saxonica.com > -----Original Message----- > From: Fraser Crichton [mailto:fc@xxxxxxxxxxxxxxxxxxxx] > Sent: 19 June 2007 11:47 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > Subject: [xsl] Error recovery from casting in XSLT 2.0 > > Hi, there, > > I'm new to XSLT 2.0 and have a question about recovering from > casting errors, say for instance I'm trying to cast to a > date, I'd do something like - > > <xsl:function name="f:castToDate" as="xs:date"> > <xsl:param name="date-string" as="xs:string" /> > > <xsl:sequence select="if ($date-string castable as xs:date) > then xs:date($date-string) > else if ($date-string castable as xs:dateTime) > then xs:date(substring-before($date-string,'T')) > else()" /> > </xsl:function> > > What I'm wondering is how do I raise some kind of error in the final > else() if the function gets passed something it can't cast? e.g. > > <xsl:function name="f:castToDate" as="xs:date"> > <xsl:param name="date-string" as="xs:string" /> > > <xsl:sequence select="if ($date-string castable as xs:date) > then xs:date($date-string) > else if ($date-string castable as xs:dateTime) > then xs:date(substring-before($date-string,'T')) > else("NASTY ERROR CAN'T BE RETURNED BECAUSE I'M A DATE")" /> > </xsl:function> > > Or do I have to write another wrapper function? I'm only a > few hundred pages into the first of Mr Kay's books so forgive > me if this is a bit basic. > > Cheers, > > Fraser
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Error recovery from casting i, Fraser Crichton | Thread | Re: [xsl] How to overrite default r, Karlmarx Rajangam |
[xsl] Error recovery from casting i, Fraser Crichton | Date | Re: [xsl] node is in a nodelist?, Kai Hackemesser |
Month |