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