You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sa...@apache.org on 2002/05/28 21:35:27 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/trax SAX2DOM.java TemplatesHandlerImpl.java TemplatesImpl.java TransformerFactoryImpl.java TransformerImpl.java

santiagopg    02/05/28 12:35:27

  Modified:    java/src/org/apache/xalan/xsltc/cmdline Transform.java
               java/src/org/apache/xalan/xsltc/runtime/output
                        TransletOutputHandlerFactory.java
               java/src/org/apache/xalan/xsltc/trax SAX2DOM.java
                        TemplatesHandlerImpl.java TemplatesImpl.java
                        TransformerFactoryImpl.java TransformerImpl.java
  Log:
  Added 'experimental-output' attribute to transformer factory.
  
  Revision  Changes    Path
  1.19      +3 -2      xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Transform.java
  
  Index: Transform.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/cmdline/Transform.java,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- Transform.java	23 May 2002 14:52:09 -0000	1.18
  +++ Transform.java	28 May 2002 19:35:26 -0000	1.19
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: Transform.java,v 1.18 2002/05/23 14:52:09 santiagopg Exp $
  + * @(#)$Id: Transform.java,v 1.19 2002/05/28 19:35:26 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -203,7 +203,8 @@
   	    }
   
   	    // Transform the document
  -	    TransletOutputHandlerFactory tohFactory = TransletOutputHandlerFactory.newInstance();
  +	    TransletOutputHandlerFactory tohFactory = 
  +		TransletOutputHandlerFactory.newInstance();
   	    tohFactory.setOutputType(TransletOutputHandlerFactory.STREAM);
   	    tohFactory.setEncoding(_translet._encoding);
   	    tohFactory.setOutputMethod(_translet._method);
  
  
  
  1.7       +35 -16    xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/TransletOutputHandlerFactory.java
  
  Index: TransletOutputHandlerFactory.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/runtime/output/TransletOutputHandlerFactory.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- TransletOutputHandlerFactory.java	28 May 2002 18:07:41 -0000	1.6
  +++ TransletOutputHandlerFactory.java	28 May 2002 19:35:26 -0000	1.7
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransletOutputHandlerFactory.java,v 1.6 2002/05/28 18:07:41 tmiller Exp $
  + * @(#)$Id: TransletOutputHandlerFactory.java,v 1.7 2002/05/28 19:35:26 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -66,11 +66,16 @@
   import java.io.IOException;
   import java.io.OutputStream;
   
  +import org.w3c.dom.Node;
   import org.xml.sax.SAXException;
   import org.xml.sax.ContentHandler;
   import org.xml.sax.ext.LexicalHandler;
   import org.apache.xalan.xsltc.runtime.*;
  +import org.apache.xalan.xsltc.TransletException;
   import org.apache.xalan.xsltc.TransletOutputHandler;
  +import javax.xml.parsers.ParserConfigurationException;
  +
  +import org.apache.xalan.xsltc.trax.SAX2DOM;
   
   public class TransletOutputHandlerFactory {
   
  @@ -83,7 +88,8 @@
       private int    _outputType     = STREAM;
       private OutputStream _ostream  = System.out;
       private Writer _writer         = null;
  -    private ContentHandler _handler= null;
  +    private Node           _node   = null;
  +    private ContentHandler _handler    = null;
       private LexicalHandler _lexHandler = null;
   
       static public TransletOutputHandlerFactory newInstance() {
  @@ -120,7 +126,18 @@
   	_lexHandler = lex;
       }
   
  -    public TransletOutputHandler getTransletOutputHandler() throws IOException {
  +    public void setNode(Node node) {
  +	_node = node;
  +    }
  +
  +    public Node getNode() {
  +	return (_handler instanceof SAX2DOM) ? ((SAX2DOM)_handler).getDOM() 
  +	   : null;
  +    }
  +
  +    public TransletOutputHandler getTransletOutputHandler() 
  +	throws IOException, ParserConfigurationException 
  +    {
   	switch (_outputType) {
   	    case STREAM:
   		if (_method == null) {
  @@ -145,26 +162,28 @@
   			new StreamTextOutput(_writer, _encoding);
   		}
   	    break;
  +	    case DOM:
  +		_lexHandler = null;
  +		_handler = (_node != null) ? new SAX2DOM(_node) : 
  +					     new SAX2DOM();
  +		// falls through
   	    case SAX:
  -                if (_method == null) {
  -                    _method = "xml";    // default case
  -                }
  +		if (_method == null) {
  +		    _method = "xml";    // default case
  +		}
   
  -                if (_method.equalsIgnoreCase("xml")) {
  -                    return (_lexHandler == null) ? 
  +		if (_method.equalsIgnoreCase("xml")) {
  +		    return (_lexHandler == null) ? 
   			new SAXXMLOutput(_handler, _encoding) :
   			new SAXXMLOutput(_handler, _lexHandler, _encoding);
  -                }
  -                else if (_method.equalsIgnoreCase("html")) {
  -                    return (_lexHandler == null) ? 
  +		}
  +		else if (_method.equalsIgnoreCase("html")) {
  +		    return (_lexHandler == null) ? 
   			new SAXHTMLOutput(_handler, _encoding) :
   			new SAXHTMLOutput(_handler, _lexHandler, _encoding);
  -                }
  -            break;
  -
  -	    case DOM:
  -		// TODO
  +		}
   	    break;
  +
   	}
   	return null;
       }
  
  
  
  1.12      +2 -2      xml-xalan/java/src/org/apache/xalan/xsltc/trax/SAX2DOM.java
  
  Index: SAX2DOM.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/SAX2DOM.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- SAX2DOM.java	24 Apr 2002 17:03:17 -0000	1.11
  +++ SAX2DOM.java	28 May 2002 19:35:26 -0000	1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: SAX2DOM.java,v 1.11 2002/04/24 17:03:17 santiagopg Exp $
  + * @(#)$Id: SAX2DOM.java,v 1.12 2002/05/28 19:35:26 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -80,7 +80,7 @@
   
   import org.apache.xalan.xsltc.runtime.Constants;
   
  -class SAX2DOM implements ContentHandler, Constants {
  +public class SAX2DOM implements ContentHandler, Constants {
   
       private Document _root = null;
       private Stack _nodeStk = new Stack();
  
  
  
  1.8       +8 -3      xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesHandlerImpl.java
  
  Index: TemplatesHandlerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesHandlerImpl.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- TemplatesHandlerImpl.java	10 May 2002 13:22:33 -0000	1.7
  +++ TemplatesHandlerImpl.java	28 May 2002 19:35:26 -0000	1.8
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TemplatesHandlerImpl.java,v 1.7 2002/05/10 13:22:33 tmiller Exp $
  + * @(#)$Id: TemplatesHandlerImpl.java,v 1.8 2002/05/28 19:35:26 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -78,11 +78,15 @@
   
       private String _systemId;
   
  +    // Temporary
  +    private boolean _experimentalOutput;
  +
       /**
        * Default constructor
        */
  -    protected TemplatesHandlerImpl() {
  +    protected TemplatesHandlerImpl(boolean experimentalOutput) {
   	super(null);
  +	_experimentalOutput = experimentalOutput;
       }
   
       /**
  @@ -168,7 +172,8 @@
   		return null;
   	    }
   
  -	    return(new TemplatesImpl(bytecodes, transletName));
  +	    return new TemplatesImpl(bytecodes, transletName, 
  +				     _experimentalOutput);
   	}
   	catch (CompilerException e) {
   	    return null;
  
  
  
  1.12      +9 -3      xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java
  
  Index: TemplatesImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TemplatesImpl.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- TemplatesImpl.java	24 Apr 2002 17:03:17 -0000	1.11
  +++ TemplatesImpl.java	28 May 2002 19:35:26 -0000	1.12
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TemplatesImpl.java,v 1.11 2002/04/24 17:03:17 santiagopg Exp $
  + * @(#)$Id: TemplatesImpl.java,v 1.12 2002/05/28 19:35:26 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -97,6 +97,9 @@
       // and _bytecodes arrays (above).
       private int _transletIndex = -1;
       
  +    // Temporary
  +    private boolean _experimentalOutput;
  +
       // Our own private class loader - builds Class definitions from bytecodes
       private class TransletClassLoader extends ClassLoader {
   
  @@ -127,9 +130,12 @@
        * The bytecodes for the translet and auxiliary classes, plus the name of
        * the main translet class, must be supplied
        */
  -    protected TemplatesImpl(byte[][] bytecodes, String transletName) {
  +    protected TemplatesImpl(byte[][] bytecodes, String transletName,
  +	boolean experimentalOutput) 
  +    {
   	_bytecodes = bytecodes;
   	_name      = transletName;
  +	_experimentalOutput = experimentalOutput;
       }
   
       /**
  @@ -256,7 +262,7 @@
        */
       public Transformer newTransformer()
   	throws TransformerConfigurationException {
  -        return(new TransformerImpl(getTransletInstance()));
  +        return new TransformerImpl(getTransletInstance(), _experimentalOutput);
       }
   
       /**
  
  
  
  1.38      +10 -5     xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java
  
  Index: TransformerFactoryImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerFactoryImpl.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- TransformerFactoryImpl.java	8 May 2002 13:28:09 -0000	1.37
  +++ TransformerFactoryImpl.java	28 May 2002 19:35:27 -0000	1.38
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformerFactoryImpl.java,v 1.37 2002/05/08 13:28:09 tmiller Exp $
  + * @(#)$Id: TransformerFactoryImpl.java,v 1.38 2002/05/28 19:35:27 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -143,7 +143,7 @@
       // This flags are passed to the compiler
       private boolean _debug = false;
       private boolean _disableInlining = false;
  -
  +    private boolean _experimentalOutput = false;
   
       /**
        * javax.xml.transform.sax.TransformerFactory implementation.
  @@ -220,6 +220,9 @@
   	else if (name.equals("disable-inlining") && value instanceof Boolean) {
   	    _disableInlining = ((Boolean) value).booleanValue();
   	}
  +	else if (name.equals("experimental-output") && value instanceof Boolean) {
  +	    _experimentalOutput = ((Boolean) value).booleanValue();
  +	}
   	else {
   	    // Throw an exception for all other attributes
   	    ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_INVALID_ATTR_ERR, name);
  @@ -342,7 +345,8 @@
   	}
   
   	// Create a Transformer object and store for other calls
  -	Templates templates = new TemplatesImpl(bytecodes,_defaultTransletName);
  +	Templates templates = new TemplatesImpl(bytecodes, _defaultTransletName,
  +					        _experimentalOutput);
   	_copyTransformer = templates.newTransformer();
   	if (_uriResolver != null) _copyTransformer.setURIResolver(_uriResolver);
   	return(_copyTransformer);
  @@ -523,7 +527,7 @@
   	    ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_COMPILE_ERR);
   	    throw new TransformerConfigurationException(err.toString());
   	}
  -	return(new TemplatesImpl(bytecodes, transletName));
  +	return new TemplatesImpl(bytecodes, transletName, _experimentalOutput);
       }
   
       /**
  @@ -536,7 +540,8 @@
        */
       public TemplatesHandler newTemplatesHandler() 
   	throws TransformerConfigurationException { 
  -	final TemplatesHandlerImpl handler = new TemplatesHandlerImpl();
  +	final TemplatesHandlerImpl handler = 
  +	    new TemplatesHandlerImpl(_experimentalOutput);
   	handler.init();
   	return handler;
       }
  
  
  
  1.41      +180 -91   xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java
  
  Index: TransformerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerImpl.java,v
  retrieving revision 1.40
  retrieving revision 1.41
  diff -u -r1.40 -r1.41
  --- TransformerImpl.java	16 May 2002 20:03:54 -0000	1.40
  +++ TransformerImpl.java	28 May 2002 19:35:27 -0000	1.41
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformerImpl.java,v 1.40 2002/05/16 20:03:54 santiagopg Exp $
  + * @(#)$Id: TransformerImpl.java,v 1.41 2002/05/28 19:35:27 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -101,9 +101,11 @@
   
   import org.apache.xalan.xsltc.Translet;
   import org.apache.xalan.xsltc.TransletException;
  +import org.apache.xalan.xsltc.TransletOutputHandler;
   import org.apache.xalan.xsltc.DOMCache;
   import org.apache.xalan.xsltc.dom.*;
   import org.apache.xalan.xsltc.runtime.*;
  +import org.apache.xalan.xsltc.runtime.output.*;
   import org.apache.xalan.xsltc.compiler.*;
   import org.apache.xalan.xsltc.compiler.util.ErrorMsg;
   
  @@ -134,13 +136,19 @@
       private static final String NAMESPACE_FEATURE =
   	"http://xml.org/sax/features/namespaces";
       
  +    private TransletOutputHandlerFactory _tohFactory = null;
  +
  +    // Temporary
  +    private boolean _experimentalOutput;
  +
       /**
        * Implements JAXP's Transformer constructor
        * Our Transformer objects always need a translet to do the actual work
        */
  -    protected TransformerImpl(Translet translet) {
  +    protected TransformerImpl(Translet translet, boolean experimentalOutput) {
   	_translet = (AbstractTranslet)translet;
   	_properties = createOutputProperties();
  +	_experimentalOutput = experimentalOutput;
       }
   
       /**
  @@ -165,24 +173,159 @@
   	    throw new TransformerException(err.toString());
   	}
   
  -	_handler = getOutputHandler(result);
  -	if (_handler == null) {
  -	    ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_NO_HANDLER_ERR);
  -	    throw new TransformerException(err.toString());
  +	// Pass output properties to the translet
  +	setOutputProperties(_translet, _properties);
  +	    
  +	if (_experimentalOutput) {
  +	    final TransletOutputHandler toHandler = 
  +		getExperimentalOutputHandler(result);
  +
  +	    if (toHandler == null) {
  +		ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_NO_HANDLER_ERR);
  +		throw new TransformerException(err.toString());
  +	    }
  +
  +	    if (_uriResolver != null) {
  +		_translet.setDOMCache(this);
  +	    }
  +
  +	    transform(source, toHandler, _encoding);
  +
  +	    if (result instanceof DOMResult) {
  +		((DOMResult)result).setNode(_tohFactory.getNode());
  +	    }
   	}
  +	else {
  +	    _handler = getOutputHandler(result);
  +	    if (_handler == null) {
  +		ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_NO_HANDLER_ERR);
  +		throw new TransformerException(err.toString());
  +	    }
   
  -	if (_uriResolver != null) {
  -	    _translet.setDOMCache(this);
  +	    if (_uriResolver != null) {
  +		_translet.setDOMCache(this);
  +	    }
  +
  +	    // Run the transformation
  +	    transform(source, (ContentHandler)_handler, _encoding);
  +
  +	    // If a DOMResult, then we must set the DOM Tree so it can
  +	    // be retrieved later 
  +	    if (result instanceof DOMResult) {
  +		((DOMResult)result).setNode(((SAX2DOM)_handler).getDOM());
  +	    }
   	}
  +    }
   
  -	// Run the transformation
  -	transform(source, (ContentHandler)_handler, _encoding);
  +    /**
  +     * Create an output handler for the transformation output based on 
  +     * the type and contents of the TrAX Result object passed to the 
  +     * transform() method. 
  +     */
  +    private TransletOutputHandler getExperimentalOutputHandler(Result result) 
  +	throws TransformerException 
  +    {
  +	// Try to get the encoding from the translet (may not be set)
  +	if (_translet._encoding != null) {
  +            _encoding = _translet._encoding;
  +        }
  +        else {
  +            _encoding = "UTF-8"; // default output encoding
  +        }
  +
  +	_tohFactory = TransletOutputHandlerFactory.newInstance();
  +	_tohFactory.setEncoding(_encoding);
  +
  +	// Is _method already set? TODO
  +	_tohFactory.setOutputMethod(_translet._method);
   
  -	// If a DOMResult, then we must set the DOM Tree so it can
  -	// be retrieved later 
  -	if (result instanceof DOMResult) {
  -	    ((DOMResult)result).setNode(((SAX2DOM)_handler).getDOM());
  +	// Return the content handler for this Result object
  +	try {
  +	    // Result object could be SAXResult, DOMResult, or StreamResult 
  +	    if (result instanceof SAXResult) {
  +                final SAXResult target = (SAXResult)result;
  +                final ContentHandler handler = target.getHandler();
  +
  +		_tohFactory.setHandler(handler);
  +		if (handler instanceof LexicalHandler) {
  +		    _tohFactory.setLexicalHandler((LexicalHandler) handler);
  +		}
  +		_tohFactory.setOutputType(TransletOutputHandlerFactory.SAX);
  +		return _tohFactory.getTransletOutputHandler();
  +            }
  +	    else if (result instanceof DOMResult) {
  +		_tohFactory.setNode(((DOMResult) result).getNode());
  +		_tohFactory.setOutputType(TransletOutputHandlerFactory.DOM);
  +		return _tohFactory.getTransletOutputHandler();
  +            }
  +	    else if (result instanceof StreamResult) {
  +		// Get StreamResult
  +		final StreamResult target = (StreamResult) result;	
  +
  +		// StreamResult may have been created with a java.io.File,
  +		// java.io.Writer, java.io.OutputStream or just a String
  +		// systemId. 
  +
  +		_tohFactory.setOutputType(TransletOutputHandlerFactory.STREAM);
  +
  +		// try to get a Writer from Result object
  +		final Writer writer = target.getWriter();
  +		if (writer != null) {
  +		    _tohFactory.setWriter(writer);
  +		    return _tohFactory.getTransletOutputHandler();
  +		}
  +
  +		// or try to get an OutputStream from Result object
  +		final OutputStream ostream = target.getOutputStream();
  +		if (ostream != null) {
  +		    _tohFactory.setOutputStream(ostream);
  +		    return _tohFactory.getTransletOutputHandler();
  +		}
  +
  +		// or try to get just a systemId string from Result object
  +		String systemId = result.getSystemId();
  +		if (systemId == null) {
  +		    ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_NO_RESULT_ERR);
  +                    throw new TransformerException(err.toString());
  +		}
  +
  +		// System Id may be in one of several forms, (1) a uri
  +		// that starts with 'file:', (2) uri that starts with 'http:'
  +		// or (3) just a filename on the local system.
  +		URL url = null;
  +		if (systemId.startsWith("file:")) {
  +                    url = new URL(systemId);
  +		    _tohFactory.setOutputStream(
  +			new FileOutputStream(url.getFile()));
  +		    return _tohFactory.getTransletOutputHandler();
  +                }
  +                else if (systemId.startsWith("http:")) {
  +                    url = new URL(systemId);
  +                    final URLConnection connection = url.openConnection();
  +		    _tohFactory.setOutputStream(connection.getOutputStream());
  +		    return _tohFactory.getTransletOutputHandler();
  +                }
  +                else {
  +                    // system id is just a filename
  +                    url = new File(systemId).toURL();
  +		    _tohFactory.setOutputStream(
  +			new FileOutputStream(url.getFile()));
  +		    return _tohFactory.getTransletOutputHandler();
  +                }
  +	    }
   	}
  +        // If we cannot write to the location specified by the SystemId
  +        catch (UnknownServiceException e) {
  +            throw new TransformerException(e);
  +        }
  +        catch (ParserConfigurationException e) {
  +            throw new TransformerException(e);
  +        }
  +        // If we cannot create the file specified by the SystemId
  +        catch (IOException e) {
  +            throw new TransformerException(e);
  +        }
  +	return null;
       }
   
       /**
  @@ -281,80 +424,6 @@
   	return null;
       }
   
  -
  -/*************
  -    private ContentHandler getOutputHandler(Result result) 
  -	throws TransformerException {
  -	// Try to get the encoding from Translet (may not be set)
  -	if (_translet._encoding != null) {
  -	    _encoding = _translet._encoding;
  -	}
  -	else {
  -	    _encoding = "UTF-8"; // default output encoding
  -	}
  -
  -	try {
  -	    String systemId = result.getSystemId();
  -
  -	    // Handle SAXResult output handler
  -	    if (result instanceof SAXResult) {
  -		final SAXResult target = (SAXResult)result;
  -		final ContentHandler handler = target.getHandler();
  -		// Simple as feck, just pass the SAX handler back...
  -		if (handler != null) return handler;
  -	    }
  -	    // Handle StreamResult output handler
  -	    else if (result instanceof StreamResult) {
  -		final StreamResult target = (StreamResult)result;
  -		final OutputStream ostream = target.getOutputStream();
  -		final Writer writer = target.getWriter();
  -
  -		if (ostream != null)
  -		    return (new DefaultSAXOutputHandler(ostream, _encoding));
  -		else if (writer != null)
  -		    return (new DefaultSAXOutputHandler(writer, _encoding));
  -		else if ((systemId != null) && systemId.startsWith("file:")) {
  -		    final URL url = new URL(systemId);
  -		    final OutputStream os = new FileOutputStream(url.getFile());
  -		    return (new DefaultSAXOutputHandler(os, _encoding));
  -		}
  -	    }
  -	    // Handle DOMResult output handler
  -	    else if (result instanceof DOMResult) {
  -		return (new SAX2DOM());
  -	    }
  -
  -	    // Common, final handling of all input sources, only used if the
  -	    // other contents of the Result object could not be used
  -	    if (systemId != null) {
  -		if ((new File(systemId)).exists()) systemId = "file:"+systemId;
  -		final URL url = new URL(systemId);
  -		final URLConnection connection = url.openConnection();
  -		final OutputStream ostream = connection.getOutputStream();
  -		return(new DefaultSAXOutputHandler(ostream, _encoding));
  -	    }
  -	    else {
  -		ErrorMsg err = new ErrorMsg(ErrorMsg.JAXP_NO_RESULT_ERR);
  -		throw new TransformerException(err.toString());
  -	    }
  -	}
  -	// If we cannot write to the location specified by the SystemId
  -	catch (UnknownServiceException e) {
  -	    throw new TransformerException(e);
  -	}
  -	// If we cannot create a SAX2DOM adapter
  -	catch (ParserConfigurationException e) {
  -	    ErrorMsg err = new ErrorMsg(ErrorMsg.SAX2DOM_ADAPTER_ERR);
  -	    throw new TransformerException(err.toString());
  -	}
  -	// If we cannot create the file specified by the SystemId
  -	catch (IOException e) {
  -	    throw new TransformerException(e);
  -	}
  -    }
  -
  -**********************/
  -
       /**
        * Set the internal DOMImpl that will be used for the next transformation
        */
  @@ -539,15 +608,35 @@
       /**
        * Internal transformation method - uses the internal APIs of XSLTC
        */
  +    private void transform(Source src, TransletOutputHandler handler, 
  +	String encoding) throws TransformerException 
  +    {
  +	try {
  +	    _translet.transform(getDOM(src, 0), handler);
  +	}
  +	catch (TransletException e) {
  +	    if (_errorListener != null)	postErrorToListener(e.getMessage());
  +	    throw new TransformerException(e);
  +	}
  +	catch (RuntimeException e) {
  +	    if (_errorListener != null)	postErrorToListener(e.getMessage());
  +	    throw new TransformerException(e);
  +	}
  +	catch (Exception e) {
  +	    if (_errorListener != null)	postErrorToListener(e.getMessage());
  +	    throw new TransformerException(e);
  +	}
  +    }
  +
  +    /**
  +     * Internal transformation method - uses the internal APIs of XSLTC
  +     */
       private void transform(Source src, ContentHandler sax, String encoding)
   	throws TransformerException {
   	try {
   	    // Build an iternal DOMImpl from the TrAX Source
   	    DOMImpl dom = getDOM(src, 0);
   
  -	    // Pass output properties to the translet
  -	    setOutputProperties(_translet, _properties);
  -	    
   	    // This handler will post-process the translet output
   	    TextOutput handler;
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org