You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by mr...@apache.org on 2004/07/19 04:22:50 UTC
cvs commit: xml-xerces/java/src/org/apache/xerces/xinclude XIncludeHandler.java
mrglavas 2004/07/18 19:22:50
Modified: java/src/org/apache/xerces/xinclude XIncludeHandler.java
Log:
Fixing Jira Bug #843:
http://nagoya.apache.org/jira/browse/XERCESJ-843
To ensure that only the aggregate document is schema validated, the
XInclude handler sets the schema feature to false to keep the child
pipeline it creates from containing a schema validator. This will activate
the DTD validator on the child pipeline if the validation feature was set
to true, causing the include to be validate against a (probably
non-existent) DTD.
This should now be fixed. In addition to turning the schema validation
feature off, turn off other related validation features.
Revision Changes Path
1.28 +26 -8 xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java
Index: XIncludeHandler.java
===================================================================
RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/xinclude/XIncludeHandler.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- XIncludeHandler.java 18 Jul 2004 19:57:42 -0000 1.27
+++ XIncludeHandler.java 19 Jul 2004 02:22:50 -0000 1.28
@@ -159,6 +159,18 @@
private final static int STATE_EXPECT_FALLBACK = 3;
// recognized features and properties
+
+ /** Feature identifier: validation. */
+ protected static final String VALIDATION =
+ Constants.SAX_FEATURE_PREFIX + Constants.VALIDATION_FEATURE;
+
+ /** Feature identifier: schema validation. */
+ protected static final String SCHEMA_VALIDATION =
+ Constants.XERCES_FEATURE_PREFIX + Constants.SCHEMA_VALIDATION_FEATURE;
+
+ /** Feature identifier: dynamic validation. */
+ protected static final String DYNAMIC_VALIDATION =
+ Constants.XERCES_FEATURE_PREFIX + Constants.DYNAMIC_VALIDATION_FEATURE;
/** Feature identifier: allow notation and unparsed entity events to be sent out of order. */
protected static final String ALLOW_UE_AND_NOTATION_EVENTS =
@@ -415,6 +427,19 @@
fSettings = new ParserConfigurationSettings();
copyFeatures(componentManager, fSettings);
+
+ // we don't want a schema validator on the new pipeline,
+ // so if it was enabled, we set the feature to false as
+ // well as other validation features.
+ try {
+ if (componentManager.getFeature(SCHEMA_VALIDATION)) {
+ fSettings.setFeature(SCHEMA_VALIDATION, false);
+ fSettings.setFeature(DYNAMIC_VALIDATION, false);
+ fSettings.setFeature(VALIDATION, false);
+ }
+ }
+ catch (XMLConfigurationException e) {}
+
// Don't reset fChildConfig -- we don't want it to share the same components.
// It will be reset when it is actually used to parse something.
} // reset(XMLComponentManager)
@@ -1260,13 +1285,6 @@
// set all features on parserConfig to match this parser configuration
copyFeatures(fSettings, fChildConfig);
-
- // we don't want a schema validator on the new pipeline,
- // so we set it to false, regardless of what was copied above
- fChildConfig.setFeature(
- Constants.XERCES_FEATURE_PREFIX
- + Constants.SCHEMA_VALIDATION_FEATURE,
- false);
try {
// REVISIT: If we're going to support content negotation for
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org