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]

Reply via email to