elena       2002/08/16 11:08:38

  Modified:    java/src/org/apache/xerces/impl
                        XMLDocumentFragmentScannerImpl.java
                        XMLNamespaceBinder.java
               java/src/org/apache/xerces/impl/dtd XMLDTDValidator.java
               java/src/org/apache/xerces/impl/xs XMLSchemaValidator.java
               java/src/org/apache/xerces/parsers
                        AbstractXMLDocumentParser.java
                        DTDConfiguration.java
                        StandardParserConfiguration.java
               java/src/org/apache/xerces/xni XMLDocumentHandler.java
               java/src/org/apache/xerces/xni/parser XMLDocumentFilter.java
                        XMLDocumentSource.java
  Log:
  Change XNI to include XMLDocumentHandler.setDocumentSource/getDocumentSource and
  XMLDocumentSource.getDocumentHandler. This change allows us to modify the pipeline 
dynamically,
  in particular we now remove DTDValidator if no DTD grammar is available. This change 
improves parsing
  performance by 7%-12% for medium size files (100k-1M).
  
  Revision  Changes    Path
  1.15      +7 -1      
xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentFragmentScannerImpl.java
  
  Index: XMLDocumentFragmentScannerImpl.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLDocumentFragmentScannerImpl.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- XMLDocumentFragmentScannerImpl.java       13 Aug 2002 22:57:08 -0000      1.14
  +++ XMLDocumentFragmentScannerImpl.java       16 Aug 2002 18:08:37 -0000      1.15
  @@ -484,6 +484,12 @@
           fDocumentHandler = documentHandler;
       } // setDocumentHandler(XMLDocumentHandler)
   
  +
  +    /** Returns the document handler */
  +    public XMLDocumentHandler getDocumentHandler(){
  +        return fDocumentHandler;
  +    }
  +
       //
       // XMLEntityHandler methods
       //
  
  
  
  1.21      +22 -6     
