You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@xalan.apache.org by Steve Hathaway <sh...@e-z.net> on 2012/05/22 07:05:34 UTC
Xalan-C dates-and-times // and more
Hi,
The Xalan-C GSoC 2012 project is moving forward. Here is an outline of
what EXSLT functions are implemented and which ones need work.
Samuel will be spending his primary effort toward implementing the
XPath functions in the http://exslt.org/dates-and-times namespace.
Sincerely,
Steven J. Hathaway
GSoC Mentor
-------- Original Message --------
Subject: Xalan-C dates-and-times // and more
Date: Mon, 21 May 2012 09:25:18 -0700 (PDT)
From: shathawa@e-z.net
To: Samuel Medeiros <cc...@gmail.com>
CC: shathaway@apache.org
Welcome Samuel,
Here is some discussion of the exslt library and how it applies
to our coding efforts this summer. I will continue to mentor
and review your work.
Namespace: "http://exslt.org/dates-and-times"
This set of functions needs the most work. Only the
"date-time()" function has an implementation.
To be compliant with the current XML standards, these
functions will only implement the Gregorian Calendar Algorithm.
There is no year zero. The year -0001 = 1 (BC) is the immediate
predecessor to year 0001 = 1 (AD). This conforms to an earlier
draft for ISO dates. The XML definition for xs:dateTime does
not have a year zero. The XML definition for xs:dateTime does
not support the Julian calendar, only the proleptic Gregorian
Calendar algorithm is supported.
The ratified ISO dates include a year zero, but this has
not been updated into the XML standards for the xs:dateTime.
The xs:dateTime datatype has no year zero.
[1] http://www.w3.org/TR/xmlschema-2/#dateTime
"date-time()" already implemented
The first order of business is to create the methods by which
dates and durations can be recognized and processed.
Then it should be simple to wrap these methods into XPath
function extensions so they can be incorporated into the XPath
interpreter.
The exslt dates-and-times namespace is described in
[2] http://www.exslt.org/date/index.html
The XPath exslt functions to be implemented in this namespace are
add()
add-duration()
date()
date-time() -- Already Implemented
day-abbreviation()
day-in-month()
day-in-week()
day-in-year()
day-name()
day-of-week-in-month()
difference()
duration()
format-date()
hour-in-day()
leap-year()
minute-in-hour()
month-abbreviation()
month-in-year()
month-name()
parse-date()
seconds-in-minute()
seconds()
sum()
time()
week-in-month()
week-in-year()
year()
date-format()
It is currenly unclear how locale spelling for dates,
months, and their abbreviations is to be handled.
This becomes an implementation dependent issue.
Should we provide a base locale for spelling that can
be overwritten using a set of exslt functions?
Such a set of functions could be:
set-day-names(days of week names)
set-day-abbr(days of week abbreviations)
set-month-names(month names)
set-month-abbr(month abbreviations)
Namespace: "http://exslt.org/strings"
Most functions in this group are already implemented. The
implemented functions return string objects.
New exslt functions in this group for implementation are
replace(), split(), and tokenize(). These three functions
create and return node-set objects.
Namespace: "http://exslt.org/dynamic"
We already have the "evaluate()" function.
New exslt functions in this group for implementation are
map(), max(), min(), sum().
Hold off implementing these until after the dates-and-times
namespace is complete. This will require the processing
of node-set trees.
Namespace: "http://exslt.org/math"
All functions in this group are already implemented.
Namespace: "http://exslt.org/sets"
All functions in this group are already implemented.
Namespace: "http://exslt.org/common"
All functions in this group are already implemented.
The<document> element is easier to implement in Java.
Significant rework for Xalan-C is required and will take
more time than we have for the summer.
Thread-Safe Programming
I have identified some system date-time functions that are not
thread-safe. I will describe these issues later along with tools
and programming practices to accommodate their use.
Sincerely,
Steven J. Hathaway
Xalan Documentation Project