You are viewing a plain text version of this content. The canonical link for it is here.
Posted to j-dev@xerces.apache.org by bu...@apache.org on 2004/02/27 22:31:06 UTC

DO NOT REPLY [Bug 27303] New: - DOMConfiguration names should not be case-sensitive

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27303>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=27303

DOMConfiguration names should not be case-sensitive

           Summary: DOMConfiguration names should not be case-sensitive
           Product: Xerces2-J
           Version: 2.6.2
          Platform: Other
        OS/Version: Other
            Status: NEW
          Severity: Normal
          Priority: Other
         Component: DOM
        AssignedTo: xerces-j-dev@xml.apache.org
        ReportedBy: nnissar@ca.ibm.com


Spec states DOMConfiguration names are case-insensitive [1].  Xerces currently 
treats these as case sensitive.  Requires calling equalsIgnoreCase instead of 
equals in setParameter, canSetParameter, and getParameter methods in 
DOMConfigurationImpl 

[1] http://www.w3.org/2004/01/CR-DOM-Level-3-Core-
20040108/core#DOMConfiguration  

Proposed patch to DOMConfigurationImpl

--- C:\xml-xerces\java\src\org\apache\xerces\dom\DOMConfigurationImpl.java  
2004-02-27 15:17:13 -0500   1.24
+++ C:\xerces-temp\DOMConfigurationImpl.java      2004-02-27 15:00:00. -0500

@@ -515,11 +515,11 @@
                if(value instanceof Boolean){
                        boolean state = ((Boolean)value).booleanValue();

-            if (name.equals(Constants.DOM_COMMENTS)) {
+            if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) {
                 features = (short) (state ? features | COMMENTS : features & 
~COMMENTS);

             }
-            else if (name.equals(Constants.DOM_DATATYPE_NORMALIZATION)) {
+            else if (name.equalsIgnoreCase
(Constants.DOM_DATATYPE_NORMALIZATION)) {
                 setFeature(NORMALIZE_DATA, state);
                 features =
                     (short) (state ? features | DTNORMALIZATION : features & 
~DTNORMALIZATION);
@@ -527,25 +527,25 @@
                     features = (short) (features | VALIDATE);
                 }
             }
-            else if (name.equals(Constants.DOM_NAMESPACES)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) {
                 features = (short) (state ? features | NAMESPACES : features & 
~NAMESPACES);
             }
-            else if (name.equals(Constants.DOM_CDATA_SECTIONS)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) {
                 features = (short) (state ? features | CDATA : features & 
~CDATA);
             }
-            else if (name.equals(Constants.DOM_ENTITIES)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) {
                 features = (short) (state ? features | ENTITIES : features & 
~ENTITIES);
             }
-            else if (name.equals(Constants.DOM_SPLIT_CDATA)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_SPLIT_CDATA)) {
                 features = (short) (state ? features | SPLITCDATA : features & 
~SPLITCDATA);
             }
-            else if (name.equals(Constants.DOM_VALIDATE)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) {
                 features = (short) (state ? features | VALIDATE : features & 
~VALIDATE);
             }
-            else if (name.equals(Constants.DOM_WELLFORMED)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED)) {
                 features = (short) (state ? features | WELLFORMED : features & 
~WELLFORMED );
             }
-            else if (name.equals(Constants.DOM_INFOSET)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) {
                 // Setting to false has no effect.
                 if (state) {
                     features = (short) (features | INFOSET_TRUE_PARAMS);
@@ -553,10 +553,10 @@
                     setFeature(NORMALIZE_DATA, false);
                 }
             }
-            else if (name.equals(Constants.DOM_NORMALIZE_CHARACTERS)
-                    || name.equals(Constants.DOM_CANONICAL_FORM)
-                    || name.equals(Constants.DOM_VALIDATE_IF_SCHEMA)
-                    || name.equals(Constants.DOM_CHECK_CHAR_NORMALIZATION)
+            else if (name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS)
+                    || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)
+                    || name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)
+                    || name.equalsIgnoreCase
(Constants.DOM_CHECK_CHAR_NORMALIZATION)
                     ) {
                 if (state) { // true is not supported
                     String msg =
@@ -567,8 +567,8 @@
                     throw new DOMException(DOMException.NOT_SUPPORTED_ERR, 
msg);
                 }
             }
