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: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to