Subjects
Home
Xalan extension functions
Fomatting question serializing DOM with pretty print
xalan with pull parser
Cannot find the declaration
Apache Xalan drop support to run on JRE 1 1 x
Why does Doctype change processing of a document
Node set to XML string via Java extensions in Xalan J: possible?
Templates/Transformers + thread safety???
Problem evaluating xpath with muliple prefix with different namespace
remove an arbitrary attribute from xsl output
Xalan3 XSLT 2 0 XPath 2 0 support?
Problem using compiled translets with Xalan !!
Xalan and jstl 1 1 problem with transform tag
NullPointer in DOM2DTM getLocalName
URIResolvers base parameter with xsltc and cascaded imports
Performance problem for Xalan J on intel dual core
Standard libraries in JAXP?
Serializing a DOM tree to XML file, customize entities replacement
Library Conflict Involving BCEL Library
A question on how users are using <xsl:message >
Kevin Cormier as a new Apache Xalan J committer
Struggling to iterate over tokenized string
Xalan count() trouble
Problem with recursive xpath
Error when switching to java 1 5
document( ' ')
Problem with Xalan2 7 0 transformation
cr/lf options
entity encoded XML
can xalan transform 2 xml using one xslt?
Xalan J JIRA defect review Monday October 16, 2006 from 2:00 to 3:30 pm ED
xsl transform with cdata section elements
xslt parameters not expanded
Weird behavior of XPath evaluate()
How to avoid <xsl:message > instruction prints stylesheet file informations ?
Cannot find SimpleTransform subdirectory after installing Xalan J
recover from document not found exceptions
jdk1 5 and Xalan jar differences?
Performance Issue
Error/Bug adding floating point numbers
XPathAPI: eval exp using nodes with default namespace
modifying xalan to output invalid XML
NullPointerException
mege two separate xml nodes into one
Is this a XALAN document identification bug?
is StylesheetRoot really java io Serializable ?
transform() fails for DOMSource but succeeds for StreamSource
Thoughts on Transformer parameter passing
HELP, Xalan and jstl 1 1 problem with transformer
Problem with XPath namespace axis?
string utils:replace deleting search string if replacement string is an HTML
help with enumeration values pls
xalan 2 5 1 vs 2 7 performance question
How to insert/update in XML document
HTML Serialization and Handling of Ampersands in HREF Attributes
XHTML link tag stripping
SystemId Unknown; Line #24; Column #49; java lang NullPointerException
xpath text() help
Apostrophe problem with xalan 2 7 0
How to set variables in XML document?
Links
Home
Oracle database error code ...
 
Search:  
Power your search with and, or, +, -, or "some phrase" operators.
Problem with spaces in directory paths

Problem with spaces in directory paths

2003-03-03       - By Daniel Rabe
Reply:     1     2     3  

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

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=US-ASCII">
<META NAME="Generator" CONTENT="MS Exchange Server version 5.5.2653.12">
<TITLE>Problem with spaces in directory paths</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=2>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 &quot
;Program Files&quot;). The problem seems to happen when the following conditions
are met:</FONT></P>

<P><FONT SIZE=2>- 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.</FONT></P>

<P><FONT SIZE=2>- The secondary XML file contains entities to load other XML
files, for example:</FONT>
<BR><FONT SIZE=2>&lt;!ENTITY english SYSTEM &quot;test_msg_en.xml&quot;&gt;<
/FONT>
<BR><FONT SIZE=2>... later referenced as...</FONT>
<BR><FONT SIZE=2>&amp;english;</FONT>
</P>

<P><FONT SIZE=2>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 &quot;Program Files&quot;. </FONT></P>

<P><FONT SIZE=2>The error is</FONT>
<BR><FONT SIZE=2>javax.xml.transform.TransformerException: java.net
.MalformedURLException: no protocol: test_msg_en.xml</FONT>
</P>

<P><FONT SIZE=2>I've been able to duplicate a very similar problem using the
org.apache.xalan.xslt.Process class from the command line.</FONT>
<BR><FONT SIZE=2>The command line I'm using is:</FONT>
<BR><FONT SIZE=2>%JAVA_HOME%\bin\java -showversion org.apache.xalan.xslt
.Process -in test.xml -xsl &quot;sub dir\test.xsl&quot;</FONT>
</P>

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

<P><FONT SIZE=2>This sample scenario is a little different from our original
code because it's not trying to resolve the entity (the &amp;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.</FONT></P>

<P><FONT SIZE=2>The specific error in this case is:</FONT>
<BR><FONT SIZE=2>(Location of error unknown)XSLT Error (javax.xml.transform
.TransformerConfigurationException): javax.xml.transform.TransformerException:
java.net.MalformedURLException: no protocol: sub dir\test.xsl</FONT></P>

<P><FONT SIZE=2>Config info:</FONT>
<BR><FONT SIZE=2>Xerces-J 2.2.1 and Xalan 2.4.1 on Windows 2000 or Windows XP.<
/FONT>
</P>

<P><FONT SIZE=2>Thanks!</FONT>
<BR><FONT SIZE=2>Daniel Rabe</FONT>
</P>

</BODY>
</HTML>