-            else if (name.equals(Constants.DOM_NAMESPACE_DECLARATIONS)
-                    || name.equals(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) {
+            else if (name.equalsIgnoreCase
(Constants.DOM_NAMESPACE_DECLARATIONS)
+                    || name.equalsIgnoreCase
(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) {
                 if (!state) { // false is not supported
                     String msg =
                         DOMMessageFormatter.formatMessage(
@@ -605,7 +605,7 @@
             }
         }
         else { // set properties
-            if (name.equals(Constants.DOM_ERROR_HANDLER)) {
+            if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) {
                 if (value instanceof DOMErrorHandler) {
                     fErrorHandlerWrapper.setErrorHandler((DOMErrorHandler)
value);
                     setErrorHandler(fErrorHandlerWrapper);
@@ -639,7 +639,7 @@
                 }

             }
-            else if (name.equals(Constants.DOM_SCHEMA_LOCATION)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) {
                 if (value instanceof String) {
                     try {
                         String schemaType = (String) getProperty(
@@ -675,7 +675,7 @@
                 }

             }
-            else if (name.equals(Constants.DOM_SCHEMA_TYPE)) {
+            else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) {
                 // REVISIT: should null value be supported?
                 if (value instanceof String) {
                     try {
@@ -760,38 +760,38 @@
                // REVISIT: Recognizes DOM L3 default features only.
                //          Does not yet recognize Xerces features.

-               if (name.equals(Constants.DOM_COMMENTS)) {
+               if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)) {
                        return ((features & COMMENTS) != 0) ? Boolean.TRUE : 
Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_NAMESPACES)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_NAMESPACES)) {
                        return (features & NAMESPACES) != 0 ? Boolean.TRUE : 
Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_DATATYPE_NORMALIZATION)) {
+               else if (name.equalsIgnoreCase
(Constants.DOM_DATATYPE_NORMALIZATION)) {
                        // REVISIT: datatype-normalization only takes effect if 
validation is on
                        return (features & DTNORMALIZATION) != 0 ? 
Boolean.TRUE : Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_CDATA_SECTIONS)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)) {
                        return (features & CDATA) != 0 ? Boolean.TRUE : 
Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_ENTITIES)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_ENTITIES)) {
                        return (features & ENTITIES) != 0 ? Boolean.TRUE : 
Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_SPLIT_CDATA)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_SPLIT_CDATA)) {
                        return (features & SPLITCDATA) != 0 ? Boolean.TRUE : 
Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_VALIDATE)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_VALIDATE)) {
                        return (features & VALIDATE) != 0 ? Boolean.TRUE : 
Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_WELLFORMED)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_WELLFORMED)) {
                        return (features & WELLFORMED) != 0 ? Boolean.TRUE : 
Boolean.FALSE;
                }
-               else if (name.equals(Constants.DOM_INFOSET)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_INFOSET)) {
                        return (features & INFOSET_MASK) == 
INFOSET_TRUE_PARAMS ? Boolean.TRUE : Boo
lean.FALSE;
                }
-               else if (name.equals(Constants.DOM_NORMALIZE_CHARACTERS)
-                               || name.equals(Constants.DOM_CANONICAL_FORM)
-                               || name.equals(Constants.DOM_VALIDATE_IF_SCHEMA)
-                               || name.equals
(Constants.DOM_CHECK_CHAR_NORMALIZATION)
+               else if (name.equalsIgnoreCase
(Constants.DOM_NORMALIZE_CHARACTERS)
+                               || name.equalsIgnoreCase
(Constants.DOM_CANONICAL_FORM)
+                               || name.equalsIgnoreCase
(Constants.DOM_VALIDATE_IF_SCHEMA)
+                               || name.equalsIgnoreCase
(Constants.DOM_CHECK_CHAR_NORMALIZATION)
                 ) {
                        return Boolean.FALSE;
                }
@@ -803,11 +803,11 @@
             return (features & PSVI) != 0 ? Boolean.TRUE : Boolean.FALSE;
         }
                else if (
-                       name.equals(Constants.DOM_NAMESPACE_DECLARATIONS)
-                               || name.equals
(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) {
+                       name.equalsIgnoreCase
(Constants.DOM_NAMESPACE_DECLARATIONS)
+                               || name.equalsIgnoreCase
(Constants.DOM_ELEMENT_CONTENT_WHITESPACE))
{
                        return Boolean.TRUE;
                }
-               else if (name.equals(Constants.DOM_ERROR_HANDLER)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) {
             return fErrorHandlerWrapper.getErrorHandler();
                }
                else if (name.equals(Constants.DOM_RESOURCE_RESOLVER)) {
@@ -817,10 +817,10 @@
                        }
                        return null;
                }
