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