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