You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ca...@apache.org on 2005/03/20 20:02:46 UTC

cvs commit: xml-xerces/c/src/xercesc/internal XMLReader.cpp XMLScanner.cpp

cargilld    2005/03/20 11:02:46

  Modified:    c/src/xercesc/parsers DOMBuilderImpl.cpp
                        SAX2XMLReaderImpl.cpp
               c/src/xercesc/dom/impl DOMImplementationImpl.cpp
                        DOMWriterImpl.cpp
               c/src/xercesc/validators/DTD DTDScanner.cpp
               c/src/xercesc/util HexBin.cpp TransService.cpp XMLString.cpp
                        XMLString.hpp XMLURL.cpp
               c/src/xercesc/internal XMLReader.cpp XMLScanner.cpp
  Log:
  Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
  
  Revision  Changes    Path
  1.43      +91 -91    xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp
  
  Index: DOMBuilderImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/DOMBuilderImpl.cpp,v
  retrieving revision 1.42
  retrieving revision 1.43
  diff -u -r1.42 -r1.43
  --- DOMBuilderImpl.cpp	7 Dec 2004 19:45:43 -0000	1.42
  +++ DOMBuilderImpl.cpp	20 Mar 2005 19:02:45 -0000	1.43
  @@ -125,22 +125,22 @@
   // ---------------------------------------------------------------------------
   void DOMBuilderImpl::setFeature(const XMLCh* const name, const bool state)
   {
  -    if (XMLString::compareIString(name, XMLUni::fgDOMEntities) == 0) {
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgDOMEntities) == 0) {
           setCreateEntityReferenceNodes(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMComments) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMComments) == 0) {
           setCreateCommentNodes(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMDatatypeNormalization) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMDatatypeNormalization) == 0) {
           getScanner()->setNormalizeData(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMNamespaces) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaces) == 0) {
           setDoNamespaces(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMWhitespaceInElementContent) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMWhitespaceInElementContent) == 0) {
           setIncludeIgnorableWhitespace(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidation) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidation) == 0) {
   
           fValidation = state;
   
  @@ -152,7 +152,7 @@
               setValidationScheme(AbstractDOMParser::Val_Never);
           }
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidateIfSchema) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidateIfSchema) == 0) {
   
           fAutoValidation = state;
   
  @@ -163,30 +163,30 @@
               setValidationScheme(AbstractDOMParser::Val_Never);
           }
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
           // in fact, setting this has no effect to the parser
           fCharsetOverridesXMLEncoding = state;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMInfoset) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCanonicalForm) == 0 ) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMInfoset) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMCanonicalForm) == 0 ) {
           if (state)
               throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0, getMemoryManager());
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCDATASections) == 0 ) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMCDATASections) == 0 ) {
           if (!state)
               throw DOMException(DOMException::NOT_SUPPORTED_ERR, 0, getMemoryManager());
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 0)
       {
           setDoSchema(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaFullChecking) == 0)
       {
           setValidationSchemaFullChecking(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesUserAdoptsDOMDocument) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesUserAdoptsDOMDocument) == 0)
       {
           if(state)
               fUserAdoptsDocument = true;
  @@ -194,56 +194,56 @@
               fUserAdoptsDocument = false;
       }
   
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesLoadExternalDTD) == 0)
       {
           setLoadExternalDTD(state);
       }
   
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
       {
           setExitOnFirstFatalError(!state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
       {
           setValidationConstraintFatal(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
       {
           getScanner()->cacheGrammarFromParse(state);
   
           if (state)
               getScanner()->useCachedGrammarInParse(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
       {
           if (state || !getScanner()->isCachingGrammarFromParse())
               getScanner()->useCachedGrammarInParse(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
       {
           getScanner()->setCalculateSrcOfs(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesStandardUriConformant) == 0)
       {
           getScanner()->setStandardUriConformant(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDOMHasPSVIInfo) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDOMHasPSVIInfo) == 0)
       {
           setCreateSchemaInfo(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
       {
           getScanner()->setGenerateSyntheticAnnotations(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidateAnnotations) == 0)
       {
           getScanner()->setValidateAnnotations(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
       {
           getScanner()->setIdentityConstraintChecking(state);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
       {
           getScanner()->setIgnoredCachedDTD(state);
       }
  @@ -254,98 +254,98 @@
   
   bool DOMBuilderImpl::getFeature(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, XMLUni::fgDOMEntities) == 0) {
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgDOMEntities) == 0) {
           return getCreateEntityReferenceNodes();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMComments) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMComments) == 0) {
           return getCreateCommentNodes();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMDatatypeNormalization) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMDatatypeNormalization) == 0) {
           return getScanner()->getNormalizeData();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMNamespaces) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaces) == 0) {
           return getDoNamespaces();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMWhitespaceInElementContent) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMWhitespaceInElementContent) == 0) {
           return getIncludeIgnorableWhitespace();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidation) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidation) == 0) {
           return fValidation;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMValidateIfSchema) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidateIfSchema) == 0) {
           return fAutoValidation;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) {
           return fCharsetOverridesXMLEncoding;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMInfoset) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCanonicalForm) == 0 ) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMInfoset) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMCanonicalForm) == 0 ) {
           return false;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCDATASections) == 0 ) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMCDATASections) == 0 ) {
           return true;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 0)
       {
           return getDoSchema();
       }
   
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaFullChecking) == 0)
       {
           return getValidationSchemaFullChecking();
       }
   
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
       {
           return getIdentityConstraintChecking();
       }
   
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesLoadExternalDTD) == 0)
       {
           return getLoadExternalDTD();
       }
   
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
       {
           return !getExitOnFirstFatalError();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
       {
           return getValidationConstraintFatal();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
       {
           return getScanner()->isCachingGrammarFromParse();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
       {
           return getScanner()->isUsingCachedGrammarInParse();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
       {
           return getScanner()->getCalculateSrcOfs();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesStandardUriConformant) == 0)
       {
           return getScanner()->getStandardUriConformant();
       }
  -    else if(XMLString::compareIString(name, XMLUni::fgXercesUserAdoptsDOMDocument) == 0) {
  +    else if(XMLString::compareIStringASCII(name, XMLUni::fgXercesUserAdoptsDOMDocument) == 0) {
           return fUserAdoptsDocument;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDOMHasPSVIInfo) == 0) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDOMHasPSVIInfo) == 0) {
           return getCreateSchemaInfo();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
       {
           return getScanner()->getGenerateSyntheticAnnotations();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidateAnnotations) == 0)
       {
           return getScanner()->getValidateAnnotations();
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
       {
           return getScanner()->getIgnoreCachedDTD();
       }
  @@ -358,44 +358,44 @@
   
   bool DOMBuilderImpl::canSetFeature(const XMLCh* const name, const bool state) const
   {
  -    if ((XMLString::compareIString(name, XMLUni::fgDOMEntities) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMComments) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMDatatypeNormalization) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMNamespaces) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMValidation) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMValidateIfSchema) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgDOMWhitespaceInElementContent) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesUserAdoptsDOMDocument) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesCalculateSrcOfs) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesStandardUriConformant) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesDOMHasPSVIInfo) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesValidateAnnotations) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesIdentityConstraintChecking) == 0) ||
  -        (XMLString::compareIString(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    if ((XMLString::compareIStringASCII(name, XMLUni::fgDOMEntities) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMComments) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMDatatypeNormalization) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaces) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidation) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMValidateIfSchema) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMCharsetOverridesXMLEncoding) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgDOMWhitespaceInElementContent) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesUserAdoptsDOMDocument) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesCalculateSrcOfs) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesStandardUriConformant) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesDOMHasPSVIInfo) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidateAnnotations) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesIdentityConstraintChecking) == 0) ||
  +        (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
          ) {
           return true;
       }
   
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMInfoset) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCanonicalForm) == 0 ) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMSupportedMediatypesOnly) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMInfoset) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMCanonicalForm) == 0 ) {
           if (!state)
               return true;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  -             XMLString::compareIString(name, XMLUni::fgDOMCDATASections) == 0 ) {
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgDOMNamespaceDeclarations) == 0 ||
  +             XMLString::compareIStringASCII(name, XMLUni::fgDOMCDATASections) == 0 ) {
           if (state)
               return true;
       }
  -    else if ((XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0) ||
  -             (XMLString::compareIString(name, XMLUni::fgXercesSchemaFullChecking) == 0) ||
  -             (XMLString::compareIString(name, XMLUni::fgXercesLoadExternalDTD) == 0) ||
  -             (XMLString::compareIString(name, XMLUni::fgXercesContinueAfterFatalError) == 0) ||
  -             (XMLString::compareIString(name, XMLUni::fgXercesValidationErrorAsFatal) == 0) ||
  -             (XMLString::compareIString(name, XMLUni::fgXercesCacheGrammarFromParse) == 0) ||
  -             (XMLString::compareIString(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)) {
  +    else if ((XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 0) ||
  +             (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaFullChecking) == 0) ||
  +             (XMLString::compareIStringASCII(name, XMLUni::fgXercesLoadExternalDTD) == 0) ||
  +             (XMLString::compareIStringASCII(name, XMLUni::fgXercesContinueAfterFatalError) == 0) ||
  +             (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidationErrorAsFatal) == 0) ||
  +             (XMLString::compareIStringASCII(name, XMLUni::fgXercesCacheGrammarFromParse) == 0) ||
  +             (XMLString::compareIStringASCII(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)) {
           return true;
       }
       return false;
  @@ -407,16 +407,16 @@
   // ---------------------------------------------------------------------------
   void DOMBuilderImpl::setProperty(const XMLCh* const name, void* value)
   {
  -	if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +	if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
   	{
   		setExternalSchemaLocation((XMLCh*)value);
   	}
   
  -	else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +	else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
   	{
   		setExternalNoNamespaceSchemaLocation((XMLCh*)value);
   	}
  -	else if (XMLString::compareIString(name, XMLUni::fgXercesSecurityManager) == 0)
  +	else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSecurityManager) == 0)
   	{
   		setSecurityManager((SecurityManager*)value);
   	}
  @@ -436,11 +436,11 @@
   
   void* DOMBuilderImpl::getProperty(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
           return (void*)getExternalSchemaLocation();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
           return (void*)getExternalNoNamespaceSchemaLocation();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSecurityManager) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSecurityManager) == 0)
           return (void*)getSecurityManager();
       else
           throw DOMException(DOMException::NOT_FOUND_ERR, 0, getMemoryManager());
  
  
  
  1.44      +43 -40    xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp
  
  Index: SAX2XMLReaderImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/parsers/SAX2XMLReaderImpl.cpp,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- SAX2XMLReaderImpl.cpp	25 Feb 2005 11:31:07 -0000	1.43
  +++ SAX2XMLReaderImpl.cpp	20 Mar 2005 19:02:45 -0000	1.44
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.44  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
  + *
    * Revision 1.43  2005/02/25 11:31:07  amassari
    * Performance improvements by David Bertoni (jira# 1343)
    *
  @@ -1487,11 +1490,11 @@
       if (fParseInProgress)
           throw SAXNotSupportedException("Feature modification is not supported during parse.", fMemoryManager);
   	
  -    if (XMLString::compareIString(name, XMLUni::fgSAX2CoreNameSpaces) == 0)
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreNameSpaces) == 0)
       {
           setDoNamespaces(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgSAX2CoreValidation) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreValidation) == 0)
       {
           fValidation = value;
           if (fValidation)
  @@ -1502,11 +1505,11 @@
           else
               setValidationScheme(Val_Never);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
       {
           fNamespacePrefix = value;
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDynamic) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDynamic) == 0)
       {
           fAutoValidation = value;
           // for auto validation, the sax2 core validation feature must also be enabled.
  @@ -1518,59 +1521,59 @@
           else
               setValidationScheme(Val_Never);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 0)
       {
           setDoSchema(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaFullChecking) == 0)
       {
           fScanner->setValidationSchemaFullChecking(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
       {
           fScanner->setIdentityConstraintChecking(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesLoadExternalDTD) == 0)
       {
           fScanner->setLoadExternalDTD(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
       {
           fScanner->setExitOnFirstFatal(!value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
       {
           fScanner->setValidationConstraintFatal(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
       {
           fScanner->cacheGrammarFromParse(value);
   
           if (value)
               fScanner->useCachedGrammarInParse(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
       {
           if (value || !fScanner->isCachingGrammarFromParse())
               fScanner->useCachedGrammarInParse(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
       {
           fScanner->setCalculateSrcOfs(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesStandardUriConformant) == 0)
       {
           fScanner->setStandardUriConformant(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
       {
           fScanner->setGenerateSyntheticAnnotations(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidateAnnotations) == 0)
       {
           fScanner->setValidateAnnotations(value);
       }
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
       {
           fScanner->setIgnoredCachedDTD(value);
       }
  @@ -1580,39 +1583,39 @@
   
   bool SAX2XMLReaderImpl::getFeature(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, XMLUni::fgSAX2CoreNameSpaces) == 0)
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreNameSpaces) == 0)
           return getDoNamespaces();
  -    else if (XMLString::compareIString(name, XMLUni::fgSAX2CoreValidation) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreValidation) == 0)
           return fValidation;
  -    else if (XMLString::compareIString(name, XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgSAX2CoreNameSpacePrefixes) == 0)
           return fNamespacePrefix;
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesDynamic) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesDynamic) == 0)
           return fAutoValidation;
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchema) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchema) == 0)
           return getDoSchema();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaFullChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaFullChecking) == 0)
           return fScanner->getValidationSchemaFullChecking();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIdentityConstraintChecking) == 0)
           return fScanner->getIdentityConstraintChecking();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesLoadExternalDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesLoadExternalDTD) == 0)
           return fScanner->getLoadExternalDTD();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesContinueAfterFatalError) == 0)
           return !fScanner->getExitOnFirstFatal();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidationErrorAsFatal) == 0)
           return fScanner->getValidationConstraintFatal();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCacheGrammarFromParse) == 0)
           return fScanner->isCachingGrammarFromParse();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesUseCachedGrammarInParse) == 0)
           return fScanner->isUsingCachedGrammarInParse();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesCalculateSrcOfs) == 0)
           return fScanner->getCalculateSrcOfs();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesStandardUriConformant) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesStandardUriConformant) == 0)
           return fScanner->getStandardUriConformant();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesGenerateSyntheticAnnotations) == 0)
           return fScanner->getGenerateSyntheticAnnotations();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesValidateAnnotations) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesValidateAnnotations) == 0)
           return fScanner->getValidateAnnotations();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesIgnoreCachedDTD) == 0)
           return fScanner->getIgnoreCachedDTD();
       else
          throw SAXNotRecognizedException("Unknown Feature", fMemoryManager);
  @@ -1625,15 +1628,15 @@
   	if (fParseInProgress)
   		throw SAXNotSupportedException("Property modification is not supported during parse.", fMemoryManager);
   
  -	if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +	if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
   	{
   		fScanner->setExternalSchemaLocation((XMLCh*)value);
   	}
  -	else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +	else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
   	{
   		fScanner->setExternalNoNamespaceSchemaLocation((XMLCh*)value);
   	}
  -	else if (XMLString::compareIString(name, XMLUni::fgXercesSecurityManager) == 0)
  +	else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSecurityManager) == 0)
   	{
   		fScanner->setSecurityManager((SecurityManager*)value);
   	}
  @@ -1662,11 +1665,11 @@
   
   void* SAX2XMLReaderImpl::getProperty(const XMLCh* const name) const
   {
  -    if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
  +    if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalSchemaLocation) == 0)
           return (void*)fScanner->getExternalSchemaLocation();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSchemaExternalNoNameSpaceSchemaLocation) == 0)
           return (void*)fScanner->getExternalNoNamespaceSchemaLocation();
  -    else if (XMLString::compareIString(name, XMLUni::fgXercesSecurityManager) == 0)
  +    else if (XMLString::compareIStringASCII(name, XMLUni::fgXercesSecurityManager) == 0)
           return (void*)fScanner->getSecurityManager();
       else if (XMLString::equals(name, XMLUni::fgXercesScannerName))
           return (void*)fScanner->getName();
  
  
  
  1.28      +6 -6      xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp
  
  Index: DOMImplementationImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMImplementationImpl.cpp,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- DOMImplementationImpl.cpp	20 Oct 2004 15:18:20 -0000	1.27
  +++ DOMImplementationImpl.cpp	20 Mar 2005 19:02:45 -0000	1.28
  @@ -186,23 +186,23 @@
       bool version3_0 = XMLString::equals(version, g3_0);
   
       // Currently, we support only XML Level 1 version 1.0
  -    if (XMLString::compareIString(feature, XMLUni::fgXMLString) == 0
  +    if (XMLString::compareIStringASCII(feature, XMLUni::fgXMLString) == 0
           && (anyVersion || version1_0 || version2_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gCore) == 0
  +    if (XMLString::compareIStringASCII(feature, gCore) == 0
           && (anyVersion || version1_0 || version2_0 || version3_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gTrav) == 0
  +    if (XMLString::compareIStringASCII(feature, gTrav) == 0
           && (anyVersion || version2_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gRange) == 0
  +    if (XMLString::compareIStringASCII(feature, gRange) == 0
           && (anyVersion || version2_0))
           return true;
   
  -    if (XMLString::compareIString(feature, gLS) == 0
  +    if (XMLString::compareIStringASCII(feature, gLS) == 0
           && (anyVersion || version3_0))
           return true;
   
  
  
  
  1.57      +20 -17    xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp
  
  Index: DOMWriterImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/dom/impl/DOMWriterImpl.cpp,v
  retrieving revision 1.56
  retrieving revision 1.57
  diff -u -r1.56 -r1.57
  --- DOMWriterImpl.cpp	8 Mar 2005 09:33:32 -0000	1.56
  +++ DOMWriterImpl.cpp	20 Mar 2005 19:02:45 -0000	1.57
  @@ -17,6 +17,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.57  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
  + *
    * Revision 1.56  2005/03/08 09:33:32  amassari
    * Redeclare a namespace binding if the prefix is already bound to a different namespace (jira# 1371)
    *
  @@ -1807,21 +1810,21 @@
       if (!getFeature(BYTE_ORDER_MARK_ID))
           return;
   
  -    if ((XMLString::compareIString(fEncoding, XMLUni::fgUTF16LEncodingString)  == 0) ||
  -        (XMLString::compareIString(fEncoding, XMLUni::fgUTF16LEncodingString2) == 0)  )
  +    if ((XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16LEncodingString)  == 0) ||
  +        (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16LEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_utf16le, 2);
       }
  -    else if ((XMLString::compareIString(fEncoding, XMLUni::fgUTF16BEncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUTF16BEncodingString2) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16BEncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16BEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_utf16be, 2);
       }
  -    else if ((XMLString::compareIString(fEncoding, XMLUni::fgUTF16EncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUTF16EncodingString2) == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUTF16EncodingString3) == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUTF16EncodingString4) == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUTF16EncodingString5) == 0)  ) 
  +    else if ((XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString2) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString3) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString4) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUTF16EncodingString5) == 0)  ) 
       {
   #if defined(ENDIANMODE_LITTLE)
               fFormatter->writeBOM(BOM_utf16le, 2);
  @@ -1829,19 +1832,19 @@
               fFormatter->writeBOM(BOM_utf16be, 2);
   #endif
       }
  -    else if ((XMLString::compareIString(fEncoding, XMLUni::fgUCS4LEncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUCS4LEncodingString2) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, XMLUni::fgUCS4LEncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUCS4LEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_ucs4le, 4);
       }
  -    else if ((XMLString::compareIString(fEncoding, XMLUni::fgUCS4BEncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUCS4BEncodingString2) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, XMLUni::fgUCS4BEncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUCS4BEncodingString2) == 0)  )
       {
           fFormatter->writeBOM(BOM_ucs4be, 4);
       }
  -    else if ((XMLString::compareIString(fEncoding, XMLUni::fgUCS4EncodingString)  == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUCS4EncodingString2) == 0) ||
  -             (XMLString::compareIString(fEncoding, XMLUni::fgUCS4EncodingString3) == 0)  )
  +    else if ((XMLString::compareIStringASCII(fEncoding, XMLUni::fgUCS4EncodingString)  == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUCS4EncodingString2) == 0) ||
  +             (XMLString::compareIStringASCII(fEncoding, XMLUni::fgUCS4EncodingString3) == 0)  )
       {
   #if defined(ENDIANMODE_LITTLE)
           fFormatter->writeBOM(BOM_ucs4le, 4);
  
  
  
  1.38      +8 -1      xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp
  
  Index: DTDScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/DTD/DTDScanner.cpp,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- DTDScanner.cpp	7 Jan 2005 15:28:49 -0000	1.37
  +++ DTDScanner.cpp	20 Mar 2005 19:02:45 -0000	1.38
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.38  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
  + *
    * Revision 1.37  2005/01/07 15:28:49  amassari
    * Removed warnings
    *
  @@ -3724,7 +3727,11 @@
       namePtr = bbName.getRawBuffer();
   
       // See if it issome form of 'xml' and emit a warning
  -    if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    //if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    if (bbName.getLen() == 3 &&
  +        (((namePtr[0] == chLatin_x) || (namePtr[0] == chLatin_X)) &&
  +         ((namePtr[1] == chLatin_m) || (namePtr[1] == chLatin_M)) &&
  +         ((namePtr[2] == chLatin_l) || (namePtr[2] == chLatin_L))))       
           fScanner->emitError(XMLErrs::NoPIStartsWithXML);
   
       // If namespaces are enabled, then no colons allowed
  
  
  
  1.8       +4 -1      xml-xerces/c/src/xercesc/util/HexBin.cpp
  
  Index: HexBin.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/HexBin.cpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- HexBin.cpp	7 Jan 2005 15:12:10 -0000	1.7
  +++ HexBin.cpp	20 Mar 2005 19:02:45 -0000	1.8
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.8  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
  + *
    * Revision 1.7  2005/01/07 15:12:10  amassari
    * Removed warnings
    *
  @@ -98,7 +101,7 @@
           return 0;
   
       XMLCh* retStr = XMLString::replicate(hexData, manager);
  -    XMLString::upperCase(retStr);
  +    XMLString::upperCaseASCII(retStr);
   
       return retStr;
   }
  
  
  
  1.20      +2 -2      xml-xerces/c/src/xercesc/util/TransService.cpp
  
  Index: TransService.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/TransService.cpp,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- TransService.cpp	8 Sep 2004 13:56:23 -0000	1.19
  +++ TransService.cpp	20 Mar 2005 19:02:45 -0000	1.20
  @@ -159,7 +159,7 @@
           resValue = XMLTransService::InternalFailure;
           return 0;
       }
  -    XMLString::upperCase(upBuf);
  +    XMLString::upperCaseASCII(upBuf);
       ENameMap* ourMapping = gMappings->get(upBuf);
   
       // If we found it, then call the factory method for it
  
  
  
  1.44      +59 -1     xml-xerces/c/src/xercesc/util/XMLString.cpp
  
  Index: XMLString.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.cpp,v
  retrieving revision 1.43
  retrieving revision 1.44
  diff -u -r1.43 -r1.44
  --- XMLString.cpp	8 Mar 2005 09:04:09 -0000	1.43
  +++ XMLString.cpp	20 Mar 2005 19:02:45 -0000	1.44
  @@ -952,6 +952,49 @@
       return XMLPlatformUtils::fgTransService->compareIString(str1, str2);
   }
   
  +int XMLString::compareIStringASCII(  const   XMLCh* const    str1
  +                                     , const XMLCh* const    str2)
  +{
  +    const XMLCh* psz1 = str1;
  +    const XMLCh* psz2 = str2;
  +
  +    if (psz1 == 0 || psz2 == 0) {
  +
  +        if (psz1 == 0) {
  +            return 0 - XMLString::stringLen(psz2);
  +        }
  +		else if (psz2 == 0) {
  +            return XMLString::stringLen(psz1);
  +        }
  +    }
  +
  +    XMLCh ch1;
  +    XMLCh ch2;
  +
  +    while (true) {
  +        if (*psz1 >= chLatin_A && *psz1 <= chLatin_Z)
  +            ch1 = *psz1 - chLatin_A + chLatin_a;
  +        else
  +            ch1 = *psz1;
  +        if (*psz2 >= chLatin_A && *psz2 <= chLatin_Z)
  +            ch2 = *psz2 - chLatin_A + chLatin_a;
  +        else
  +            ch2 = *psz2;
  +
  +        // If an inequality, then return difference
  +        if (ch1 != ch2)
  +            return int(ch1) - int(ch2);
  +
  +        // If either ended, then both ended, so equal
  +        if (!ch1)
  +            break;
  +
  +        // Move upwards to next chars
  +        psz1++;
  +        psz2++;
  +    }
  +    return 0;
  +}    
   
   int XMLString::compareNString(  const   XMLCh* const    str1
                                   , const XMLCh* const    str2
  @@ -1407,6 +1450,21 @@
       XMLPlatformUtils::fgTransService->upperCase(toUpperCase);
   }
   
  +void XMLString::upperCaseASCII(XMLCh* const toUpperCase)
  +{
  +    XMLCh* psz1 = toUpperCase;
  +
  +    if (!psz1)
  +        return;
  +
  +    while (*psz1) {
  +        if (*psz1 >= chLatin_a && *psz1 <= chLatin_z)
  +            *psz1 = *psz1 - chLatin_a + chLatin_A;
  +
  +        psz1++;        
  +    }    
  +}
  +
   
   void XMLString::lowerCase(XMLCh* const toLowerCase)
   {
  
  
  
  1.33      +28 -0     xml-xerces/c/src/xercesc/util/XMLString.hpp
  
  Index: XMLString.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLString.hpp,v
  retrieving revision 1.32
  retrieving revision 1.33
  diff -u -r1.32 -r1.33
  --- XMLString.hpp	8 Mar 2005 09:04:09 -0000	1.32
  +++ XMLString.hpp	20 Mar 2005 19:02:45 -0000	1.33
  @@ -16,6 +16,9 @@
   
   /*
    * $Log$
  + * Revision 1.33  2005/03/20 19:02:45  cargilld
  + * Implement versions of uppercase and compareIstring that only check a to z, instead of all characters, and don't rely on functionality provided in the transcoders.
  + *
    * Revision 1.32  2005/03/08 09:04:09  amassari
    * Improve performances of XMLString::tokenizeString (jira# 1363) - patch by Christian Will
    *
  @@ -342,6 +345,24 @@
           , const XMLCh* const    str2
       );
   
  +    /** Lexicographically compares lowercase versions of <code>str1</code> and
  +      * <code>str2</code> and returns a value indicating their relationship.
  +      * The routine only lowercases A to Z.
  +      * @param str1 Null-terminated ASCII string to compare
  +      * @param str2 Null-terminated ASCII string to compare
  +      * @return The return value indicates the relation of <code>str1</code> to
  +      * <code>str2</code> as follows
  +      *  Less than 0 means <code>str1</code> is less than <code>str2</code>
  +      *  Equal to 0 means <code>str1</code> is identical to <code>str2</code>
  +      *  Greater than 0 means <code>str1</code> is more than <code>str2</code>
  +      */
  +    static int compareIStringASCII
  +    (
  +        const   XMLCh* const    str1
  +        , const XMLCh* const    str2
  +    );
  +
  +
   
       /** Lexicographically compares, at most, the first count characters in
         * <code>str1</code> and <code>str2</code> and returns a value indicating the
  @@ -1492,6 +1513,13 @@
         */
       static void upperCase(XMLCh* const toUpperCase);
   
  +    /** Converts a string to uppercase
  +      * The routine only uppercases A to Z.
  +      * @param toUpperCase The string which needs to be converted to uppercase.
  +      *        On return, this buffer also holds the converted uppercase string
  +      */
  +    static void upperCaseASCII(XMLCh* const toUpperCase);
  +
   	/** Converts a string to lowercase
         * @param toLowerCase The string which needs to be converted to lowercase.
         *        On return, this buffer also holds the converted lowercase string
  
  
  
  1.17      +3 -3      xml-xerces/c/src/xercesc/util/XMLURL.cpp
  
  Index: XMLURL.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/util/XMLURL.cpp,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- XMLURL.cpp	7 Jan 2005 15:12:10 -0000	1.16
  +++ XMLURL.cpp	20 Mar 2005 19:02:45 -0000	1.17
  @@ -137,7 +137,7 @@
   {
       for (unsigned int index = 0; index < XMLURL::Protocols_Count; index++)
       {
  -        if (!XMLString::compareIString(gProtoList[index].prefix, protoName))
  +        if (!XMLString::compareIStringASCII(protoName, gProtoList[index].prefix))
               return gProtoList[index].protocol;
       }
       return XMLURL::Unknown;
  @@ -580,7 +580,7 @@
       //
       if (fProtocol == XMLURL::File)
       {
  -        if (!fHost || !XMLString::compareIString(fHost, XMLUni::fgLocalHostString))
  +        if (!fHost || !XMLString::compareIStringASCII(fHost, XMLUni::fgLocalHostString))
           {
   
               XMLCh* realPath = XMLString::replicate(fPath, fMemoryManager);
  
  
  
  1.28      +3 -3      xml-xerces/c/src/xercesc/internal/XMLReader.cpp
  
  Index: XMLReader.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLReader.cpp,v
  retrieving revision 1.27
  retrieving revision 1.28
  diff -u -r1.27 -r1.28
  --- XMLReader.cpp	21 Feb 2005 18:19:45 -0000	1.27
  +++ XMLReader.cpp	20 Mar 2005 19:02:45 -0000	1.28
  @@ -207,7 +207,7 @@
   
       // Copy the encoding string to our member
       fEncodingStr = XMLString::replicate(encodingStr, fMemoryManager);
  -    XMLString::upperCase(fEncodingStr);
  +    XMLString::upperCaseASCII(fEncodingStr);
   
       // Ask the transcoding service if it supports src offset info
       fSrcOfsSupported = XMLPlatformUtils::fgTransService->supportsSrcOfs();
  @@ -1003,7 +1003,7 @@
       // upperCase the newEncoding first for better performance
       //
       XMLCh* inputEncoding = XMLString::replicate(newEncoding, fMemoryManager);
  -    XMLString::upperCase(inputEncoding);
  +    XMLString::upperCaseASCII(inputEncoding);
   
       //
       //  Try to map the string to one of our standard encodings. If its not
  
  
  
  1.78      +16 -4     xml-xerces/c/src/xercesc/internal/XMLScanner.cpp
  
  Index: XMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/XMLScanner.cpp,v
  retrieving revision 1.77
  retrieving revision 1.78
  diff -u -r1.77 -r1.78
  --- XMLScanner.cpp	9 Dec 2004 20:31:39 -0000	1.77
  +++ XMLScanner.cpp	20 Mar 2005 19:02:46 -0000	1.78
  @@ -1059,7 +1059,11 @@
       namePtr = bbName.getRawBuffer();
   
       // See if it is some form of 'xml' and emit a warning
  -    if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    //if (!XMLString::compareIString(namePtr, XMLUni::fgXMLString))
  +    if (bbName.getLen() == 3 &&
  +        (((namePtr[0] == chLatin_x) || (namePtr[0] == chLatin_X)) &&
  +         ((namePtr[1] == chLatin_m) || (namePtr[1] == chLatin_M)) &&
  +         ((namePtr[2] == chLatin_l) || (namePtr[2] == chLatin_L))))   
           emitError(XMLErrs::NoPIStartsWithXML);
   
       // If namespaces are enabled, then no colons allowed
  @@ -1418,9 +1422,17 @@
               else
               {
                   emitError(XMLErrs::BadStandalone);
  -                if (!XMLString::compareIString(rawValue, XMLUni::fgYesString))
  +                //if (!XMLString::compareIString(rawValue, XMLUni::fgYesString))
  +                //else if (!XMLString::compareIString(rawValue, XMLUni::fgNoString))
  +                if (buffers[curString]->getLen() == 3 &&
  +                    (((rawValue[0] == chLatin_y) || (rawValue[0] == chLatin_Y)) &&
  +                     ((rawValue[1] == chLatin_e) || (rawValue[1] == chLatin_E)) &&
  +                     ((rawValue[2] == chLatin_s) || (rawValue[2] == chLatin_S))))   
  +                    fStandalone = true;                
  +                else if (buffers[curString]->getLen() == 2 &&
  +                    (((rawValue[0] == chLatin_n) || (rawValue[0] == chLatin_N)) &&
  +                     ((rawValue[1] == chLatin_o) || (rawValue[1] == chLatin_O))))   
                       fStandalone = true;
  -                else if (!XMLString::compareIString(rawValue, XMLUni::fgNoString))
                       fStandalone = false;
               }
           }
  
  
  

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