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]