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:   shath...@e-z.net
To:     Samuel Medeiros <ccc.sam...@gmail.com>
CC:     shatha...@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



Reply via email to