neilg       2002/12/06 16:26:09

  Modified:    java/src/org/apache/xerces/parsers XML11Configuration.java
                        DTDConfiguration.java
  Log:
  changes in support of XML 1.1.
  
  Revision  Changes    Path
  1.2       +26 -14    
xml-xerces/java/src/org/apache/xerces/parsers/XML11Configuration.java
  
  Index: XML11Configuration.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/XML11Configuration.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- XML11Configuration.java   31 Jul 2002 14:08:12 -0000      1.1
  +++ XML11Configuration.java   7 Dec 2002 00:26:08 -0000       1.2
  @@ -60,13 +60,12 @@
   import java.io.IOException;
   
   import org.apache.xerces.impl.Constants;
  -import org.apache.xerces.impl.XML11DocumentScannerImpl;
  -import org.apache.xerces.impl.XML11DTDScannerImpl;
  +import org.apache.xerces.impl.XMLVersionDetector;
   import org.apache.xerces.impl.XMLEntityManager;
  -import org.apache.xerces.impl.XML11EntityManager;
  -import org.apache.xerces.xni.grammars.XMLGrammarPool;
  +import org.apache.xerces.impl.dv.DTDDVFactory;
   
   import org.apache.xerces.util.SymbolTable;
  +import org.apache.xerces.xni.grammars.XMLGrammarPool;
   import org.apache.xerces.xni.XNIException;
   import org.apache.xerces.xni.parser.XMLComponent;
   import org.apache.xerces.xni.parser.XMLComponentManager;
  @@ -77,8 +76,9 @@
   /**
    * This class is the configuration used to parse XML 1.1 documents.
    * It extends the StandardParserConfiguration by making
  - * use of classes which extend the basic scanner and entity management
  - * implementations.  
  + * use of a special scanner which detects the version of the document
  + * being scanned and modifies the pipeline to employ
  + * scanners optimal for the document being scanned.
    *
    * @author Neil Graham, IBM
    *
  @@ -90,6 +90,13 @@
       //
       // Constants
       //
  +    protected final static String XML11_DATATYPE_VALIDATOR_FACTORY = 
"org.apache.xerces.impl.dv.dtd.XML11DTDDVFactoryImpl";
  +
  +    // 
  +    // Data
  +    //
  +
  +    protected XMLVersionDetector fVersionDetector = null;
   
       //
       // Constructors
  @@ -150,19 +157,24 @@
   
       // factory methods
   
  -    /** Creates an entity manager. */
  -    protected XMLEntityManager createEntityManager() {
  -        return new XML11EntityManager();
  -    } // createEntityManager():XMLEntityManager
  -
       /** Create a document scanner. */
       protected XMLDocumentScanner createDocumentScanner() {
  -        return new XML11DocumentScannerImpl();
  +        if(fVersionDetector == null) {
  +            fVersionDetector = new XMLVersionDetector();
  +        }
  +        return fVersionDetector;
       } // createDocumentScanner():XMLDocumentScanner
   
       /** Create a DTD scanner. */
       protected XMLDTDScanner createDTDScanner() {
  -        return new XML11DTDScannerImpl();
  +        if(fVersionDetector == null) {
  +            fVersionDetector = new XMLVersionDetector();
  +        }
  +        return fVersionDetector;
       } // createDTDScanner():XMLDTDScanner
   
  +    /** Create a datatype validator factory. */
  +    protected DTDDVFactory createDatatypeValidatorFactory() {
  +        return DTDDVFactory.getInstance(XML11_DATATYPE_VALIDATOR_FACTORY);
  +    } // createDatatypeValidatorFactory():DatatypeValidatorFactory
   } // class XML11Configuration
  
  
  
  1.9       +9 -3      
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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DTDConfiguration.java     19 Nov 2002 01:41:38 -0000      1.8
  +++ DTDConfiguration.java     7 Dec 2002 00:26:08 -0000       1.9
  @@ -322,7 +322,7 @@
               //WARN_ON_UNDECLARED_ELEMDEF,   // from XMLDTDScannerImpl
               //ALLOW_JAVA_ENCODINGS,         // from XMLEntityManager
               CONTINUE_AFTER_FATAL_ERROR,
  -            //LOAD_EXTERNAL_DTD,    // from XMLDTDScannerImpl
  +            LOAD_EXTERNAL_DTD,    // from XMLDTDScannerImpl
               //NOTIFY_BUILTIN_REFS,  // from XMLDocumentFragmentScannerImpl
               //NOTIFY_CHAR_REFS,              // from XMLDocumentFragmentScannerImpl
               //WARN_ON_DUPLICATE_ENTITYDEF,  // from XMLEntityManager
  @@ -334,7 +334,7 @@
           //setFeature(WARN_ON_UNDECLARED_ELEMDEF, false);  // from XMLDTDScannerImpl
           //setFeature(ALLOW_JAVA_ENCODINGS, false);      // from XMLEntityManager
           setFeature(CONTINUE_AFTER_FATAL_ERROR, false);
  -        //setFeature(LOAD_EXTERNAL_DTD, true);      // from XMLDTDScannerImpl
  +        setFeature(LOAD_EXTERNAL_DTD, true);      // from XMLDTDScannerImpl
           //setFeature(NOTIFY_BUILTIN_REFS, false);   // from 
XMLDocumentFragmentScannerImpl
           //setFeature(NOTIFY_CHAR_REFS, false);      // from 
XMLDocumentFragmentScannerImpl
           //setFeature(WARN_ON_DUPLICATE_ENTITYDEF, false);   // from XMLEntityManager
  @@ -663,14 +663,20 @@
           if (fDTDScanner != null) {
               if (fDTDProcessor != null) {
                   fDTDScanner.setDTDHandler(fDTDProcessor);
  +                fDTDProcessor.setDTDSource(fDTDScanner);
                   fDTDProcessor.setDTDHandler(fDTDHandler);
  +                fDTDHandler.setDTDSource(fDTDProcessor);
                   
                   fDTDScanner.setDTDContentModelHandler(fDTDProcessor);
  +                fDTDProcessor.setDTDContentModelSource(fDTDScanner);
                   fDTDProcessor.setDTDContentModelHandler(fDTDContentModelHandler);
  +                fDTDContentModelHandler.setDTDContentModelSource(fDTDProcessor);
               }
               else {
                   fDTDScanner.setDTDHandler(fDTDHandler);
  +                fDTDHandler.setDTDSource(fDTDScanner);
                   fDTDScanner.setDTDContentModelHandler(fDTDContentModelHandler);
  +                fDTDContentModelHandler.setDTDContentModelSource(fDTDScanner);
               }
           }
   
  
  
  

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

Reply via email to