I have the following problem when I try to use Xalan20D07 together with Tomcat 3.2.1.
It occurs also with earlier versions of Xalan 2. I am using Windows NT 4 SP6, JDK1.3 and
start Tomcat standalone with the provided unmodified startup scripts.

Here is an excerpt from my very basic servlet.
-------------------------------------------------------------------------------------
 1:    public void doGet(HttpServletRequest request,
 2:                      HttpServletResponse response)
 3:      throws IOException, ServletException {
 4:	try
 5:	{
 6:
 7:		TransformerFactory tFactory = TransformerFactory.newInstance();
 8:		InputStream is_xsl = getServletContext().getResourceAsStream("WEB-INF/foo.xsl");
 9:		Transformer transformer = tFactory.newTransformer(new StreamSource(is_xsl));
10:
11:		InputStream is_xml = getServletContext().getResourceAsStream("WEB-INF/foo.xml");
12:		String s = getStringFromInputStream(is_xml);
13:		System.out.println(s);
-------------------------------------------------------------------------------------

When I run the examples provided with Xalan20D07 standalone outside of a servlet environment
they all work.
When I run it insid of Tomcat I get the following exception (Hello.java is my servlet)
which is thrown on line 8 in the above code excerpt:
-------------------------------------------------------------------------------------
javax.xml.transform.TransformerConfigurationException: Namespace not supported by SAXParser
        at org.apache.xalan.processor.TransformerFactoryImpl.newTemplates(TransformerFacto
ryImpl.java:749)
        at org.apache.xalan.processor.TransformerFactoryImpl.newTransformer(TransformerFac
toryImpl.java:601)
        at Hello.doGet(Hello.java:22)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:740)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
        at org.apache.tomcat.core.ServletWrapper.doService(ServletWrapper.java:404)
        at org.apache.tomcat.core.Handler.service(Handler.java:286)
        at org.apache.tomcat.core.ServletWrapper.service(ServletWrapper.java:372)
        at org.apache.tomcat.core.ContextManager.internalService(ContextManager.java:797)
        at org.apache.tomcat.core.ContextManager.service(ContextManager.java:743)
        at org.apache.tomcat.service.http.HttpConnectionHandler.processConnection(HttpConn
ectionHandler.java:210)
        at org.apache.tomcat.service.TcpWorkerThread.runIt(PoolTcpEndpoint.java:416)
        at org.apache.tomcat.util.ThreadPool$ControlRunnable.run(ThreadPool.java:498)
        at java.lang.Thread.run(Thread.java:484)
-------------------------------------------------------------------------------------
My lib folder contains the xerces.jar and the xalan.jar which come with Xalan20D07.

This is what I think is the problem:
in the Tomcat lib directory is among other jars parser.jar which is presumably needed
for parsing the configuration files like web.xml.
This jar file contains the org.xml.sax classes. And so does xerces.jar which is part
of my web application. It seems that the two sets of classes are not the same version
and that the ones from parser.jar get loaded first.

I think this is the the source of the problems I get.
Does anyone have made the same experience, want to have a look at this or even
have a solution proposal ?

Any help greatly appreciated !

- Sven Ehrke