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