mrglavas 2004/04/14 08:54:06
Modified: java/src/org/apache/xerces/dom DOMConfigurationImpl.java
java/src/org/apache/xerces/parsers DOMParserImpl.java
Log:
Fixing Jira Bug #944:
http://nagoya.apache.org/jira/browse/XERCESJ-944
Allow 'schema-location' and 'schema-type' parameters to be
unset, plus fixup canSetParameter to accept null values and
some additional clean up. This is fixed thanks to the patch
(slightly modified) from Naela Nissar.
Revision Changes Path
1.28 +11 -7
xml-xerces/java/src/org/apache/xerces/dom/DOMConfigurationImpl.java
Index: DOMConfigurationImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/dom/DOMConfigurationImpl.java,v
retrieving revision 1.27
retrieving revision 1.28
diff -u -r1.27 -r1.28
--- DOMConfigurationImpl.java 12 Apr 2004 21:56:02 -0000 1.27
+++ DOMConfigurationImpl.java 14 Apr 2004 15:54:06 -0000 1.28
@@ -639,11 +639,11 @@
}
else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) {
- if (value instanceof String) {
+ if (value instanceof String || value == null) {
try {
String schemaType = (String) getProperty(
Constants.JAXP_PROPERTY_PREFIX + Constants.SCHEMA_LANGUAGE);
- if (schemaType == Constants.NS_XMLSCHEMA) {
+ if (schemaType == Constants.NS_XMLSCHEMA || value == null) {
// map DOM schema-location to JAXP schemaSource property
setProperty(
Constants.JAXP_PROPERTY_PREFIX +
Constants.SCHEMA_SOURCE,
@@ -675,15 +675,19 @@
}
else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) {
- // REVISIT: should null value be supported?
- if (value instanceof String) {
+ if (value instanceof String || value == null) {
try {
- if (value.equals(Constants.NS_XMLSCHEMA)) {
+ if (value == null) {
+ setProperty(
+ Constants.JAXP_PROPERTY_PREFIX +
Constants.SCHEMA_LANGUAGE,
+ null);
+ }
+ else if (value.equals(Constants.NS_XMLSCHEMA)) {
// REVISIT: when add support to DTD validation
setProperty(
Constants.JAXP_PROPERTY_PREFIX +
Constants.SCHEMA_LANGUAGE,
Constants.NS_XMLSCHEMA);
- }
+ }
else if (value.equals(Constants.NS_DTD)) {
// REVISIT: revalidation against DTDs is not supported
String msg = DOMMessageFormatter.formatMessage(
1.23 +29 -14 xml-xerces/java/src/org/apache/xerces/parsers/DOMParserImpl.java
Index: DOMParserImpl.java
===================================================================
RCS file:
/home/cvs/xml-xerces/java/src/org/apache/xerces/parsers/DOMParserImpl.java,v
retrieving revision 1.22
retrieving revision 1.23
diff -u -r1.22 -r1.23
--- DOMParserImpl.java 13 Apr 2004 15:08:08 -0000 1.22
+++ DOMParserImpl.java 14 Apr 2004 15:54:06 -0000 1.23
@@ -447,9 +447,14 @@
}
else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_LOCATION)) {
- if (value instanceof String) {
+ if (value instanceof String || value == null) {
try {
- if (fSchemaType == Constants.NS_XMLSCHEMA) {
+ if (value == null) {
+ fConfiguration.setProperty (
+ Constants.JAXP_PROPERTY_PREFIX +
Constants.SCHEMA_SOURCE,
+ null);
+ }
+ else if (fSchemaType == Constants.NS_XMLSCHEMA) {
fSchemaLocation = (String)value;
// map DOM schema-location to JAXP schemaSource property
// tokenize location string
@@ -495,10 +500,21 @@
}
else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_TYPE)) {
- // REVISIT: should null value be supported?
- if (value instanceof String) {
+ if (value instanceof String || value == null) {
try {
- if (value.equals (Constants.NS_XMLSCHEMA)) {
+ if (value == null) {
+ // turn off schema feature
+ fConfiguration.setFeature (
+ Constants.XERCES_FEATURE_PREFIX
+ + Constants.SCHEMA_VALIDATION_FEATURE,
+ false);
+ // map to JAXP schemaLanguage
+ fConfiguration.setProperty (
Constants.JAXP_PROPERTY_PREFIX
+ + Constants.SCHEMA_LANGUAGE,
+ null);
+ fSchemaType = null;
+ }
+ else if (value.equals (Constants.NS_XMLSCHEMA)) {
// turn on schema feature
fConfiguration.setFeature
(Constants.XERCES_FEATURE_PREFIX
+ Constants.SCHEMA_VALIDATION_FEATURE,
@@ -510,10 +526,12 @@
fSchemaType = Constants.NS_XMLSCHEMA;
}
else if (value.equals (Constants.NS_DTD)) {
+ // turn off schema feature
fConfiguration.setFeature (
Constants.XERCES_FEATURE_PREFIX
+ Constants.SCHEMA_VALIDATION_FEATURE,
false);
+ // map to JAXP schemaLanguage
fConfiguration.setProperty (
Constants.JAXP_PROPERTY_PREFIX
+ Constants.SCHEMA_LANGUAGE,
Constants.NS_DTD);
@@ -709,27 +727,27 @@
}
else { // check properties
if (name.equalsIgnoreCase (Constants.DOM_ERROR_HANDLER)) {
- if (value instanceof DOMErrorHandler) {
+ if (value instanceof DOMErrorHandler || value == null) {
return true;
}
return false;
}
else if (name.equalsIgnoreCase (Constants.DOM_RESOURCE_RESOLVER)) {
- if (value instanceof LSResourceResolver) {
+ if (value instanceof LSResourceResolver || value == null) {
return true;
}
return false;
}
else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_TYPE)) {
- if (value instanceof String
+ if ((value instanceof String
&& (value.equals (Constants.NS_XMLSCHEMA)
- || value.equals (Constants.NS_DTD))) {
+ || value.equals (Constants.NS_DTD))) || value == null) {
return true;
}
return false;
}
else if (name.equalsIgnoreCase (Constants.DOM_SCHEMA_LOCATION)) {
- if (value instanceof String)
+ if (value instanceof String || value == null)
return true;
return false;
}
@@ -772,9 +790,6 @@
parameters.add(Constants.DOM_WELLFORMED);
parameters.add(Constants.DOM_INFOSET);
parameters.add(Constants.DOM_DISALLOW_DOCTYPE);
- parameters.add(Constants.DOM_ELEMENT_CONTENT_WHITESPACE);
-
- parameters.add(Constants.DOM_ENTITIES);
parameters.add(Constants.DOM_ELEMENT_CONTENT_WHITESPACE);
parameters.add(Constants.DOM_COMMENTS);
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]