I fixed a similar problem in the Xalan CVS a few months ago. Can you try
with Xalan CVS and see if it fixes your problem? If you have problem
building  a driver from cvs, I can also give you a jar file to try.

Regards,

Morris Kwan
XSLT Development
IBM Toronto Lab
Tel: (905)413-3729
Email: [EMAIL PROTECTED]



                                                                                
                                                     
                      Daniel Rabe                                               
                                                     
                      <[EMAIL PROTECTED]        To:       "'[EMAIL PROTECTED]'" 
<[EMAIL PROTECTED]>             
                      om>                      cc:                              
                                                     
                                               Subject:  Problem with spaces in 
directory paths                                      
                      03/03/2003 10:06                                          
                                                     
                      PM                                                        
                                                     
                                                                                
                                                     
                                                                                
                                                     



We're running into a problem using Xerces/Xalan when our XSL files reside
in a directory that contains a space in the name (like "Program Files").
The problem seems to happen when the following conditions are met:


- The XSL file uses the document() function to load a secondary XML file
(in this case, localization strings). The secondary XML file gets loaded
okay.


- The secondary XML file contains entities to load other XML files, for
example:
<!ENTITY english SYSTEM "test_msg_en.xml">
... later referenced as...
&english;


If the XML and XSL files are all in directories that don't have spaces,
everything works fine... but when you ship a product like ours, it's
typically installed into "Program Files".


The error is
javax.xml.transform.TransformerException: java.net.MalformedURLException:
no protocol: test_msg_en.xml


I've been able to duplicate a very similar problem using the
org.apache.xalan.xslt.Process class from the command line.
The command line I'm using is:
%JAVA_HOME%\bin\java -showversion org.apache.xalan.xslt.Process -in
test.xml -xsl "sub dir\test.xsl"


In this scenario, "test.xml" is in the current working directory (which
contains no spaces in its path), and "test.xsl" and its associated files
are in the subdirectory "sub dir". If I use "subdir" (no spaces),
everything works fine. I've tried using "sub+dir" and "sub%20dir", but none
of those work.


This sample scenario is a little different from our original code because
it's not trying to resolve the entity (the &english from above), so I'm not
sure it's going through the same code path... however, any insight into how
to work around this problem would be appreciated.


The specific error in this case is:
(Location of error unknown)XSLT Error
(javax.xml.transform.TransformerConfigurationException):
javax.xml.transform.TransformerException: java.net.MalformedURLException:
no protocol: sub dir\test.xsl


Config info:
Xerces-J 2.2.1 and Xalan 2.4.1 on Windows 2000 or Windows XP.


Thanks!
Daniel Rabe






Reply via email to