[Home] [By Thread] [By Date] [Recent Entries]

  • From: "Costello, Roger L." <costello@m...>
  • To: "xml-dev@l..." <xml-dev@l...>
  • 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@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]


Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member