[Home] [By Thread] [By Date] [Recent Entries]
Hi Mukul,
> <xs:assert test="if (exists(end)) then (end gt start) else true()" />
Actually, that was my first attempt. However, SAXON gave me an error on this data:
<flight>
<start>2007-07-08T16:00:00+08:00</start>
<end>2007-07-08T14:00:00-05:00</end>
</flight>
Error: "flight does not match the assertion"
That's why I formulated the assertion as I did, with type checking and type casting.
/Roger
-----Original Message-----
From: Mukul Gandhi [mailto:gandhi.mukul@g...]
Sent: Saturday, April 16, 2011 8:06 PM
To: Costello, Roger L.
Cc: xml-dev@l...
Subject: Re: ANN: Portable Data Component -- start/end
Hi Roger,
Nice example.
There's a minor suggestion though.
On Sat, Apr 16, 2011 at 10:34 PM, Costello, Roger L. <costello@m...> wrote:
> Â Â Â Â <xs:assert test="
> Â Â Â Â Â Â Â if (exists(end)) then
> Â Â Â Â Â Â Â Â Â if (start castable as xs:dateTime) then
> Â Â Â Â Â Â Â Â Â Â Â xs:dateTime(end) gt xs:dateTime(start)
> Â Â Â Â Â Â Â Â Â else if (start castable as xs:date) then
> Â Â Â Â Â Â Â Â Â Â Â xs:date(end) gt xs:date(start)
> Â Â Â Â Â Â Â Â Â else if (start castable as xs:time) then
> Â Â Â Â Â Â Â Â Â Â Â xs:time(end) gt xs:time(start)
> Â Â Â Â Â Â Â Â Â else true()
> Â Â Â Â Â Â Â else true()" />
Since "start" and "end" are typed nodes during assertion evaluation, I
think the above assert expression can be written as follows,
<xs:assert test="if (exists(end)) then (end gt start) else true()" />
--
Regards,
Mukul Gandhi
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |

Cart



