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 <mbeckerle.dfdl@gmail.com>
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 <mbeckerle.dfdl@gmail.com>
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 <mbeckerle.dfdl@gmail.com>
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