neilg 2002/10/08 14:45:45
Modified: java/src/org/apache/xerces/impl/xs XMLSchemaValidator.java
XMLSchemaLoader.java
java/src/org/apache/xerces/impl/xs/traversers
XSDHandler.java
Log:
ensure that the allow-java-encodings and continue-after-fatal-error features are
propagated from the main configuration to the parser responsible for parsing schema
documents.
Revision Changes Path
1.114 +20 -4
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.113
retrieving revision 1.114
diff -u -r1.113 -r1.114
--- XMLSchemaValidator.java 4 Oct 2002 17:42:11 -0000 1.113
+++ XMLSchemaValidator.java 8 Oct 2002 21:45:44 -0000 1.114
@@ -179,9 +179,13 @@
Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_AUGMENT_PSVI;
/** Feature identifier: whether to recognize java encoding names */
- protected static final String ALLOW_JAVA_ENCODING =
+ protected static final String ALLOW_JAVA_ENCODINGS =
Constants.XERCES_FEATURE_PREFIX + Constants.ALLOW_JAVA_ENCODINGS_FEATURE;
+ /** Feature identifier: whether to continue parsing a schema after a fatal
error is encountered */
+ protected static final String CONTINUE_AFTER_FATAL_ERROR =
+ Constants.XERCES_FEATURE_PREFIX + Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE;
+
// property identifiers
/** Property identifier: symbol table. */
@@ -230,6 +234,8 @@
SCHEMA_VALIDATION,
DYNAMIC_VALIDATION,
SCHEMA_FULL_CHECKING,
+ ALLOW_JAVA_ENCODINGS,
+ CONTINUE_AFTER_FATAL_ERROR,
};
/** Feature defaults. */
@@ -244,6 +250,8 @@
null, //Boolean.FALSE,
null, //Boolean.FALSE,
null, //Boolean.FALSE,
+ null, //Boolean.FALSE,
+ null, //Boolean.FALSE,
};
/** Recognized properties. */
@@ -1363,8 +1371,16 @@
// Copy the allow-java-encoding feature to the grammar loader.
// REVISIT: what other fetures/properties do we want to copy?
try {
- boolean jencoding = componentManager.getFeature(ALLOW_JAVA_ENCODING);
- fSchemaLoader.setFeature(ALLOW_JAVA_ENCODING, jencoding);
+ boolean allowJavaEncodings =
componentManager.getFeature(ALLOW_JAVA_ENCODINGS);
+ fSchemaLoader.setFeature(ALLOW_JAVA_ENCODINGS, allowJavaEncodings);
+ }
+ catch (XMLConfigurationException e){
+ }
+
+ // get continue-after-fatal-error feature
+ try {
+ boolean fatalError =
componentManager.getFeature(CONTINUE_AFTER_FATAL_ERROR);
+ fSchemaLoader.setFeature(CONTINUE_AFTER_FATAL_ERROR, fatalError);
}
catch (XMLConfigurationException e){
}
1.10 +12 -2
xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaLoader.java
Index: XMLSchemaLoader.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/XMLSchemaLoader.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- XMLSchemaLoader.java 4 Oct 2002 13:33:26 -0000 1.9
+++ XMLSchemaLoader.java 8 Oct 2002 21:45:45 -0000 1.10
@@ -114,10 +114,15 @@
protected static final String CONTINUE_AFTER_FATAL_ERROR =
Constants.XERCES_FEATURE_PREFIX +
Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE;
+ /** Feature identifier: allow java encodings to be recognized when parsing
schema docs. */
+ protected static final String ALLOW_JAVA_ENCODINGS =
+ Constants.XERCES_FEATURE_PREFIX + Constants.ALLOW_JAVA_ENCODINGS_FEATURE;
+
// recognized features:
private static final String[] RECOGNIZED_FEATURES = {
SCHEMA_FULL_CHECKING,
CONTINUE_AFTER_FATAL_ERROR,
+ ALLOW_JAVA_ENCODINGS,
};
// property identifiers
@@ -171,6 +176,9 @@
// is Schema Full Checking enabled
private boolean fIsCheckedFully = false;
+ // is allow-java-encodings enabled?
+ private boolean fAllowJavaEncodings = false;
+
private SymbolTable fSymbolTable = null;
private XMLErrorReporter fErrorReporter = new XMLErrorReporter ();
private XMLEntityResolver fEntityResolver = null;
@@ -277,6 +285,8 @@
fIsCheckedFully = state;
} else if(featureId.equals(CONTINUE_AFTER_FATAL_ERROR)) {
fErrorReporter.setFeature(CONTINUE_AFTER_FATAL_ERROR, state);
+ } else if(featureId.equals(ALLOW_JAVA_ENCODINGS)) {
+ fAllowJavaEncodings = state;
} else {
throw new
XMLConfigurationException(XMLConfigurationException.NOT_RECOGNIZED, featureId);
}
@@ -429,7 +439,7 @@
}
fSchemaHandler.reset(fErrorReporter, fEntityResolver,
- fSymbolTable, fGrammarPool);
+ fSymbolTable, fGrammarPool, fAllowJavaEncodings);
if(fGrammarPool == null) {
fDeclPool.reset();
fSchemaHandler.setDeclPool(fDeclPool);
1.56 +29 -7
xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java
Index: XSDHandler.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/impl/xs/traversers/XSDHandler.java,v
retrieving revision 1.55
retrieving revision 1.56
diff -u -r1.55 -r1.56
--- XSDHandler.java 24 Sep 2002 13:22:58 -0000 1.55
+++ XSDHandler.java 8 Oct 2002 21:45:45 -0000 1.56
@@ -119,6 +119,14 @@
*/
public class XSDHandler {
+ /** Feature identifier: allow java encodings */
+ protected static final String ALLOW_JAVA_ENCODINGS =
+ Constants.XERCES_FEATURE_PREFIX + Constants.ALLOW_JAVA_ENCODINGS_FEATURE;
+
+ /** Feature identifier: continue after fatal error */
+ protected static final String CONTINUE_AFTER_FATAL_ERROR =
+ Constants.XERCES_FEATURE_PREFIX +
Constants.CONTINUE_AFTER_FATAL_ERROR_FEATURE;
+
/** Property identifier: error handler. */
protected static final String ERROR_HANDLER =
Constants.XERCES_PROPERTY_PREFIX + Constants.ERROR_HANDLER_PROPERTY;
@@ -152,6 +160,9 @@
protected XSDeclarationPool fDeclPool = null;
+ // are java encodings allowed?
+ private boolean fAllowJavaEncodings = false;
+
// These tables correspond to the symbol spaces defined in the
// spec.
// They are keyed with a QName (that is, String("URI,localpart) and
@@ -191,7 +202,7 @@
// stores instance document mappings between namespaces and schema hints
private Hashtable fLocationPairs = null;
- // convinence methods
+ // convenience methods
private String null2EmptyString(String ns) {
return ns == null ? XMLSymbols.EMPTY_STRING : ns;
}
@@ -1469,20 +1480,22 @@
public void reset(XMLErrorReporter errorReporter,
XMLEntityResolver entityResolver,
SymbolTable symbolTable,
- XMLGrammarPool grammarPool) {
+ XMLGrammarPool grammarPool,
+ boolean allowJavaEncodings) {
fErrorReporter = errorReporter;
fEntityResolver = entityResolver;
fSymbolTable = symbolTable;
fGrammarPool = grammarPool;
+ fAllowJavaEncodings = allowJavaEncodings;
resetSchemaParserErrorHandler();
} // reset(ErrorReporter, EntityResolver, SymbolTable, XMLGrammarPool)
void resetSchemaParserErrorHandler() {
- try {
- if (fSchemaParser != null) {
+ if (fSchemaParser != null) {
+ try {
XMLErrorHandler currErrorHandler =
fErrorReporter.getErrorHandler();
// Setting a parser property can be much more expensive
@@ -1492,9 +1505,18 @@
!= fSchemaParser.getProperty(ERROR_HANDLER)) {
fSchemaParser.setProperty(ERROR_HANDLER, currErrorHandler);
}
+ } catch (Exception e) {
+ }
+ // make sure continue-after-fatal-error and
+ // allow-java-encodings set correctly:
+ try {
+ fSchemaParser.setFeature(CONTINUE_AFTER_FATAL_ERROR,
fErrorReporter.getFeature(CONTINUE_AFTER_FATAL_ERROR));
+ } catch (Exception e) {
+ }
+ try {
+ fSchemaParser.setFeature(ALLOW_JAVA_ENCODINGS, fAllowJavaEncodings);
+ } catch (Exception e) {
}
- }
- catch (Exception e) {
}
} // resetSchemaParserErrorHandler()
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]