Schema for the represenation of the ruleset of one or more time zones.
Copyright 2006 Alan L. Lovejoy. All rights reserved.
A list of time zone rule sets. Generally, the list would constitute a comple set of timezones in a time zone repository or database, although it could also be any partial list--or even an empty list.
Specifies the ruleset of a single time zone. The time zone is identified by a well-known unique key. The rule model of the time zone ruleset enables specification of the default name of the time zone, the geographic coordinates of the time zone's nominal location, the transition rules that specify the annually-recurring dates within the year when the time zone's offset and/or default abbreviation change to new values, and the diachronic history of annually-recurring transition rules (i.e., the transition rules from one annually-recurring regime to another.) The date and time when transitions from one offset/abbreviation to another occur, or when transitions from one annually-recurring ruleset to another occur, may be specified (independently for each transition) in terms of any calendrical system.
In the simplest case, there can be zero occurrences of the "annualTransitionPolicy" element, in which case the "initialAnnualTransitionPolicy" element represents annually-recurring transition rules that are in effect from the infinite past into the infinite future (which is all that most time-zone-aware systems can handle--and many systems and programming languages are even less sophisticated than that.)
Abstract type for representing all the annually-recurring dates and times within each year when a time zone transitions from one offset/abbreviation tuple to another.
In the simplest case, there can be zero occurrences of the "intraYearTransition" element, in which case the "endOfYearTransition" element represents the fixed offset and default abbreviation of the time zone for each entire year during which the annually-recurring ruleset specified by the instance is in effect.
A TimeZoneAnnualTransitionPolicy that has been in effect since the infinite past (so it has no effectiveYear.) Whether or not the instance's annualy-recurring intra-year ruleset will be in effect into the infinite future is not specified.
A TimeZoneAnnualTransitionPolicy that has been in effect since the year specified by the value of the "effectiveYear" element. The calendar and time zone relativity of the specified effective year are as indicated by the values of the "effectiveYearCalendar" and "effectiveYearRelativity" elements (see chronos:CalendarKey and chronos:TimeZoneRelativity for more info.)
The value of the "isSymmetric" element flags whether or not the following conditions are satisfied: a) the instance specifies neither an offset/abbreviation transition on the first day of the year, nor does the predecessor annual transition policy specify an offset/abbreviation transition on the last day of the year, or b) none of the qualifying transitions from condition "a" actually change the zone offset or abbreviation (no-op transitions sometimes occur in the source data, because the time zone rule compiler isn't clever enough to remove them.) If either condition "a" or condition "b" is satisfied, the value of "isSymmetric" will be true, otherwise false. If "isSymmetric" is false, *****then it is not safe to ignore any difference in time zone relativity between that of the "effectiveYear" as specified by the instance and that of any query parameters being used to find the zone offset/name/abbreviation tuple that is in effect as of some point in time*****.
Represents the salient properties of a time zone (default abbreviation, offset for local time and offset for local standard time) that are in effect for some portion of a year (perhaps an entire year.) If stdTimeOffsetSecondsFromUT = stdTimeOffsetSecondsFromUT, then Standard Time is in effect. Otherwise, some other time regime is in effect (almost always "summer" or "daylight saving" time, but there are (rare) other cases than just those two.) The "DST delta" (or whatever it is considered to be) is given by offsetSecondsFromUT - stdTimeOffsetSecondsFromUT.
Note that localTime = universalTime + offsetSecondsFromUT (as required both by international standards and longstanding practice--although this convention is not universally followed--with POSIX time zone rule literals and Javascript being the most prominent oddballs.)
Represents the time-of-day, and the time-zone relativity thereof, when the AnnuallyRecurringTimeZoneTransition represented by an instance expires and is replaced by a successor transition rule (see chronos:TimeZoneRelativity for more info.) Note that time zone transition rules can be legally mandated to occur at some time-of-day relative to any of Universal Time, Standard Time or nominal/"wall clock" time. In the United States, the transition time-of-day is always specified relative to local "wall clock" time. In the European Union, the transition time-of-day is always specified relative to Univeral Time (so that all the countries in the European Union transition at the same moment, regardless of their time zone offset.)
Represents the annually-recurring date (using an element whose value is an AnnualDate) when the AnnuallyRecurringTimeZoneTransition represented by an instance expires and is replaced by a successor transition rule (see chronos:TimeZoneRelativity for more info.) The time zone relativity of the date is as specified by the inherited element "relativity."
Represents the annually-recurring date (using an element whose value is a day-of-year ordinal) when the AnnuallyRecurringTimeZoneTransition represented by an instance expires and is replaced by a successor transition rule (see chronos:TimeZoneRelativity for more info.) The time zone relativity of the day-of-year is as specified by the inherited element "relativity." The specified "transitionDayOfYear" includes any leap days (there may be more than one in the same year in some calendar systems.)
Represents the salient properties of a time zone (abbreviation, offset for local time and offset for local standard time) that are in effect for some portion of a year (perhaps an entire year.) The rule specified by an instance expires at the end of the year. The moment the rule it specifies goes into effect depends upon its context--its rule may or may not go into effect at the start of the year.
Represents the time zone relativity of an associated date/time value. If the value = universal, it indicates that the associated time value is specified relative to Universal Time. If the value = standard, it indicates that the associated time value is specified relative to Standard Time in the time zone whose rule set is being specified (so no DST offset is included). If the value = nominal, it indicates that the associated time value is specified relative to "nominal time" ("wall clock time") in the time zone whose rule set is being specified (so both the offset for Standard Time and the DST offset delta are included.)