XML.orgXML.org
FOCUS AREAS |XML-DEV |XML.org DAILY NEWSLINK |REGISTRY |RESOURCES |ABOUT
OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]
Re: [xml-dev] ANN: Portable Data Component -- start/end

Maybe a future version of XSD will allow creation of components
like this but of generic types so you could have a generic range
type. Then you wouldn't need to have a component for every
possible datatype.

In the meantime the possibilities for 'range' portable components
are endless; some more complex, e.g if units are involved where
you'd need the assertion(s) to include the test that start and end
of range are given in the same units, e.g. price range with currency
unit.

BTW: How would assertions look if XSD allowed the concept of
an abstract 'crossProduct' structure which included abstract
assertions?
----
Stephen D Green



On 16 April 2011 18:04, Costello, Roger L. <costello@mitre.org> wrote:
> Hi Folks,
>
> There are many examples where the start and end time (date, dateTime) must be recorded:
>
> Example #1
>
> Record the start and end time of a meeting. The meeting starts at 9am and ends at 10am:
>
>    <meeting>
>        <start>09:00:00</start>
>        <end>10:00:00</end>
>    </meeting>
>
> Example #2
>
> Record the start and end date of a conference. The conference starts on August 3, 2011 and ends on August 6, 2011:
>
>    <conference>
>        <start>2011-08-03</start>
>        <end>2011-08-06</end>
>    </conference>
>
> Example #3
>
> Sometimes there is a start date but no end date. The person started working for a company on October 9, 1990 and is still employed:
>
>    <employment>
>        <start>1990-10-09</start>
>    </employment>
>
> Example #4
>
> A person left Beijing at 4pm on Saturday and arrived in New York at 2pm the same day!
>
>    <flight>
>        <start>2007-07-08T16:00:00+08:00</start>
>        <end>2007-07-08T14:00:00-05:00</end>
>    </flight>
>
>
> Rule: End Value is Greater Than Start Value
>
> Common among all the examples is that the end value is greater than the start value:
>
>  - The meeting end time is greater than the meeting start time.
>  - The conference end date is greater than the conference start date.
>  - The flight end date/time, when adjusted for time zone differences, is greater than the flight start date/time.
>
> There is a co-constraint between the value of end and the value of start.
>
> This is an ideal candidate for a portable data component. We can create an XML Schema complexType that declares the start and end elements, and use the new assert element to express the co-constraint:
>
>    <xs:complexType name="start-end-date-time">
>        <xs:sequence>
>            <xs:element name="start">
>                <xs:simpleType>
>                    <xs:union memberTypes="xs:date xs:time
>                                           xs:dateTime" />
>                </xs:simpleType>
>            </xs:element>
>            <xs:element name="end" minOccurs="0">
>                <xs:simpleType>
>                    <xs:union memberTypes="xs:date xs:time
>                                           xs:dateTime" />
>                </xs:simpleType>
>            </xs:element>
>        </xs:sequence>
>        <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()" />
>    </xs:complexType>
>
> Comments welcome.
>
> /Roger
>
> _______________________________________________________________________
>
> XML-DEV is a publicly archived, unmoderated list hosted by OASIS
> to support XML implementation and development. To minimize
> spam in the archives, you must subscribe before posting.
>
> [Un]Subscribe/change address: http://www.oasis-open.org/mlmanage/
> Or unsubscribe: xml-dev-unsubscribe@lists.xml.org
> subscribe: xml-dev-subscribe@lists.xml.org
> List archive: http://lists.xml.org/archives/xml-dev/
> List Guidelines: http://www.oasis-open.org/maillists/guidelines.php
>
>


[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index]


News | XML in Industry | Calendar | XML Registry
Marketplace | Resources | MyXML.org | Sponsors | Privacy Statement

Copyright 1993-2007 XML.org. This site is hosted by OASIS