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/06/04 22:55:13 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/xsltc/trax TransformerHandlerImpl.java TransformerImpl.java

santiagopg    2002/06/04 13:55:13

  Modified:    java/src/org/apache/xalan/xsltc/trax
                        TransformerHandlerImpl.java TransformerImpl.java
  Log:
  Fixed problems with id/key.
  
  Revision  Changes    Path
  1.10      +61 -26    xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerHandlerImpl.java
  
  Index: TransformerHandlerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/xsltc/trax/TransformerHandlerImpl.java,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- TransformerHandlerImpl.java	4 Jun 2002 15:46:36 -0000	1.9
  +++ TransformerHandlerImpl.java	4 Jun 2002 20:55:13 -0000	1.10
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformerHandlerImpl.java,v 1.9 2002/06/04 15:46:36 santiagopg Exp $
  + * @(#)$Id: TransformerHandlerImpl.java,v 1.10 2002/06/04 20:55:13 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -63,6 +63,7 @@
   package org.apache.xalan.xsltc.trax;
   
   import org.xml.sax.*;
  +import org.xml.sax.ext.DeclHandler;
   
   import javax.xml.transform.*;
   import javax.xml.transform.sax.*;
  @@ -77,7 +78,7 @@
   /**
    * Implementation of a JAXP1.1 TransformerHandler
    */
  -public class TransformerHandlerImpl implements TransformerHandler {
  +public class TransformerHandlerImpl implements TransformerHandler, DeclHandler {
   
       private TransformerImpl  _transformer;
       private AbstractTranslet _translet = null;
  @@ -102,6 +103,9 @@
   	// Create a DOMBuilder object and get the handler
   	_dom = new DOMImpl();
   	_handler = _dom.getBuilder();
  +
  +	// Create a new DTD monitor
  +	_dtd = new DTDMonitor();
       }
   
       /**
  @@ -192,12 +196,12 @@
       public void endDocument() throws SAXException {
   	// Signal to the DOMBuilder that the document is complete
   	_handler.endDocument();
  -	// Pass unparsed entity declarations (if any) to the translet 
  -	if (_dtd != null) _translet.setDTDMonitor(_dtd);
  +
   	// Run the transformation now if we have a reference to a Result object
   	if (_result != null) {
   	    try {
   		_transformer.setDOM(_dom);
  +		_transformer.setDTDMonitor(_dtd);	// for id/key
   		_transformer.transform(null, _result);
   	    }
   	    catch (TransformerException e) {
  @@ -308,28 +312,6 @@
       }
   
       /**
  -     * Implements org.xml.sax.DTDHandler.notationDecl()
  -     * End the scope of a prefix-URI Namespace mapping.
  -     * We do not handle this method, and the input is quietly ignored.
  -     */
  -    public void notationDecl(String name, String publicId, String systemId) {
  -	// Not handled by DTDMonitor - ignored
  -    }
  -
  -    /**
  -     * Implements org.xml.sax.DTDHandler.unparsedEntityDecl()
  -     * End the scope of a prefix-URI Namespace mapping.
  -     */
  -    public void unparsedEntityDecl(String name, String publicId,
  -				   String systemId, String notationName)
  -	throws SAXException 
  -    {
  -	// Create new contained for unparsed entities
  -	if (_dtd == null) _dtd = new DTDMonitor();
  -	_dtd.unparsedEntityDecl(name, publicId, systemId, notationName);
  -    }
  -
  -    /**
        * Implements org.xml.sax.ext.LexicalHandler.startDTD()
        */
       public void startDTD(String name, String publicId, String systemId) 
  @@ -359,4 +341,57 @@
   	_handler.endEntity(name);
       }
   
  +    /**
  +     * Implements org.xml.sax.DTDHandler.unparsedEntityDecl()
  +     */
  +    public void unparsedEntityDecl(String name, String publicId, 
  +	String systemId, String notationName) throws SAXException 
  +    {
  +	_dtd.unparsedEntityDecl(name, publicId, systemId, notationName);
  +    }
  +
  +    /**
  +     * Implements org.xml.sax.DTDHandler.notationDecl()
  +     */
  +    public void notationDecl(String name, String publicId, String systemId) 
  +	throws SAXException
  +    {
  +	_dtd.notationDecl(name, publicId, systemId);
  +    }
  +
  +    /**
  +     * Implements org.xml.sax.ext.DeclHandler.attributeDecl()
  +     */
  +    public void attributeDecl(String eName, String aName, String type, 
  +	String valueDefault, String value) throws SAXException 
  +    {
  +	_dtd.attributeDecl(eName, aName, type, valueDefault, value);
  +    }
  +
  +    /**
  +     * Implements org.xml.sax.ext.DeclHandler.elementDecl()
  +     */
  +    public void elementDecl(String name, String model) 
  +	throws SAXException
  +    {
  +	_dtd.elementDecl(name, model);
  +    }
  +
  +    /**
  +     * Implements org.xml.sax.ext.DeclHandler.externalEntityDecl()
  +     */
  +    public void externalEntityDecl(String name, String publicId, String systemId) 
  +	throws SAXException
  +    {
  +	_dtd.externalEntityDecl(name, publicId, systemId);
  +    }
  +
  +    /**
  +     * Implements org.xml.sax.ext.DeclHandler.externalEntityDecl()
  +     */
  +    public void internalEntityDecl(String name, String value) 
  +	throws SAXException
  +    {
  +	_dtd.internalEntityDecl(name, value);
  +    }
   }
  
  
  
  1.42      +19 -10    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.41
  retrieving revision 1.42
  diff -u -r1.41 -r1.42
  --- TransformerImpl.java	28 May 2002 19:35:27 -0000	1.41
  +++ TransformerImpl.java	4 Jun 2002 20:55:13 -0000	1.42
  @@ -1,5 +1,5 @@
   /*
  - * @(#)$Id: TransformerImpl.java,v 1.41 2002/05/28 19:35:27 santiagopg Exp $
  + * @(#)$Id: TransformerImpl.java,v 1.42 2002/06/04 20:55:13 santiagopg Exp $
    *
    * The Apache Software License, Version 1.1
    *
  @@ -131,6 +131,8 @@
       // Pre-set DOMImpl to use as input (used only with TransformerHandlerImpl)
       private DOMImpl _dom = null;
   
  +    private DTDMonitor _dtdMonitor = null;
  +
       private final static String LEXICAL_HANDLER_PROPERTY =
   	"http://xml.org/sax/properties/lexical-handler";
       private static final String NAMESPACE_FEATURE =
  @@ -148,7 +150,8 @@
       protected TransformerImpl(Translet translet, boolean experimentalOutput) {
   	_translet = (AbstractTranslet)translet;
   	_properties = createOutputProperties();
  -	_experimentalOutput = experimentalOutput;
  +	// _experimentalOutput = experimentalOutput;
  +	_experimentalOutput = true;
       }
   
       /**
  @@ -432,18 +435,19 @@
       }
   
       /**
  +     * Set the internal DOMImpl that will be used for the next transformation
  +     */
  +    protected void setDTDMonitor(DTDMonitor dtdMonitor) {
  +	_dtdMonitor = dtdMonitor;
  +    }
  +
  +    /**
        * Builds an internal DOM from a TrAX Source object
        */
       private DOMImpl getDOM(Source source, int mask)
  -	throws TransformerException {
  +	throws TransformerException 
  +    {
   	try {
  -	    // Use the pre-defined DOM if present
  -	    if (_dom != null) {
  -		DOMImpl dom = _dom;
  -		_dom = null; // use only once, so reset to 'null'
  -		return(dom);
  -	    }
  -
   	    DOMImpl dom = null;
   	    DTDMonitor dtd = null;
   
  @@ -574,6 +578,11 @@
   		final XSLTCSource xsltcsrc = (XSLTCSource)source;
   		dtd = xsltcsrc.getDTD();
   		dom = xsltcsrc.getDOM();
  +	    }
  +	    // DOM already set via a call to setDOM()
  +	    else if (_dom != null) {
  +		dtd = _dtdMonitor;	   // must be set via setDTDMonitor()
  +		dom = _dom; _dom = null;   // use only once, so reset to 'null'
   	    }
   	    else {
   		return null;
  
  
  

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