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]