Mike
This function may be used anywhere, and not just in the context of an
element of calendar type. You therefore can't use the value of
dfdl:calendarTimeZone. You should just return empty string if there is no
timezone component.
We also need 3 variations of the function, like XPath 2.0:
dfdl:timeZoneFromDateTime($arg as xs:dateTime?) as xs:string?
dfdl:timeZoneFromDate($arg as xs:date?) as xs:string?
dfdl:timeZoneFromTime($arg as xs:time?) as xs:string?
Regards
Steve Hanson
Architect, Data Format Description Language (DFDL)
Co-Chair, OGF DFDL Working Group
IBM SWG, Hursley, UK
smh@uk.ibm.com
tel:+44-1962-815848
From: Mike Beckerle
To: dfdl-wg@ogf.org,
Date: 18/03/2013 18:29
Subject: [DFDL-WG] Action 206 - proposed timezone-from-dateTime
function
Sent by: dfdl-wg-bounces@ogf.org
I examined use of ISO durations, but that introduces a bunch of
unnecessary complexity for implementors. I decided to propose instead use
of an ISO 8601Time zone designator as an xs:string.
Proposed:
dfdl:timeZoneFromDateTime($arg as xs:dateTime?) as xs:string?
Summary: Returns the timezone component of $arg if any. If $arg has a
timezone component, then the result is a string in the format of an ISO
Time zone designator. Interpreted as an offset from UTC, its value may
range from +14:00 to -14:00 hours, both inclusive. UTC is represented as
"Z".
If the $arg has no timezone component, then the value of the
dfdl:calendarTimeZone property expressed as an ISO 8601 Time zone
designator is returned, or ""(empty string) is returned if the
dfdl:calendarTimeZone property is ""(empty string).
Examples
dfdl:timeZoneFromDateTime(xs:dateTime("1999-05-31T13:20:00-05:00"))
returns the xs:string value "-05:00".
dfdl:timeZoneFromDateTime(xs:dateTime("2000-06-12T13:20:00Z")) returns the
xs:string value "Z".
dfdl:timeZoneFromDateTime(xs:dateTime("2004-08-27T00:00:00")) with
dfdl:calendarTimeZone='America/New_York' returns the xs:string "-05:00".
---------- Forwarded message ----------
From: Mike Beckerle
Date: Tue, Jan 29, 2013 at 9:05 AM
Subject: Re: clarification needed: datetime and time
To: dfdl-wg@ogf.org
I also believe this means we are missing this function:
fn:timezone-from-dateTime($arg as xs:dateTime?) as xs:dayTimeDuration?
However, we don't have this result type dayTimeDuration, so rather than
add that type, which is a structured thing like: PnDTnHnMnS, we should say
it matches the iso 8601 time zone suffix on an iso datetime.
So "Z" or "-05:00" etc.
Since it is not exactly the existing Xpath function, perhaps this function
should not have this name or not be in the fn namespace. Come to think of
it. I don't think we ever say exactly what the fn: prefix is bound to in
DFDL.
On Tue, Jan 29, 2013 at 8:55 AM, Mike Beckerle
wrote:
In the below. Should xs:datetime have trailing timezone as well? Right now
it has no tz component.
Seems to me it should to match iso 8601 format which is what XSD uses.
Also, I believe we now think ZZZ is not the right behavior, and seems to
be deprecated in ICU. The right thing is ZZZZZ.
calendarPatternKind
Enum
Valid values ‘explicit’, ‘implicit’
‘explicit’ means the pattern is given by dfdl:calendarPattern,
‘implicit’ means the pattern is derived from the XML schema date/time
type.
Logical Type
Default Pattern
xs:date
yyyy-MM-dd
xs:dateTime
yyyy-MM-dd'T'HH:mm:ss
xs:time
HH:mm:ssZZZ
Annotation: dfdl:element, dfdl:simpleType
--
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology |
www.tresys.com
--
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology |
www.tresys.com
--
Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology |
www.tresys.com
--
dfdl-wg mailing list
dfdl-wg@ogf.org
https://www.ogf.org/mailman/listinfo/dfdl-wg
Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number
741598.
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU