tng 2002/09/24 12:44:41 Modified: c/src/xercesc/validators/datatype AbstractNumericFacetValidator.cpp AbstractStringValidator.cpp BooleanDatatypeValidator.cpp DatatypeValidator.hpp DecimalDatatypeValidator.cpp ENTITYDatatypeValidator.cpp ListDatatypeValidator.cpp NameDatatypeValidator.cpp NCNameDatatypeValidator.cpp StringDatatypeValidator.cpp UnionDatatypeValidator.cpp Log: Performance: use XMLString::equals instead of XMLString::compareString Revision Changes Path 1.4 +10 -7 xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp Index: AbstractNumericFacetValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- AbstractNumericFacetValidator.cpp 1 Apr 2002 20:17:46 -0000 1.3 +++ AbstractNumericFacetValidator.cpp 24 Sep 2002 19:44:40 -0000 1.4 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.4 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * * Revision 1.3 2002/04/01 20:17:46 peiyongz * Bug#7551: Exceptions are caught by value, rather than by reference * @@ -216,14 +219,14 @@ key = pair.getKey(); value = pair.getValue(); - if (XMLString::compareString(key, SchemaSymbols::fgELT_PATTERN) == 0) + if (XMLString::equals(key, SchemaSymbols::fgELT_PATTERN)) { setPattern(value); if (getPattern()) setFacetsDefined(DatatypeValidator::FACET_PATTERN); // do not construct regex until needed } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_MAXINCLUSIVE)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_MAXINCLUSIVE)) { try { @@ -235,7 +238,7 @@ } setFacetsDefined(DatatypeValidator::FACET_MAXINCLUSIVE); } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_MAXEXCLUSIVE)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_MAXEXCLUSIVE)) { try { @@ -247,7 +250,7 @@ } setFacetsDefined(DatatypeValidator::FACET_MAXEXCLUSIVE); } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_MININCLUSIVE)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_MININCLUSIVE)) { try { @@ -259,7 +262,7 @@ } setFacetsDefined(DatatypeValidator::FACET_MININCLUSIVE); } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_MINEXCLUSIVE)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_MINEXCLUSIVE)) { try { @@ -271,7 +274,7 @@ } setFacetsDefined(DatatypeValidator::FACET_MINEXCLUSIVE); } - else if (XMLString::compareString(key, SchemaSymbols::fgATT_FIXED)==0) + else if (XMLString::equals(key, SchemaSymbols::fgATT_FIXED)) { unsigned int val; bool retStatus; 1.4 +11 -8 xml-xerces/c/src/xercesc/validators/datatype/AbstractStringValidator.cpp Index: AbstractStringValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractStringValidator.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- AbstractStringValidator.cpp 1 Apr 2002 20:17:46 -0000 1.3 +++ AbstractStringValidator.cpp 24 Sep 2002 19:44:40 -0000 1.4 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.4 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * * Revision 1.3 2002/04/01 20:17:46 peiyongz * Bug#7551: Exceptions are caught by value, rather than by reference * @@ -193,7 +196,7 @@ key = pair.getKey(); value = pair.getValue(); - if (XMLString::compareString(key, SchemaSymbols::fgELT_LENGTH)==0) + if (XMLString::equals(key, SchemaSymbols::fgELT_LENGTH)) { int val; try @@ -211,7 +214,7 @@ setLength(val); setFacetsDefined(DatatypeValidator::FACET_LENGTH); } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_MINLENGTH)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_MINLENGTH)) { int val; try @@ -229,7 +232,7 @@ setMinLength(val); setFacetsDefined(DatatypeValidator::FACET_MINLENGTH); } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_MAXLENGTH)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_MAXLENGTH)) { int val; try @@ -247,14 +250,14 @@ setMaxLength(val); setFacetsDefined(DatatypeValidator::FACET_MAXLENGTH); } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_PATTERN)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_PATTERN)) { setPattern(value); if (getPattern()) setFacetsDefined(DatatypeValidator::FACET_PATTERN); // do not construct regex until needed } - else if (XMLString::compareString(key, SchemaSymbols::fgATT_FIXED)==0) + else if (XMLString::equals(key, SchemaSymbols::fgATT_FIXED)) { unsigned int val; bool retStatus; @@ -276,7 +279,7 @@ //no setFacetsDefined here } // - // else if (XMLString::compareString(key, SchemaSymbols::fgELT_SPECIAL_TOKEN)==0) + // else if (XMLString::equals(key, SchemaSymbols::fgELT_SPECIAL_TOKEN)) // TODO // // Note: whitespace is taken care of by TraverseSchema. @@ -564,7 +567,7 @@ int AbstractStringValidator::compare(const XMLCh* const lValue , const XMLCh* const rValue) { - return XMLString::compareString(lValue, rValue); + return !XMLString::equals(lValue, rValue); } void AbstractStringValidator::validate( const XMLCh* const content) @@ -647,7 +650,7 @@ int enumLength = getEnumeration()->size(); for ( ; i < enumLength; i++) { - if (XMLString::compareString(content, getEnumeration()->elementAt(i))==0) + if (XMLString::equals(content, getEnumeration()->elementAt(i))) break; } 1.4 +13 -10 xml-xerces/c/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp Index: BooleanDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/BooleanDatatypeValidator.cpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- BooleanDatatypeValidator.cpp 23 Aug 2002 20:16:50 -0000 1.3 +++ BooleanDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.4 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.4 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * * Revision 1.3 2002/08/23 20:16:50 tng * Memory leak fix: enums is not deleted if an error occurred. * @@ -138,7 +141,7 @@ key = pair.getKey(); value = pair.getValue(); - if (XMLString::compareString(key, SchemaSymbols::fgELT_PATTERN)==0) + if (XMLString::equals(key, SchemaSymbols::fgELT_PATTERN)) { setPattern(value); setFacetsDefined(DatatypeValidator::FACET_PATTERN); @@ -194,7 +197,7 @@ int i = 0; for ( ; i < ARRAYSIZE; i++ ) { - if ( XMLString::compareString(content, fgValueSpace[i]) ==0 ) + if ( XMLString::equals(content, fgValueSpace[i])) break; } @@ -211,19 +214,19 @@ // 1 == true // 0 == false - if (( XMLString::compareString(lValue, fgValueSpace[0]) ==0 ) || - ( XMLString::compareString(lValue, fgValueSpace[2]) ==0 ) ) + if (XMLString::equals(lValue, fgValueSpace[0])|| + XMLString::equals(lValue, fgValueSpace[2])) { - if (( XMLString::compareString(rValue, fgValueSpace[0]) ==0 ) || - ( XMLString::compareString(rValue, fgValueSpace[2]) ==0 ) ) + if (XMLString::equals(rValue, fgValueSpace[0]) || + XMLString::equals(rValue, fgValueSpace[2])) return 0; } else - if (( XMLString::compareString(lValue, fgValueSpace[1]) ==0 ) || - ( XMLString::compareString(lValue, fgValueSpace[3]) ==0 ) ) + if (XMLString::equals(lValue, fgValueSpace[1]) || + XMLString::equals(lValue, fgValueSpace[3])) { - if (( XMLString::compareString(rValue, fgValueSpace[1]) ==0 ) || - ( XMLString::compareString(rValue, fgValueSpace[3]) ==0 ) ) + if (XMLString::equals(rValue, fgValueSpace[1]) || + XMLString::equals(rValue, fgValueSpace[3])) return 0; } 1.4 +2 -2 xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidator.hpp Index: DatatypeValidator.hpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidator.hpp,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- DatatypeValidator.hpp 21 May 2002 19:29:21 -0000 1.3 +++ DatatypeValidator.hpp 24 Sep 2002 19:44:40 -0000 1.4 @@ -422,7 +422,7 @@ inline int DatatypeValidator::compare(const XMLCh* const lValue, const XMLCh* const rValue) { - return XMLString::compareString(lValue, rValue); + return !XMLString::equals(lValue, rValue); } // --------------------------------------------------------------------------- 1.3 +25 -22 xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp Index: DecimalDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- DecimalDatatypeValidator.cpp 1 Apr 2002 20:17:46 -0000 1.2 +++ DecimalDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.3 @@ -56,6 +56,9 @@ /* * $Log$ + * Revision 1.3 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * * Revision 1.2 2002/04/01 20:17:46 peiyongz * Bug#7551: Exceptions are caught by value, rather than by reference * @@ -195,7 +198,7 @@ void DecimalDatatypeValidator::assignAdditionalFacet(const XMLCh* const key , const XMLCh* const value) { - if (XMLString::compareString(key, SchemaSymbols::fgELT_TOTALDIGITS)==0) + if (XMLString::equals(key, SchemaSymbols::fgELT_TOTALDIGITS)) { int val; try @@ -214,7 +217,7 @@ setTotalDigits(val); setFacetsDefined(DatatypeValidator::FACET_TOTALDIGITS); } - else if (XMLString::compareString(key, SchemaSymbols::fgELT_FRACTIONDIGITS)==0) + else if (XMLString::equals(key, SchemaSymbols::fgELT_FRACTIONDIGITS)) { int val; try @@ -249,23 +252,23 @@ if (!numBase) return; - int thisFacetsDefined = getFacetsDefined(); + int thisFacetsDefined = getFacetsDefined(); int baseFacetsDefined = numBase->getFacetsDefined(); - // inherit totalDigits - if ((( baseFacetsDefined & DatatypeValidator::FACET_TOTALDIGITS) != 0) && - (( thisFacetsDefined & DatatypeValidator::FACET_TOTALDIGITS) == 0) ) - { - setTotalDigits(numBase->fTotalDigits); - setFacetsDefined(DatatypeValidator::FACET_TOTALDIGITS); - } - - // inherit fractionDigits - if ((( baseFacetsDefined & DatatypeValidator::FACET_FRACTIONDIGITS) != 0) && - (( thisFacetsDefined & DatatypeValidator::FACET_FRACTIONDIGITS) == 0) ) - { - setFractionDigits(numBase->fFractionDigits); - setFacetsDefined(DatatypeValidator::FACET_FRACTIONDIGITS); + // inherit totalDigits + if ((( baseFacetsDefined & DatatypeValidator::FACET_TOTALDIGITS) != 0) && + (( thisFacetsDefined & DatatypeValidator::FACET_TOTALDIGITS) == 0) ) + { + setTotalDigits(numBase->fTotalDigits); + setFacetsDefined(DatatypeValidator::FACET_TOTALDIGITS); + } + + // inherit fractionDigits + if ((( baseFacetsDefined & DatatypeValidator::FACET_FRACTIONDIGITS) != 0) && + (( thisFacetsDefined & DatatypeValidator::FACET_FRACTIONDIGITS) == 0) ) + { + setFractionDigits(numBase->fFractionDigits); + setFacetsDefined(DatatypeValidator::FACET_FRACTIONDIGITS); } } @@ -326,7 +329,7 @@ , XMLExcepts::FACET_totalDigit_base_fixed , value1 , value2); - } + } } if (( thisFacetsDefined & DatatypeValidator::FACET_FRACTIONDIGITS) != 0) @@ -419,7 +422,7 @@ { numBase->checkContent(fStrEnumeration->elementAt(i), false); } - } + } catch (XMLException&) { ThrowXML1(InvalidDatatypeFacetException @@ -430,11 +433,11 @@ // We put the this->checkContent in a separate loop // to not block original message with in that method. - // + // for ( i = 0; i < enumLength; i++) { checkContent(fStrEnumeration->elementAt(i), false); - } + } fEnumeration = new RefVectorOf<XMLNumber>(enumLength, true); fEnumerationInherited = false; @@ -442,7 +445,7 @@ for ( i = 0; i < enumLength; i++) { fEnumeration->insertElementAt(new XMLBigDecimal(fStrEnumeration->elementAt(i)), i); - } + } } 1.2 +5 -2 xml-xerces/c/src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp Index: ENTITYDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/ENTITYDatatypeValidator.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ENTITYDatatypeValidator.cpp 1 Feb 2002 22:22:41 -0000 1.1 +++ ENTITYDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.2 @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:41 peiyongz - * Initial revision + * Revision 1.2 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * + * Revision 1.1.1.1 2002/02/01 22:22:41 peiyongz + * sane_include * * Revision 1.7 2001/11/13 13:21:59 tng * Schema fix: Entities should be unparsed. @@ -126,7 +129,7 @@ int ENTITYDatatypeValidator::compare(const XMLCh* const lValue , const XMLCh* const rValue) { - return ( XMLString::compareString(lValue, rValue)==0 ? 0 : -1); + return ( XMLString::equals(lValue, rValue)? 0 : -1); } void ENTITYDatatypeValidator::validate(const XMLCh* const content) 1.2 +24 -21 xml-xerces/c/src/xercesc/validators/datatype/ListDatatypeValidator.cpp Index: ListDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/ListDatatypeValidator.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- ListDatatypeValidator.cpp 1 Feb 2002 22:22:42 -0000 1.1 +++ ListDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.2 @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:42 peiyongz - * Initial revision + * Revision 1.2 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * + * Revision 1.1.1.1 2002/02/01 22:22:42 peiyongz + * sane_include * * Revision 1.8 2001/10/11 19:32:27 peiyongz * To overwrite inheritFacet() @@ -118,10 +121,10 @@ ,fContent(0) { // - // baseValidator shall either + // baseValidator shall either // an atomic DTV which servers as itemType, or // another ListDTV from which, this ListDTV is derived by restriction. - // + // // In either case, it shall be not null // if (!baseValidator) @@ -150,25 +153,25 @@ Janitor<RefVectorOf<XMLCh> > janl(lVector); RefVectorOf<XMLCh>* rVector = XMLString::tokenizeString(rValue); Janitor<RefVectorOf<XMLCh> > janr(rVector); - - int lNumberOfTokens = lVector->size(); - int rNumberOfTokens = rVector->size(); + + int lNumberOfTokens = lVector->size(); + int rNumberOfTokens = rVector->size(); if (lNumberOfTokens < rNumberOfTokens) - return -1; + return -1; else if (lNumberOfTokens > rNumberOfTokens) return 1; - else - { //compare each token + else + { //compare each token for ( int i = 0; i < lNumberOfTokens; i++) { int returnValue = theItemTypeDTV->compare(lVector->elementAt(i), rVector->elementAt(i)); - if (returnValue != 0) - return returnValue; //REVISIT: does it make sense to return -1 or +1..? + if (returnValue != 0) + return returnValue; //REVISIT: does it make sense to return -1 or +1..? } return 0; } - + } bool ListDatatypeValidator::isAtomic() const { @@ -212,7 +215,7 @@ if ( (thisFacetsDefined & DatatypeValidator::FACET_PATTERN ) != 0 ) { // lazy construction - if (getRegex() == 0) + if (getRegex() == 0) { try { setRegex(new RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); @@ -223,7 +226,7 @@ } } - //check each and every item in the list + //check each and every item in the list for (unsigned int i = 0; i < tokenVector->size(); i++) { if (getRegex()->matches(tokenVector->elementAt(i)) ==false) @@ -293,11 +296,11 @@ { //optimization: we do a lexical comparision first // this may be faster for string and its derived - if (XMLString::compareString(getEnumeration()->elementAt(i), getContent()) == 0) + if (XMLString::equals(getEnumeration()->elementAt(i), getContent())) break; // a match found // do a value space check - // this is needed for decimal (and probably other types + // this is needed for decimal (and probably other types // such as datetime related) // eg. // tokenVector = "1 2 3.0 4" vs enumeration = "1 2 3 4.0" @@ -401,7 +404,7 @@ RefVectorOf<XMLCh>* tempList = XMLString::tokenizeString(getEnumeration()->elementAt(i)); int tokenNumber = tempList->size(); - try + try { for ( int j = 0; j < tokenNumber; j++) getBaseValidator()->validate(tempList->elementAt(j)); @@ -425,7 +428,7 @@ , XMLExcepts::FACET_enum_base , getEnumeration()->elementAt(i)); } - + } } @@ -433,15 +436,15 @@ }// End of inspectFacetBase() void ListDatatypeValidator::inheritFacet() -{ +{ //iff the base validator is List, then we inherit // if (getBaseValidator()->getType() == DatatypeValidator::List) { AbstractStringValidator::inheritFacet(); - } - + } + } /** 1.2 +5 -2 xml-xerces/c/src/xercesc/validators/datatype/NameDatatypeValidator.cpp Index: NameDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/NameDatatypeValidator.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- NameDatatypeValidator.cpp 1 Feb 2002 22:22:42 -0000 1.1 +++ NameDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.2 @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:42 peiyongz - * Initial revision + * Revision 1.2 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * + * Revision 1.1.1.1 2002/02/01 22:22:42 peiyongz + * sane_include * * Revision 1.4 2001/10/09 20:48:39 peiyongz * init(): take 1 arg @@ -123,7 +126,7 @@ int NameDatatypeValidator::compare(const XMLCh* const lValue , const XMLCh* const rValue) { - return ( XMLString::compareString(lValue, rValue)==0 ? 0 : -1); + return ( XMLString::equals(lValue, rValue)? 0 : -1); } void NameDatatypeValidator::validate(const XMLCh* const content) 1.2 +5 -2 xml-xerces/c/src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp Index: NCNameDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/NCNameDatatypeValidator.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- NCNameDatatypeValidator.cpp 1 Feb 2002 22:22:42 -0000 1.1 +++ NCNameDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.2 @@ -57,8 +57,11 @@ /* * $Id$ * $Log$ - * Revision 1.1 2002/02/01 22:22:42 peiyongz - * Initial revision + * Revision 1.2 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * + * Revision 1.1.1.1 2002/02/01 22:22:42 peiyongz + * sane_include * * Revision 1.3 2001/10/09 20:49:09 peiyongz * init(): take 1 arg @@ -121,7 +124,7 @@ int NCNameDatatypeValidator::compare(const XMLCh* const lValue , const XMLCh* const rValue) { - return ( XMLString::compareString(lValue, rValue)==0 ? 0 : -1); + return ( XMLString::equals(lValue, rValue)? 0 : -1); } void NCNameDatatypeValidator::validate(const XMLCh* const content) 1.2 +10 -7 xml-xerces/c/src/xercesc/validators/datatype/StringDatatypeValidator.cpp Index: StringDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/StringDatatypeValidator.cpp,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- StringDatatypeValidator.cpp 1 Feb 2002 22:22:42 -0000 1.1 +++ StringDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.2 @@ -56,8 +56,11 @@ /* * $Log$ - * Revision 1.1 2002/02/01 22:22:42 peiyongz - * Initial revision + * Revision 1.2 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * + * Revision 1.1.1.1 2002/02/01 22:22:42 peiyongz + * sane_include * * Revision 1.17 2001/10/09 20:54:35 peiyongz * init(): take 1 arg. @@ -163,7 +166,7 @@ // do not invoke init() here!!! } -short StringDatatypeValidator::getWSFacet() const +short StringDatatypeValidator::getWSFacet() const { return fWhiteSpace; } @@ -174,14 +177,14 @@ void StringDatatypeValidator::assignAdditionalFacet(const XMLCh* const key , const XMLCh* const value) { - if (XMLString::compareString(key, SchemaSymbols::fgELT_WHITESPACE)==0) + if (XMLString::equals(key, SchemaSymbols::fgELT_WHITESPACE)) { // whiteSpace = preserve | replace | collapse - if (XMLString::compareString(value, SchemaSymbols::fgWS_PRESERVE) == 0) + if (XMLString::equals(value, SchemaSymbols::fgWS_PRESERVE)) setWhiteSpace(DatatypeValidator::PRESERVE); - else if (XMLString::compareString(value, SchemaSymbols::fgWS_REPLACE) == 0) + else if (XMLString::equals(value, SchemaSymbols::fgWS_REPLACE)) setWhiteSpace(DatatypeValidator::REPLACE); - else if (XMLString::compareString(value, SchemaSymbols::fgWS_COLLAPSE) == 0) + else if (XMLString::equals(value, SchemaSymbols::fgWS_COLLAPSE)) setWhiteSpace(DatatypeValidator::COLLAPSE); else ThrowXML1(InvalidDatatypeFacetException, XMLExcepts::FACET_Invalid_WS, value); @@ -220,7 +223,7 @@ if (!pBaseValidator) return; - + short thisWSFacet = getWSFacet(); short baseWSFacet = pBaseValidator->getWSFacet(); @@ -250,7 +253,7 @@ } void StringDatatypeValidator::checkAdditionalFacet(const XMLCh* const content) const -{ +{ // // check WhiteSpace // 1.3 +25 -22 xml-xerces/c/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp Index: UnionDatatypeValidator.cpp =================================================================== RCS file: /home/cvs/xml-xerces/c/src/xercesc/validators/datatype/UnionDatatypeValidator.cpp,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- UnionDatatypeValidator.cpp 14 Feb 2002 15:17:31 -0000 1.2 +++ UnionDatatypeValidator.cpp 24 Sep 2002 19:44:40 -0000 1.3 @@ -57,6 +57,9 @@ /* * $Id$ * $Log$ + * Revision 1.3 2002/09/24 19:44:40 tng + * Performance: use XMLString::equals instead of XMLString::compareString + * * Revision 1.2 2002/02/14 15:17:31 peiyongz * getEnumString() * @@ -137,7 +140,7 @@ ,fMemberTypeValidators(0) { // - // baseValidator another UnionDTV from which, + // baseValidator another UnionDTV from which, // this UnionDTV is derived by restriction. // it shall be not null // @@ -186,7 +189,7 @@ key = pair.getKey(); value = pair.getValue(); - if (XMLString::compareString(key, SchemaSymbols::fgELT_PATTERN)==0) + if (XMLString::equals(key, SchemaSymbols::fgELT_PATTERN)) { setPattern(value); if (getPattern()) @@ -246,9 +249,9 @@ The reason of this inheriting (or copying values) is to ease schema constraint checking, so that we need NOT trace back to our very first base validator in the hierachy. Instead, we are pretty - sure checking against immediate base validator is enough. + sure checking against immediate base validator is enough. ***/ - + UnionDatatypeValidator *pBaseValidator = (UnionDatatypeValidator*) baseValidator; // inherit enumeration @@ -261,7 +264,7 @@ } // -// 1) the bottom level UnionDTV would check against +// 1) the bottom level UnionDTV would check against // pattern and enumeration as well // 2) each UnionDTV(s) above the bottom level UnionDTV and // below the native UnionDTV (the top level DTV) @@ -281,11 +284,11 @@ // bool memTypeValid = false; for ( unsigned int i = 0; i < fMemberTypeValidators->size(); ++i ) - { - if ( memTypeValid ) + { + if ( memTypeValid ) break; - try + try { fMemberTypeValidators->elementAt(i)->validate(content); memTypeValid = true; @@ -293,15 +296,15 @@ catch (XMLException&) { //absorbed - } + } } // for - if ( !memTypeValid ) + if ( !memTypeValid ) { ThrowXML1(InvalidDatatypeValueException , XMLExcepts::VALUE_no_match_memberType , content); - //( "Content '"+content+"' does not match any union types" ); + //( "Content '"+content+"' does not match any union types" ); } } @@ -309,7 +312,7 @@ if ( (getFacetsDefined() & DatatypeValidator::FACET_PATTERN ) != 0 ) { // lazy construction - if (getRegex() == 0) + if (getRegex() == 0) { try { setRegex(new RegularExpression(getPattern(), SchemaSymbols::fgRegEx_XOption)); @@ -338,19 +341,19 @@ (getEnumeration() != 0)) { - // If the content match (compare equal) any enumeration with + // If the content match (compare equal) any enumeration with // any of the member types, it is considerd valid. // - RefVectorOf<DatatypeValidator>* memberDTV = getMemberTypeValidators(); + RefVectorOf<DatatypeValidator>* memberDTV = getMemberTypeValidators(); RefVectorOf<XMLCh>* tmpEnum = getEnumeration(); unsigned int memberTypeNumber = memberDTV->size(); unsigned int enumLength = tmpEnum->size(); for ( unsigned int memberIndex = 0; memberIndex < memberTypeNumber; ++memberIndex) - { + { for ( unsigned int enumIndex = 0; enumIndex < enumLength; ++enumIndex) - { - try + { + try { if (memberDTV->elementAt(memberIndex)->compare(content, tmpEnum->elementAt(enumIndex)) == 0) return; @@ -358,7 +361,7 @@ catch (XMLException&) { //absorbed - } + } } // for enumIndex } // for memberIndex @@ -374,7 +377,7 @@ int UnionDatatypeValidator::compare(const XMLCh* const lValue , const XMLCh* const rValue) { - RefVectorOf<DatatypeValidator>* memberDTV = getMemberTypeValidators(); + RefVectorOf<DatatypeValidator>* memberDTV = getMemberTypeValidators(); unsigned int memberTypeNumber = memberDTV->size(); for ( unsigned int memberIndex = 0; memberIndex < memberTypeNumber; ++memberIndex) @@ -383,9 +386,9 @@ return 0; } - //REVISIT: what does it mean for UNION1 to be <less than> or <greater than> UNION2 ? + //REVISIT: what does it mean for UNION1 to be <less than> or <greater than> UNION2 ? // As long as -1 or +1 indicates an unequality, return either of them is ok. - return -1; + return -1; } const RefVectorOf<XMLCh>* UnionDatatypeValidator::getEnumString() const
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]