You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ga...@apache.org on 2003/05/14 16:53:07 UTC

cvs commit: xml-xerces/c/src/xercesc/dom/impl DOMConfigurationImpl.cpp

gareth      2003/05/14 07:53:07

  Modified:    c/src/xercesc/dom/impl DOMConfigurationImpl.cpp
  Log:
  Should be a case insensitive match for features.
  
  Revision  Changes    Path
  1.2       +39 -27    xml-xerces/c/src/xercesc/dom/impl/DOMConfigurationImpl.cpp
  
  Index: DOMConfigurationImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMConfigurationImpl.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- DOMConfigurationImpl.cpp	31 Mar 2003 15:41:56 -0000	1.1
  +++ DOMConfigurationImpl.cpp	14 May 2003 14:53:07 -0000	1.2
  @@ -127,14 +127,17 @@
                                           
   void DOMConfigurationImpl::setParameter(const XMLCh* name, const void* value) {
   
  -    if(!canSetParameter(name, value)) {
  +    XMLCh* lowerCaseName = XMLString::replicate(name);
  +    XMLString::lowerCase(lowerCaseName);
  +
  +    if(!canSetParameter(lowerCaseName, value)) {
           throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0);
       }
   
       bool isBooleanParameter = true;
       DOMConfigurationFeature whichFlag;
       try {
  -        whichFlag = getFeatureFlag(name);
  +        whichFlag = getFeatureFlag(lowerCaseName);
       } catch(DOMException e) {
           // must not be a boolean parameter
           isBooleanParameter = false;
  @@ -147,11 +150,11 @@
               featureValues &= ~whichFlag;
           }
       } else {
  -        if(XMLString::equals(name, fgERROR_HANDLER)) {
  +        if(XMLString::equals(lowerCaseName, fgERROR_HANDLER)) {
               fErrorHandler = (DOMErrorHandler*)value;
  -        } else if (XMLString::equals(name, fgSCHEMA_TYPE)) {
  +        } else if (XMLString::equals(lowerCaseName, fgSCHEMA_TYPE)) {
               fSchemaType = (XMLCh*)value;
  -        } else if (XMLString::equals(name, fgSCHEMA_LOCATION)) {
  +        } else if (XMLString::equals(lowerCaseName, fgSCHEMA_LOCATION)) {
               fSchemaLocation = (XMLCh*)value;
           } else {  // canSetParameter above should take care of this case
               throw DOMException(DOMException::NOT_FOUND_ERR, 0);
  @@ -165,10 +168,13 @@
   // --------------------------------------
   
   const void* DOMConfigurationImpl::getParameter(const XMLCh* name) const {
  +    XMLCh* lowerCaseName = XMLString::replicate(name);
  +    XMLString::lowerCase(lowerCaseName);
  +
       bool isBooleanParameter = true;
       DOMConfigurationFeature whichFlag;
       try {
  -        whichFlag = getFeatureFlag(name);
  +        whichFlag = getFeatureFlag(lowerCaseName);
       } catch (DOMException e) {
           // must not be a boolean parameter
           isBooleanParameter = false;
  @@ -181,11 +187,11 @@
               return fFalse;
           }
       } else {
  -        if(XMLString::equals(name, fgERROR_HANDLER)) {
  +        if(XMLString::equals(lowerCaseName, fgERROR_HANDLER)) {
               return fErrorHandler;
  -        } else if (XMLString::equals(name, fgSCHEMA_TYPE)) {
  +        } else if (XMLString::equals(lowerCaseName, fgSCHEMA_TYPE)) {
               return fSchemaType;
  -        } else if (XMLString::equals(name, fgSCHEMA_LOCATION)) {
  +        } else if (XMLString::equals(lowerCaseName, fgSCHEMA_LOCATION)) {
               return fSchemaLocation;
           } else {
               throw DOMException(DOMException::NOT_FOUND_ERR, 0);
  @@ -211,11 +217,14 @@
       // if value is null, return true
       if(value == 0) return true;
   
  +    XMLCh* lowerCaseName = XMLString::replicate(name);
  +    XMLString::lowerCase(lowerCaseName);
  +    
       bool isBooleanParameter = true;
       bool booleanValue = false;
       DOMConfigurationFeature whichFlag;
       try {
  -        whichFlag = getFeatureFlag(name);
  +        whichFlag = getFeatureFlag(lowerCaseName);
           booleanValue = *((bool*)value);
       } catch (DOMException e) {
           // must not be a boolean parameter
  @@ -333,11 +342,11 @@
               default: return false; // should never be here
           }
       } else {
  -        if(XMLString::equals(name, fgERROR_HANDLER)) {
  +        if(XMLString::equals(lowerCaseName, fgERROR_HANDLER)) {
               return true;                               // required //
  -        } else if (XMLString::equals(name, fgSCHEMA_TYPE)) {
  +        } else if (XMLString::equals(lowerCaseName, fgSCHEMA_TYPE)) {
               return false;                            // optional //
  -        } else if (XMLString::equals(name, fgSCHEMA_LOCATION)) {
  +        } else if (XMLString::equals(lowerCaseName, fgSCHEMA_LOCATION)) {
               return false;                            // optional //
           } 
       }
  @@ -349,33 +358,36 @@
   // -------------------------------------------
   
   DOMConfigurationImpl::DOMConfigurationFeature DOMConfigurationImpl::getFeatureFlag(const XMLCh* name) const {
  -    if(XMLString::equals(name, fgCANONICAL_FORM)) {
  +    XMLCh* lowerCaseName = XMLString::replicate(name);
  +    XMLString::lowerCase(lowerCaseName);
  +  
  +    if(XMLString::equals(lowerCaseName, fgCANONICAL_FORM)) {
           return FEATURE_CANONICAL_FORM;
  -    } else if (XMLString::equals(name, fgCDATA_SECTIONS )) {
  +    } else if (XMLString::equals(lowerCaseName, fgCDATA_SECTIONS )) {
           return FEATURE_CDATA_SECTIONS;
  -    } else if (XMLString::equals(name, fgCOMMENTS)) {
  +    } else if (XMLString::equals(lowerCaseName, fgCOMMENTS)) {
           return FEATURE_COMMENTS;
  -    } else if (XMLString::equals(name, fgDATATYPE_NORMALIZATION))  {
  +    } else if (XMLString::equals(lowerCaseName, fgDATATYPE_NORMALIZATION))  {
           return FEATURE_DATATYPE_NORMALIZATION;
  -    } else if (XMLString::equals(name, fgDISCARD_DEFAULT_CONTENT)) {
  +    } else if (XMLString::equals(lowerCaseName, fgDISCARD_DEFAULT_CONTENT)) {
           return FEATURE_DISCARD_DEFAULT_CONTENT;
  -    } else if (XMLString::equals(name, fgENTITIES)) {
  +    } else if (XMLString::equals(lowerCaseName, fgENTITIES)) {
           return FEATURE_ENTITIES;
  -    } else if (XMLString::equals(name, fgINFOSET))  {
  +    } else if (XMLString::equals(lowerCaseName, fgINFOSET))  {
           return FEATURE_INFOSET;
  -    } else if (XMLString::equals(name, fgNAMESPACES)) {
  +    } else if (XMLString::equals(lowerCaseName, fgNAMESPACES)) {
           return FEATURE_NAMESPACES;
  -    } else if (XMLString::equals(name, fgNAMESPACE_DECLARATIONS)) {
  +    } else if (XMLString::equals(lowerCaseName, fgNAMESPACE_DECLARATIONS)) {
           return FEATURE_NAMESPACE_DECLARATIONS;
  -    } else if (XMLString::equals(name, fgNORMALIZE_CHARACTERS)) {
  +    } else if (XMLString::equals(lowerCaseName, fgNORMALIZE_CHARACTERS)) {
           return FEATURE_NORMALIZE_CHARACTERS;
  -    } else if (XMLString::equals(name, fgSPLIT_CDATA_SECTIONS)) {
  +    } else if (XMLString::equals(lowerCaseName, fgSPLIT_CDATA_SECTIONS)) {
           return FEATURE_SPLIT_CDATA_SECTIONS;
  -    } else if (XMLString::equals(name, fgVALIDATE)) {
  +    } else if (XMLString::equals(lowerCaseName, fgVALIDATE)) {
           return FEATURE_VALIDATE;
  -    } else if (XMLString::equals(name, fgVALIDATE_IF_SCHEMA)) {
  +    } else if (XMLString::equals(lowerCaseName, fgVALIDATE_IF_SCHEMA)) {
           return FEATURE_VALIDATE_IF_SCHEMA;
  -    } else if (XMLString::equals(name, fgWHITESPACE_IN_ELEMENT_CONTENT)) {
  +    } else if (XMLString::equals(lowerCaseName, fgWHITESPACE_IN_ELEMENT_CONTENT)) {
           return FEATURE_WHITESPACE_IN_ELEMENT_CONTENT;
       } else {
           throw DOMException(DOMException::NOT_FOUND_ERR, 0);
  
  
  

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