-               else if (name.equals(Constants.DOM_SCHEMA_TYPE)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) {
                        return getProperty(Constants.JAXP_PROPERTY_PREFIX + 
Constants.SCHEMA_LANGUAG
E);
                }
-               else if (name.equals(Constants.DOM_SCHEMA_LOCATION)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) {
                        return getProperty(Constants.JAXP_PROPERTY_PREFIX + 
Constants.SCHEMA_SOURCE)
;
                }
         else if (name.equals(SYMBOL_TABLE)){
@@ -868,28 +868,28 @@
             //features whose parameter value can be set either 'true' 
or 'false'
             // or they accept any boolean value -- so we just need to check 
that
             // its a boolean value..
-            if (name.equals(Constants.DOM_COMMENTS)
-                || name.equals(Constants.DOM_DATATYPE_NORMALIZATION)
-                || name.equals(Constants.DOM_CDATA_SECTIONS)
-                || name.equals(Constants.DOM_ENTITIES)
-                || name.equals(Constants.DOM_SPLIT_CDATA)
-                || name.equals(Constants.DOM_NAMESPACES)
-                || name.equals(Constants.DOM_VALIDATE)
-                || name.equals(Constants.DOM_WELLFORMED)
-                || name.equals(Constants.DOM_INFOSET)
+            if (name.equalsIgnoreCase(Constants.DOM_COMMENTS)
+                || name.equalsIgnoreCase(Constants.DOM_DATATYPE_NORMALIZATION)
+                || name.equalsIgnoreCase(Constants.DOM_CDATA_SECTIONS)
+                || name.equalsIgnoreCase(Constants.DOM_ENTITIES)
+                || name.equalsIgnoreCase(Constants.DOM_SPLIT_CDATA)
+                || name.equalsIgnoreCase(Constants.DOM_NAMESPACES)
+                || name.equalsIgnoreCase(Constants.DOM_VALIDATE)
+                || name.equalsIgnoreCase(Constants.DOM_WELLFORMED)
+                || name.equalsIgnoreCase(Constants.DOM_INFOSET)
                 ) {
                 return true ;
             }//features whose parameter value can not be set to 'true'
             else if (
-                name.equals(Constants.DOM_NORMALIZE_CHARACTERS)
-                    || name.equals(Constants.DOM_CANONICAL_FORM)
-                    || name.equals(Constants.DOM_VALIDATE_IF_SCHEMA)
-                    || name.equals(Constants.DOM_CHECK_CHAR_NORMALIZATION)
+                name.equalsIgnoreCase(Constants.DOM_NORMALIZE_CHARACTERS)
+                    || name.equalsIgnoreCase(Constants.DOM_CANONICAL_FORM)
+                    || name.equalsIgnoreCase(Constants.DOM_VALIDATE_IF_SCHEMA)
+                    || name.equalsIgnoreCase
(Constants.DOM_CHECK_CHAR_NORMALIZATION)
                     ) {
                     return (value.equals(Boolean.TRUE)) ? false : true;
             }//features whose parameter value can not be set to 'false'
-            else if( name.equals(Constants.DOM_NAMESPACE_DECLARATIONS)
-                    || name.equals(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)
+            else if( name.equalsIgnoreCase
(Constants.DOM_NAMESPACE_DECLARATIONS)
+                    || name.equalsIgnoreCase
(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)
                     || name.equals(SEND_PSVI)
                     ) {
                     return (value.equals(Boolean.TRUE)) ? true : false;
@@ -898,16 +898,16 @@
                 return false ;
             }
         }
-               else if (name.equals(Constants.DOM_ERROR_HANDLER)) {
+               else if (name.equalsIgnoreCase(Constants.DOM_ERROR_HANDLER)) {
             return (value instanceof DOMErrorHandler) ? true : false ;
         }
         else if (name.equals(Constants.DOM_RESOURCE_RESOLVER)) {
             return (value instanceof LSResourceResolver) ? true : false ;
         }
-        else if (name.equals(Constants.DOM_SCHEMA_LOCATION)) {
+        else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_LOCATION)) {
             return (value instanceof String) ? true : false ;
         }
-        else if (name.equals(Constants.DOM_SCHEMA_TYPE)) {
+        else if (name.equalsIgnoreCase(Constants.DOM_SCHEMA_TYPE)) {
             // REVISIT: should null value be supported?
             //as of now we are only supporting W3C XML Schema
             return ( (value instanceof String) && value.equals
(Constants.NS_XMLSCHEMA) ) ? true : f
alse ;

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-j-dev-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-j-dev-help@xml.apache.org