Subject: RE: [xsl] date calculations From: "Michael Kay" <mike@xxxxxxxxxxxx> Date: Mon, 26 Mar 2007 09:50:14 +0100 |
> > StartTime + Duration > > This feels a bit wrong to me, along the lines of augmenting > the xml with defaulted attributes - by doing this aren't you > then relying on the input being validating every time the > transform runs, even if the xml hasn't changed? Yes, you're relying on the input being typed, and it would certainly be my recommendation to make that assumption explicit in your code, for example by writing: <xsl:template match="document-node(schema-element(invoice))"> ... process an invoice ... </xsl:template> <xsl:template match="/"> <xsl:message terminate="yes">Input document is not a validated invoice!</xsl:message> </xsl:template> That's a better way of doing it than writing a cast, I think. > > You don't seem to be gaining much over being explicit with > the types in the stylesheet... In this example, that's possibly true. When you're calling a lot of functions, I think the benefits become clearer. I have to admit I wasn't a great enthusiast for doing date-time-duration arithmetic by overloading the arithmetic operators rather than by using custom functions. Two reasons: (a) it means I can't infer that the result of an addition will always be numeric, which means I have to insert extra run-time type checking, and (b) with a custom function like fn:add-duration-to-dateTime(xs:dateTime, xs:dayTimeDuration) you would get implicit casting of untyped values to the expected types of the operands, which you don't get with the overloaded + operator. But that's water under the bridge. Michael Kay http://www.saxonica.com/
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: [xsl] date calculations, Andrew Welch | Thread | RE: [xsl] Static Validation of XSL , Anders Møller |
Re: [xsl] date calculations, Andrew Welch | Date | [xsl] " ' etc, Steve |
Month |