[ 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