[
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 [email protected]
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: [email protected]
For additional commands, e-mail: [email protected]