public NonValidatingConfiguration(SymbolTable symbolTable,
XMLGrammarPool grammarPool,
XMLComponentManager parentSettings) {
super(symbolTable, parentSettings);
// add default recognized features
final String[] recognizedFeatures = {
PARSER_SETTINGS,
NAMESPACES,
//WARN_ON_DUPLICATE_ATTDEF, // from XMLDTDScannerImpl
//WARN_ON_UNDECLARED_ELEMDEF, // from XMLDTDScannerImpl
//ALLOW_JAVA_ENCODINGS, // from XMLEntityManager
CONTINUE_AFTER_FATAL_ERROR,
//LOAD_EXTERNAL_DTD, // from XMLDTDScannerImpl
//NOTIFY_BUILTIN_REFS, // from XMLDocumentFragmentScannerImpl
//NOTIFY_CHAR_REFS, // from XMLDocumentFragmentScannerImpl
//WARN_ON_DUPLICATE_ENTITYDEF // from XMLEntityManager
};
addRecognizedFeatures(recognizedFeatures);
// set state for default features
//setFeature(WARN_ON_DUPLICATE_ATTDEF, false); // from XMLDTDScannerImpl
//setFeature(WARN_ON_UNDECLARED_ELEMDEF, false); // from XMLDTDScannerImpl
//setFeature(ALLOW_JAVA_ENCODINGS, false); // from XMLEntityManager
fFeatures.put(CONTINUE_AFTER_FATAL_ERROR, Boolean.FALSE);
fFeatures.put(PARSER_SETTINGS, Boolean.TRUE);
fFeatures.put(NAMESPACES, Boolean.TRUE);
//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
// add default recognized properties
final String[] recognizedProperties = {
ERROR_REPORTER,
ENTITY_MANAGER,
DOCUMENT_SCANNER,
DTD_SCANNER,
DTD_VALIDATOR,
NAMESPACE_BINDER,
XMLGRAMMAR_POOL,
DATATYPE_VALIDATOR_FACTORY,
VALIDATION_MANAGER
};
addRecognizedProperties(recognizedProperties);
fGrammarPool = grammarPool;
if(fGrammarPool != null){
fProperties.put(XMLGRAMMAR_POOL, fGrammarPool);
}
fEntityManager = createEntityManager();
fProperties.put(ENTITY_MANAGER, fEntityManager);
addComponent(fEntityManager);
fErrorReporter = createErrorReporter();
fErrorReporter.setDocumentLocator(fEntityManager.getEntityScanner());
fProperties.put(ERROR_REPORTER, fErrorReporter);
addComponent(fErrorReporter);
// this configuration delays creation of the scanner
// till it is known if namespace processing should be performed
fDTDScanner = createDTDScanner();
if (fDTDScanner != null) {
fProperties.put(DTD_SCANNER, fDTDScanner);
if (fDTDScanner instanceof XMLComponent) {
addComponent((XMLComponent)fDTDScanner);
}
}
fDatatypeValidatorFactory = createDatatypeValidatorFactory();
if (fDatatypeValidatorFactory != null) {
fProperties.put(DATATYPE_VALIDATOR_FACTORY,
fDatatypeValidatorFactory);
}
fValidationManager = createValidationManager();
if (fValidationManager != null) {
fProperties.put(VALIDATION_MANAGER, fValidationManager);
}
// add message formatters
if (fErrorReporter.getMessageFormatter(XMLMessageFormatter.XML_DOMAIN) == null) {
XMLMessageFormatter xmft = new XMLMessageFormatter();
fErrorReporter.putMessageFormatter(XMLMessageFormatter.XML_DOMAIN, xmft);
fErrorReporter.putMessageFormatter(XMLMessageFormatter.XMLNS_DOMAIN, xmft);
}
fConfigUpdated = false;
// set locale
try {
setLocale(Locale.getDefault());
}
catch (XNIException e) {
// do nothing
// REVISIT: What is the right thing to do? -Ac
}
}
Parameters:
symbolTable - The symbol table to use.
grammarPool - The grammar pool to use.
parentSettings - The parent settings.
|