mrglavas 2004/01/29 13:13:09 Modified: java/src/org/apache/xerces/dom DOMConfigurationImpl.java Log: Support 'infoset' parameter in DOM core. Also fixing a bug. We don't currently support setting element-content-whitespace to false so we should be reporting that it isn't supported. Revision Changes Path 1.19 +24 -10 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.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- DOMConfigurationImpl.java 29 Jan 2004 20:59:52 -0000 1.18 +++ DOMConfigurationImpl.java 29 Jan 2004 21:13:09 -0000 1.19 @@ -189,6 +189,11 @@ protected final static short VALIDATE = 0x1<<6; protected final static short PSVI = 0x1<<7; protected final static short WELLFORMED = 0x1<<8; + + protected final static short INFOSET_TRUE_PARAMS = NAMESPACES | COMMENTS | WELLFORMED; + protected final static short INFOSET_FALSE_PARAMS = ENTITIES | DTNORMALIZATION | CDATA; + protected final static short INFOSET_MASK = INFOSET_TRUE_PARAMS | INFOSET_FALSE_PARAMS; + // components /** Symbol table. */ @@ -578,9 +583,16 @@ } else if (name.equals(Constants.DOM_WELLFORMED)) { features = (short) (state ? features | WELLFORMED : features & ~WELLFORMED ); - } - else if (name.equals(Constants.DOM_INFOSET) - || name.equals(Constants.DOM_NORMALIZE_CHARACTERS) + } + else if (name.equals(Constants.DOM_INFOSET)) { + // Setting to false has no effect. + if (state) { + features = (short) (features | INFOSET_TRUE_PARAMS); + features = (short) (features & ~INFOSET_FALSE_PARAMS); + 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) @@ -594,7 +606,8 @@ throw new DOMException(DOMException.NOT_SUPPORTED_ERR, msg); } } - else if (name.equals(Constants.DOM_NAMESPACE_DECLARATIONS)) { + else if (name.equals(Constants.DOM_NAMESPACE_DECLARATIONS) + || name.equals(Constants.DOM_ELEMENT_CONTENT_WHITESPACE)) { if (!state) { // false is not supported String msg = DOMMessageFormatter.formatMessage( @@ -810,9 +823,11 @@ } else if (name.equals(Constants.DOM_WELLFORMED)) { return (features & WELLFORMED) != 0 ? Boolean.TRUE : Boolean.FALSE; - } - else if ( name.equals(Constants.DOM_INFOSET) - || name.equals(Constants.DOM_NORMALIZE_CHARACTERS) + } + else if (name.equals(Constants.DOM_INFOSET)) { + return (features & INFOSET_MASK) == INFOSET_TRUE_PARAMS ? Boolean.TRUE : Boolean.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) @@ -904,8 +919,7 @@ return true ; }//features whose parameter value can not be set to 'true' else if ( - name.equals(Constants.DOM_INFOSET) - || name.equals(Constants.DOM_NORMALIZE_CHARACTERS) + 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)
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]