xml-xerces/java/src/org/apache/xerces/impl/XMLNamespaceBinder.java
  
  Index: XMLNamespaceBinder.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/XMLNamespaceBinder.java,v
  retrieving revision 1.20
  retrieving revision 1.21
  diff -u -r1.20 -r1.21
  --- XMLNamespaceBinder.java   14 Aug 2002 22:51:08 -0000      1.20
  +++ XMLNamespaceBinder.java   16 Aug 2002 18:08:37 -0000      1.21
  @@ -78,6 +78,7 @@
   import org.apache.xerces.xni.parser.XMLComponent;
   import org.apache.xerces.xni.parser.XMLComponentManager;
   import org.apache.xerces.xni.parser.XMLConfigurationException;
  +import org.apache.xerces.xni.parser.XMLDocumentSource;
   import org.apache.xerces.xni.parser.XMLDocumentFilter;
   
   /**
  @@ -156,6 +157,8 @@
       /** Document handler. */
       protected XMLDocumentHandler fDocumentHandler;
   
  +    protected XMLDocumentSource fDocumentSource;
  +
       // namespaces
   
       /** Namespace support. */
  @@ -346,18 +349,31 @@
       // XMLDocumentSource methods
       //
   
  -    /**
  -     * Sets the document handler to receive information about the document.
  -     *
  -     * @param documentHandler The document handler.
  -     */
  +    /** Sets the document handler to receive information about the document. */
       public void setDocumentHandler(XMLDocumentHandler documentHandler) {
           fDocumentHandler = documentHandler;
       } // setDocumentHandler(XMLDocumentHandler)
   
  +    /** Returns the document handler */
  +    public XMLDocumentHandler getDocumentHandler() {
  +        return fDocumentHandler;
  +    } // setDocumentHandler(XMLDocumentHandler)
  +
  +
       //
       // XMLDocumentHandler methods
       //
  +
  +    /** Sets the document source */
  +    public void setDocumentSource(XMLDocumentSource source){
  +        fDocumentSource = source;
  +    } // setDocumentSource
  +
  +    /** Returns the document source */
  +    public XMLDocumentSource getDocumentSource (){
  +        return fDocumentSource;
  +    } // getDocumentSource
  +
   
       /**
        * This method notifies the start of a general entity.
  
  
  
  1.30      +25 -7     
xml-xerces/java/src/org/apache/xerces/impl/dtd/XMLDTDValidator.java
  
  Index: XMLDTDValidator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dtd/XMLDTDValidator.java,v
  retrieving revision 1.29
  retrieving revision 1.30
  diff -u -r1.29 -r1.30
  --- XMLDTDValidator.java      13 Aug 2002 22:57:09 -0000      1.29
  +++ XMLDTDValidator.java      16 Aug 2002 18:08:37 -0000      1.30
  @@ -88,6 +88,7 @@
   import org.apache.xerces.xni.parser.XMLComponent;
   import org.apache.xerces.xni.parser.XMLComponentManager;
   import org.apache.xerces.xni.parser.XMLConfigurationException;
  +import org.apache.xerces.xni.parser.XMLDocumentSource;
   import org.apache.xerces.xni.parser.XMLDocumentFilter;
   
   import java.util.Enumeration;
  @@ -261,6 +262,7 @@
       /** Document handler. */
       protected XMLDocumentHandler fDocumentHandler;
   
  +    protected XMLDocumentSource fDocumentSource;
       // grammars
   
       /** DTD Grammar. */
  @@ -559,19 +561,31 @@
       // XMLDocumentSource methods
       //
   
  -    /**
  -     * Sets the document handler to receive information about the document.
  -     * 
  -     * @param documentHandler The document handler.
  -     */
  +    /** Sets the document handler to receive information about the document. */
       public void setDocumentHandler(XMLDocumentHandler documentHandler) {
           fDocumentHandler = documentHandler;
       } // setDocumentHandler(XMLDocumentHandler)
   
  +    /** Returns the document handler */
  +    public XMLDocumentHandler getDocumentHandler() {
  +        return fDocumentHandler;
  +    } // setDocumentHandler(XMLDocumentHandler)
  +
  +
       //
       // XMLDocumentHandler methods
       //
   
  +    /** Sets the document source */
  +    public void setDocumentSource(XMLDocumentSource source){
  +        fDocumentSource = source;
  +    } // setDocumentSource
  +
  +    /** Returns the document source */
  +    public XMLDocumentSource getDocumentSource (){
  +        return fDocumentSource;
  +    } // getDocumentSource
  +
       /**
        * The start of the document.
        *
  @@ -708,7 +722,6 @@
       throws XNIException {
   
           handleStartElement(element, attributes);
  -
           // call handlers
           if (fDocumentHandler != null) {
               fDocumentHandler.startElement(element, attributes, augs);
  @@ -1800,6 +1813,11 @@
                                              "MSG_GRAMMAR_NOT_FOUND",
                                              new Object[]{ element.rawname},
                                              XMLErrorReporter.SEVERITY_ERROR);
  +            }
  +            // modify pipeline
  +            if (fDocumentSource !=null ) {
  +                fDocumentSource.setDocumentHandler(fDocumentHandler);
  +                return;
               }
           }
           else {
  
  
  
  1.82      +20 -6     
xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java
  
  Index: XMLSchemaValidator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaValidator.java,v
  retrieving revision 1.81
  retrieving revision 1.82
  diff -u -r1.81 -r1.82
  --- XMLSchemaValidator.java   14 Aug 2002 22:51:08 -0000      1.81
  +++ XMLSchemaValidator.java   16 Aug 2002 18:08:37 -0000      1.82
  @@ -97,6 +97,7 @@
   import org.apache.xerces.xni.parser.XMLComponent;
   import org.apache.xerces.xni.parser.XMLComponentManager;
   import org.apache.xerces.xni.parser.XMLConfigurationException;
  +import org.apache.xerces.xni.parser.XMLDocumentSource;
   import org.apache.xerces.xni.parser.XMLEntityResolver;
   import org.apache.xerces.xni.parser.XMLInputSource;
   
  @@ -380,6 +381,7 @@
       /** Document handler. */
       protected XMLDocumentHandler fDocumentHandler;
       
  +    protected XMLDocumentSource fDocumentSource;
   
       //
       // XMLComponent methods
  @@ -445,18 +447,30 @@
       // XMLDocumentSource methods
       //
   
  -    /**
  -     * Sets the document handler to receive information about the document.
  -     *
  -     * @param documentHandler The document handler.
  -     */
  +    /** Sets the document handler to receive information about the document. */
       public void setDocumentHandler(XMLDocumentHandler documentHandler) {
           fDocumentHandler = documentHandler;
       } // setDocumentHandler(XMLDocumentHandler)
   
  +    /** Returns the document handler */
  +    public XMLDocumentHandler getDocumentHandler() {
  +        return fDocumentHandler;
  +    } // setDocumentHandler(XMLDocumentHandler)
  +
  +
       //
       // XMLDocumentHandler methods
       //
  +
  +    /** Sets the document source */
  +    public void setDocumentSource(XMLDocumentSource source){
  +        fDocumentSource = source;
  +    } // setDocumentSource
  +
  +    /** Returns the document source */
  +    public XMLDocumentSource getDocumentSource (){
  +        return fDocumentSource;
  +    } // getDocumentSource
   
       /**
        * The start of the document.
  
  
  
  1.13      +15 -1     
xml-xerces/java/src/org/apache/xerces/parsers/AbstractXMLDocumentParser.java
  
  Index: AbstractXMLDocumentParser.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/AbstractXMLDocumentParser.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- AbstractXMLDocumentParser.java    7 May 2002 19:29:04 -0000       1.12
  +++ AbstractXMLDocumentParser.java    16 Aug 2002 18:08:38 -0000      1.13
  @@ -70,6 +70,7 @@
   import org.apache.xerces.xni.XMLString;
   import org.apache.xerces.xni.XNIException;
   import org.apache.xerces.xni.parser.XMLParserConfiguration;
  +import org.apache.xerces.xni.parser.XMLDocumentSource;
   
   import org.xml.sax.InputSource;
   import org.xml.sax.SAXException;
  @@ -99,6 +100,9 @@
       /** True if inside DTD. */
       protected boolean fInDTD;
   
  +    /** Document source*/
  +    protected XMLDocumentSource fDocumentSource;
  +
       //
       // Constructors
       //
  @@ -391,6 +395,16 @@
           throws XNIException {
       } // processingInstruction(String, XMLString, Augmentations)
   
  +    
  +    /** Sets the document source */
  +    public void setDocumentSource(XMLDocumentSource source){
  +        fDocumentSource = source;
  +    } // setDocumentSource
  +
  +    /** Returns the document source */
  +    public XMLDocumentSource getDocumentSource (){
  +        return fDocumentSource;
  +    } // getDocumentSource
       //
       // XMLDTDHandler methods
       //
  
  
  
  1.5       +6 -1      
