sandygao 2002/11/04 10:36:18 Modified: java/src/org/apache/xerces/impl/dv/xs XSSimpleTypeDecl.java Log: Performance: for list types, after tokenize the input string, we don't need to normalize each item, because there won't be any whitespace in there. Revision Changes Path 1.22 +15 -11 xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java Index: XSSimpleTypeDecl.java =================================================================== RCS file: /home/cvs/xml-xerces/java/src/org/apache/xerces/impl/dv/xs/XSSimpleTypeDecl.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- XSSimpleTypeDecl.java 31 Oct 2002 23:25:00 -0000 1.21 +++ XSSimpleTypeDecl.java 4 Nov 2002 18:36:18 -0000 1.22 @@ -725,7 +725,7 @@ reportError("cos-applicable-facets", new Object[]{"maxInclusive"}); } else { try { - fMaxInclusive = getActualValue(facets.maxInclusive, context, tempInfo); + fMaxInclusive = getActualValue(facets.maxInclusive, context, tempInfo, true); fFacetsDefined |= FACET_MAXINCLUSIVE; if ((fixedFacet & FACET_MAXINCLUSIVE) != 0) fFixedFacet |= FACET_MAXINCLUSIVE; @@ -759,7 +759,7 @@ reportError("cos-applicable-facets", new Object[]{"maxExclusive"}); } else { try { - fMaxExclusive = getActualValue(facets.maxExclusive, context, tempInfo); + fMaxExclusive = getActualValue(facets.maxExclusive, context, tempInfo, true); fFacetsDefined |= FACET_MAXEXCLUSIVE; if ((fixedFacet & FACET_MAXEXCLUSIVE) != 0) fFixedFacet |= FACET_MAXEXCLUSIVE; @@ -792,7 +792,7 @@ reportError("cos-applicable-facets", new Object[]{"minExclusive"}); } else { try { - fMinExclusive = getActualValue(facets.minExclusive, context, tempInfo); + fMinExclusive = getActualValue(facets.minExclusive, context, tempInfo, true); fFacetsDefined |= FACET_MINEXCLUSIVE; if ((fixedFacet & FACET_MINEXCLUSIVE) != 0) fFixedFacet |= FACET_MINEXCLUSIVE; @@ -825,7 +825,7 @@ reportError("cos-applicable-facets", new Object[]{"minInclusive"}); } else { try { - fMinInclusive = getActualValue(facets.minInclusive, context, tempInfo); + fMinInclusive = getActualValue(facets.minInclusive, context, tempInfo, true); fFacetsDefined |= FACET_MININCLUSIVE; if ((fixedFacet & FACET_MININCLUSIVE) != 0) fFixedFacet |= FACET_MININCLUSIVE; @@ -1271,7 +1271,8 @@ validatedInfo = new ValidatedInfo(); // first normalize string value, and convert it to actual value - Object ob = getActualValue(content, context, validatedInfo); + boolean needNormalize = context==null||context.needToNormalize(); + Object ob = getActualValue(content, context, validatedInfo, needNormalize); validate(context, validatedInfo); @@ -1291,7 +1292,8 @@ validatedInfo = new ValidatedInfo(); // first normalize string value, and convert it to actual value - Object ob = getActualValue(content, context, validatedInfo); + boolean needNormalize = context==null||context.needToNormalize(); + Object ob = getActualValue(content, context, validatedInfo, needNormalize); validate(context, validatedInfo); @@ -1466,10 +1468,12 @@ }// checkExtraRules() //we can still return object for internal use. - private Object getActualValue(Object content, ValidationContext context, ValidatedInfo validatedInfo) throws InvalidDatatypeValueException{ + private Object getActualValue(Object content, ValidationContext context, + ValidatedInfo validatedInfo, boolean needNormalize) + throws InvalidDatatypeValueException{ String nvalue; - if (context==null ||context.needToNormalize()) { + if (needNormalize) { nvalue = normalize(content, fWhiteSpace); } else { nvalue = content.toString(); @@ -1535,7 +1539,7 @@ // so we take two steps to get the actual value: // 1. fItemType.getActualValue() // 2. fItemType.chekcFacets() - avalue[i] = fItemType.getActualValue(parsedList.nextToken(), context, validatedInfo); + avalue[i] = fItemType.getActualValue(parsedList.nextToken(), context, validatedInfo, false); if (context.needFacetChecking() && (fItemType.fFacetsDefined != 0 && fItemType.fFacetsDefined != FACET_WHITESPACE)) { fItemType.checkFacets(validatedInfo); @@ -1559,7 +1563,7 @@ // so we take two steps to get the actual value: // 1. fMemberType[i].getActualValue() // 2. fMemberType[i].chekcFacets() - Object aValue = fMemberTypes[i].getActualValue(content, context, validatedInfo); + Object aValue = fMemberTypes[i].getActualValue(content, context, validatedInfo, true); if (context.needFacetChecking() && (fMemberTypes[i].fFacetsDefined != 0 && fMemberTypes[i].fFacetsDefined != FACET_WHITESPACE)) { fMemberTypes[i].checkFacets(validatedInfo);
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]