You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by tn...@apache.org on 2001/05/11 19:17:47 UTC
cvs commit: xml-xerces/c/src/validators/schema SchemaAttDef.hpp
tng 01/05/11 10:17:46
Modified: c/src/validators/datatype DecimalDatatypeValidator.cpp
DecimalDatatypeValidator.hpp
StringDatatypeValidator.cpp
c/src/validators/schema SchemaAttDef.hpp
Log:
Schema: DatatypeValidator fixes. By Pei Yong Zhang.
Revision Changes Path
1.3 +17 -27 xml-xerces/c/src/validators/datatype/DecimalDatatypeValidator.cpp
Index: DecimalDatatypeValidator.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/validators/datatype/DecimalDatatypeValidator.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DecimalDatatypeValidator.cpp 2001/05/11 13:27:28 1.2
+++ DecimalDatatypeValidator.cpp 2001/05/11 17:17:23 1.3
@@ -56,6 +56,9 @@
/*
* $Log: DecimalDatatypeValidator.cpp,v $
+ * Revision 1.3 2001/05/11 17:17:23 tng
+ * Schema: DatatypeValidator fixes. By Pei Yong Zhang.
+ *
* Revision 1.2 2001/05/11 13:27:28 tng
* Copyright update.
*
@@ -188,7 +191,7 @@
}
setFacetsDefined(DatatypeValidator::FACET_MINEXCLUSIVE);
}
- else if (XMLString::compareString(key, SchemaSymbols::fgELT_PRECISION)==0)
+ else if (XMLString::compareString(key, SchemaSymbols::fgELT_TOTALDIGITS)==0)
{
try
{
@@ -532,11 +535,11 @@
// we need to convert from fStrEnumeration to fEnumeration
try
{
- fEnumeration = new RefVectorOf<XMLBigDecimal>(enumLength, true);
- for ( ; i < enumLength; i++)
- fEnumeration->insertElementAt(new XMLBigDecimal(fStrEnumeration->elementAt(i)), i);
- }
+ setEnumeration( new RefVectorOf<XMLBigDecimal>(enumLength, true));
+ for ( i = 0; i < enumLength; i++)
+ getEnumeration()->insertElementAt(new XMLBigDecimal(fStrEnumeration->elementAt(i)), i);
+ }
catch ( NumberFormatException& )
{
ThrowXML1(InvalidDatatypeFacetException
@@ -553,16 +556,17 @@
***/
// inherit enumeration
- if ( ((getFacetsDefined() & DatatypeValidator::FACET_ENUMERATION) == 0 ) &&
- ((numBase->getFacetsDefined() & DatatypeValidator::FACET_ENUMERATION) != 0 ))
+ if ((( numBase->getFacetsDefined() & DatatypeValidator::FACET_ENUMERATION) !=0) &&
+ (( getFacetsDefined() & DatatypeValidator::FACET_ENUMERATION) == 0))
{
setFacetsDefined(DatatypeValidator::FACET_ENUMERATION);
// need to adopt the Vector
- RefVectorOf<XMLBigDecimal>* fBaseEnumeration = numBase->fEnumeration;
+ RefVectorOf<XMLBigDecimal>* fBaseEnumeration = numBase->getEnumeration();
int enumLength = fBaseEnumeration->size();
- fEnumeration = new RefVectorOf<XMLBigDecimal>(enumLength, true);
+ setEnumeration(new RefVectorOf<XMLBigDecimal>(enumLength, true));
for ( int i = 0; i < enumLength; i++)
- fEnumeration->insertElementAt(fBaseEnumeration->elementAt(i), i);
+ //invoke XMLBigDecimal's copy ctor
+ getEnumeration()->insertElementAt(new XMLBigDecimal(*(fBaseEnumeration->elementAt(i))), i);
}
@@ -618,20 +622,6 @@
setFacetsDefined(DatatypeValidator::FACET_SCALE);
}
- // inherit enumeration
- if ((( numBase->getFacetsDefined() & DatatypeValidator::FACET_ENUMERATION) !=0) &&
- (( getFacetsDefined() & DatatypeValidator::FACET_ENUMERATION) == 0))
- {
- setFacetsDefined(DatatypeValidator::FACET_ENUMERATION);
- // need to adopt the Vector
- RefVectorOf<XMLBigDecimal>* fBaseEnumeration = numBase->fEnumeration;
- int enumLength = fBaseEnumeration->size();
- fEnumeration = new RefVectorOf<XMLBigDecimal>(enumLength, true);
- for ( int i = 0; i < enumLength; i++)
- //invoke XMLBigDecimal's copy ctor
- fEnumeration->insertElementAt(new XMLBigDecimal(*(fBaseEnumeration->elementAt(i))), i);
- }
-
} //if baseValidator
}// End of Facet setting
@@ -670,13 +660,13 @@
XMLBigDecimal theValue(content);
XMLBigDecimal *theData = &theValue;
- if (fEnumeration != 0)
+ if (getEnumeration() != 0)
{
int i=0;
- int enumLength = fEnumeration->size();
+ int enumLength = getEnumeration()->size();
for ( ; i < enumLength; i++)
{
- if (XMLBigDecimal::compareValues(theData, fEnumeration->elementAt(i))==0)
+ if (XMLBigDecimal::compareValues(theData, getEnumeration()->elementAt(i))==0)
break;
}
1.3 +2 -1 xml-xerces/c/src/validators/datatype/DecimalDatatypeValidator.hpp
Index: DecimalDatatypeValidator.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/validators/datatype/DecimalDatatypeValidator.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- DecimalDatatypeValidator.hpp 2001/05/11 13:27:28 1.2
+++ DecimalDatatypeValidator.hpp 2001/05/11 17:17:26 1.3
@@ -55,7 +55,7 @@
*/
/*
- * $Id: DecimalDatatypeValidator.hpp,v 1.2 2001/05/11 13:27:28 tng Exp $
+ * $Id: DecimalDatatypeValidator.hpp,v 1.3 2001/05/11 17:17:26 tng Exp $
*/
#if !defined(DECIMAL_DATATYPEVALIDATOR_HPP)
@@ -319,6 +319,7 @@
inline void DecimalDatatypeValidator::setEnumeration(RefVectorOf<XMLBigDecimal>* newEnum)
{
+ if (fEnumeration) delete fEnumeration;
fEnumeration = newEnum;
}
1.3 +4 -0 xml-xerces/c/src/validators/datatype/StringDatatypeValidator.cpp
Index: StringDatatypeValidator.cpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/validators/datatype/StringDatatypeValidator.cpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- StringDatatypeValidator.cpp 2001/05/11 13:27:29 1.2
+++ StringDatatypeValidator.cpp 2001/05/11 17:17:28 1.3
@@ -56,6 +56,9 @@
/*
* $Log: StringDatatypeValidator.cpp,v $
+ * Revision 1.3 2001/05/11 17:17:28 tng
+ * Schema: DatatypeValidator fixes. By Pei Yong Zhang.
+ *
* Revision 1.2 2001/05/11 13:27:29 tng
* Copyright update.
*
@@ -97,6 +100,7 @@
catch (XMLException&)
{
cleanUp();
+ throw;
}
}
1.3 +4 -0 xml-xerces/c/src/validators/schema/SchemaAttDef.hpp
Index: SchemaAttDef.hpp
===================================================================
RCS file: /home/cvs/xml-xerces/c/src/validators/schema/SchemaAttDef.hpp,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- SchemaAttDef.hpp 2001/05/11 13:27:34 1.2
+++ SchemaAttDef.hpp 2001/05/11 17:17:41 1.3
@@ -56,6 +56,9 @@
/*
* $Log: SchemaAttDef.hpp,v $
+ * Revision 1.3 2001/05/11 17:17:41 tng
+ * Schema: DatatypeValidator fixes. By Pei Yong Zhang.
+ *
* Revision 1.2 2001/05/11 13:27:34 tng
* Copyright update.
*
@@ -70,6 +73,7 @@
#include <framework/XMLAttDef.hpp>
class DatatypeValidator;
+class QName;
//
// This class is a derivative of the core XMLAttDef class. This class adds
---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org