xml-xerces/java/src/org/apache/xerces/parsers/DTDConfiguration.java
  
  Index: DTDConfiguration.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/DTDConfiguration.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- DTDConfiguration.java     10 Jun 2002 23:50:27 -0000      1.4
  +++ DTDConfiguration.java     16 Aug 2002 18:08:38 -0000      1.5
  @@ -80,6 +80,7 @@
   import org.apache.xerces.xni.parser.XMLComponentManager;
   import org.apache.xerces.xni.parser.XMLConfigurationException;
   import org.apache.xerces.xni.parser.XMLDocumentScanner;
  +import org.apache.xerces.xni.parser.XMLDocumentSource;
   import org.apache.xerces.xni.parser.XMLDTDScanner;
   import org.apache.xerces.xni.parser.XMLInputSource;
   import org.apache.xerces.xni.parser.XMLPullParserConfiguration;
  @@ -638,12 +639,16 @@
           // setup document pipeline
           if (fDTDValidator != null) {
               fScanner.setDocumentHandler(fDTDValidator);
  +            // filters
               fDTDValidator.setDocumentHandler(fNamespaceBinder);
  +            fDTDValidator.setDocumentSource(fScanner);
               fNamespaceBinder.setDocumentHandler(fDocumentHandler);
  +            fNamespaceBinder.setDocumentSource(fDTDValidator);
           }
           else {
               fScanner.setDocumentHandler(fNamespaceBinder);
               fNamespaceBinder.setDocumentHandler(fDocumentHandler);
  +            fNamespaceBinder.setDocumentSource(fDTDValidator);
           }
   
           fLastComponent = fNamespaceBinder;
  
  
  
  1.23      +5 -2      
