[Date Prev]
| [Thread Prev]
| [Thread Next]
| [Date Next]
--
[Date Index]
| [Thread Index]
RE: [xml-dev] ANN: Portable Data Component -- start/end
- From: "Costello, Roger L." <costello@mitre.org>
- To: "xml-dev@lists.xml.org" <xml-dev@lists.xml.org>
- Date: Sun, 17 Apr 2011 04:53:42 -0400
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@gmail.com]
Sent: Saturday, April 16, 2011 8:06 PM
To: Costello, Roger L.
Cc: xml-dev@lists.xml.org
Subject: Re: [xml-dev] 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@mitre.org> 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]