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: [EMAIL PROTECTED] ReportedBy: [EMAIL PROTECTED] 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
