I think that you are using JDK 1.4+. The Xalan-J 2.7.0 on your classpath is not used when you did the transformation. For more detail, please refer to http://xml.apache.org/xalan-j/faq.html#faq-N100D6
Hope it helps,
Christine Li
XSLT Development
IBM Toronto Lab
Tel: (905)413-2601
Email: [EMAIL PROTECTED]
Mike Brown <[EMAIL PROTECTED]>
29/08/2006 12:43 PM |
|
Xalan-J 2.7.0's xsl:system-property() gives me strange results:
$ cat dummy.xml
<?xml version="1.0" encoding="utf-8"?><dummy/>
$ cat sysprops.xsl
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="yes"/>
<xsl:template match="/">
<system-properties>
<version><xsl:value-of select="system-property('xsl:version')"/></version>
<vendor><xsl:value-of select="system-property('xsl:vendor')"/></vendor>
<vendor-url><xsl:value-of select="system-property('xsl:vendor-url')"/></vendor-url>
<xsl:if test="system-property('f:version')" xmlns:f="http://xmlns.4suite.org/ext">
<f:version><xsl:value-of select="system-property('f:version')"/></f:version>
</xsl:if>
</system-properties>
</xsl:template>
</xsl:stylesheet>
$ xalan -IN dummy.xml -XSL sysprops.xsl -OUT out
file:///portnoy/home/mike/xml/test/sysprops.xsl; Line #12; Column #89; Do not currently do anything with namespace http://xmlns.4suite.org/ext in property: f:version
file:///portnoy/home/mike/xml/test/sysprops.xsl; Line #13; Column #73; Do not currently do anything with namespace http://xmlns.4suite.org/ext in property: f:version
$ cat out
<?xml version="1.0" encoding="UTF-8"?>
<system-properties>
<version>1</version>
<vendor>Apache Software Foundation</vendor>
<vendor-url>http://xml.apache.org/xalan-j</vendor-url>
<f:version xmlns:f="http://xmlns.4suite.org/ext">1</f:version>
</system-properties>
1. Why the namespace warnings? First, "Do not currently do anything with namespace" doesn't make sense (is this a request being made of me?) ... Second, I don't see why it's showing up; there's nothing wrong with my use of the namespace there.
2. Why is there a "1" as the value of the foreign system property? It shouldn't exist at all.
3. Furthermore, if I invoke org.apache.xalan.xslt.Process from the command line and give it a -v or -V argument, I'm told I'm running version 2.4.1, whereas I'm clearly running 2.7.0:
$ cd /home/mike/xml
$ /bin/ls -l xalan
lrwxr-xr-x 1 mike mike 13 Aug 29 10:29 xalan -> xalan-j_2_7_0
$ java -classpath /home/mike/xml/xalan/bin/xalan.jar:/home/mike/xml/xalan/bin/xml-apis.jar:/home/mike/xml/xalan/bin/xercesImpl.jar org.apache.xalan.xslt.Process -V
>>>>>>> Xalan Version Xalan Java 2.4.1, <<<<<<<
Error: No stylesheet or input xml is specified. Run this command without any option for usage instructions.
These are bugs, right?