xml-xerces/java/src/org/apache/xerces/parsers/StandardParserConfiguration.java
  
  Index: StandardParserConfiguration.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/StandardParserConfiguration.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- StandardParserConfiguration.java  3 Apr 2002 14:55:50 -0000       1.22
  +++ StandardParserConfiguration.java  16 Aug 2002 18:08:38 -0000      1.23
  @@ -69,6 +69,7 @@
   import org.apache.xerces.xni.XNIException;
   import org.apache.xerces.xni.parser.XMLConfigurationException;
   import org.apache.xerces.xni.parser.XMLComponentManager;
  +import org.apache.xerces.xni.parser.XMLDocumentSource;
   import org.apache.xerces.xni.parser.XMLInputSource;
   
   /**
  @@ -235,7 +236,9 @@
               }
               fLastComponent = fSchemaValidator;
               fNamespaceBinder.setDocumentHandler(fSchemaValidator);
  -            fSchemaValidator.setDocumentHandler(fDocumentHandler);            
  +            
  +            fSchemaValidator.setDocumentHandler(fDocumentHandler);
  +            fSchemaValidator.setDocumentSource(fNamespaceBinder);
           } 
   
   
  
  
  
  1.7       +11 -1     
xml-xerces/java/src/org/apache/xerces/xni/XMLDocumentHandler.java
  
  Index: XMLDocumentHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/xni/XMLDocumentHandler.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- XMLDocumentHandler.java   29 Jan 2002 01:15:19 -0000      1.6
  +++ XMLDocumentHandler.java   16 Aug 2002 18:08:38 -0000      1.7
  @@ -57,6 +57,8 @@
   
   package org.apache.xerces.xni;
   
  +import org.apache.xerces.xni.parser.XMLDocumentSource;
  +
   /**
    * The document handler interface defines callback methods to report
    * information items in XML documents. Parser components interested in 
  @@ -335,5 +337,13 @@
        *                   Thrown by handler to signal an error.
        */
       public void endDocument(Augmentations augs) throws XNIException;
  +
  +
  +    /** Sets the document source. */
  +    public void setDocumentSource(XMLDocumentSource source);
  +
  +
  +    /** Returns the document source. */
  +    public XMLDocumentSource getDocumentSource();
   
   } // interface XMLDocumentHandler
  
  
  
  1.3       +2 -1      
xml-xerces/java/src/org/apache/xerces/xni/parser/XMLDocumentFilter.java
  
  Index: XMLDocumentFilter.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/xni/parser/XMLDocumentFilter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- XMLDocumentFilter.java    29 Jan 2002 01:15:19 -0000      1.2
  +++ XMLDocumentFilter.java    16 Aug 2002 18:08:38 -0000      1.3
  @@ -70,4 +70,5 @@
   public interface XMLDocumentFilter 
       extends XMLDocumentHandler, XMLDocumentSource {
   
  +
   } // interface XMLDocumentFilter
  
  
  
  1.4       +4 -1      
xml-xerces/java/src/org/apache/xerces/xni/parser/XMLDocumentSource.java
  
  Index: XMLDocumentSource.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/xni/parser/XMLDocumentSource.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- XMLDocumentSource.java    29 Jan 2002 01:15:19 -0000      1.3
  +++ XMLDocumentSource.java    16 Aug 2002 18:08:38 -0000      1.4
  @@ -81,4 +81,7 @@
       /** Sets the document handler. */
       public void setDocumentHandler(XMLDocumentHandler handler);
   
  +    /** Returns the document handler */
  +    public XMLDocumentHandler getDocumentHandler();
  +
   } // interface XMLDocumentSource
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to