[ 
https://issues.apache.org/jira/browse/XALANC-728?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13241014#comment-13241014
 ] 

Steven J. Hathaway commented on XALANC-728:
-------------------------------------------

Samuel,

For this project, you will first need to construct your development
platform which consists of a Windows, Linux, or Unix platform with
supported C/C++ compilers and debug utilities.

You then build the [1] Xerces-C 3.1.1 XML Parser Library from the source
distribution package // or from the Xerces-C subversion repository.

You then build the Xalan-C 1.11 [2] (from subversion repository).

You will want both a DEBUG build and a RELEASE build.  The most current
documentation for the Xalan-C is on my committer's web site.  Any documentation
corrections, or additions should be posted to the xalan-dev@xml.apache.org
mail list.

  http://www.apache.org/~shathaway

You will need to become familiar with how to extend the Function class.

You should use the Xalan/Xerces memory management instead of doing
your own C++ new() and delete() methods.

You should learn how to propagate errors back through the XPath
interpreter to the underlying XSLT stylesheet processor.

Each EXSLT, and otherwise external function, needs to be registered
by namespace, function name, an instance of your Function class
to the Transformer.  External functions are registered using the
installExternalFunction() method, and removed by calling the
uninstallExternalFunction() method.  The EXSLT functions have their
own initializer that is called when an instance of the Transformer
is created, or static content initialized.

Your EXSLT functions should be coded as to be reentrant and thread-safe
because several transformations can run conurrently in separate threads.

You will probably want to first create your own external functions
for testing before we commit the configuration changes to the
static initializer for the Xalan Transformer.

HOW TO GET THE SOURCES

[1] Xerces-C
    http://xerces.apache.org/xerces-c/download.cgi

[2] Xalan-C 1.11 
    svn checkout http://svn.apache.org/repos/asf/xalan/c/trunk

I have written several XPath extension libraries using a combination
of C and C++ code.  I will post my libraries for use and review
on my committer's web site.  The comments in this code can be
very instructive.  Because they mix the C and C++ languages, they
are not appropriate for Apache inclusion into the Xalan-C++ library.


The preference for coding EXSLT functions is to strictly use C++.

The source directory: XalanEXSLT contains the current set of EXSLT functions.

Exslt function names aready coded are

namespace = http://exslt.org/common
   boolean
   external
   node-set
   number
   RTF
   string
   object-type

namespace = http://exslt.org/dates-and-times
   date-time

namespace = http://exslt.org/dynamic
   evaluate

namespace = http://exslt.org/math
   highest
   lowest
   min
   max
   abs
   random
   acos
   asin
   atan
   atan2
   cos
   exp
   log
   power
   sin
   sqrt
   tan
   constant

constants
   E
   LN10
   LN2
   LOG2E
   PI
   SQRT1_2
   SQRRT2

namespace = http://exslt.org/sets
   difference
   distinct
   has-same-node
   intersection
   leading
   trailing

namespace = http://exslt.org/strings
   center
   right
   align
   concat
   padding
   encode-uri
   decode-uri


These existing EXSLT functions need to be re-validated and the
missing EXSLT functions need to be added.

Sincerely,
Steven J. Hathaway
Xalan Documentation Project
                
> GSoC Add More EXSLT Functions
> -----------------------------
>
>                 Key: XALANC-728
>                 URL: https://issues.apache.org/jira/browse/XALANC-728
>             Project: XalanC
>          Issue Type: Improvement
>          Components: XPathC
>    Affects Versions: CurrentCVS
>            Reporter: Steven J. Hathaway
>            Assignee: Brian Minchau
>              Labels: XPath, gsoc2012, mentor
>
> Implement a more complete set of EXSLT functions into the Xalan-C XPath 
> environment.
> See:  http://www.exslt.org

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-dev-unsubscr...@xml.apache.org
For additional commands, e-mail: xalan-dev-h...@xml.apache.org

Reply via email to