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

To
xalan-j-users@xml.apache.org
cc
Subject
strange xsl:system-property() behavior





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?


Reply via email to