peiyongz    2003/11/12 12:32:04

  Modified:    c/src/xercesc/validators/datatype
                        AbstractNumericFacetValidator.cpp
                        AbstractNumericFacetValidator.hpp
                        AbstractNumericValidator.cpp
                        AbstractNumericValidator.hpp
                        AbstractStringValidator.cpp
                        AbstractStringValidator.hpp
                        AnySimpleTypeDatatypeValidator.hpp
                        BooleanDatatypeValidator.cpp
                        BooleanDatatypeValidator.hpp DatatypeValidator.hpp
                        DateTimeValidator.cpp DateTimeValidator.hpp
                        DecimalDatatypeValidator.cpp
                        DecimalDatatypeValidator.hpp
                        DoubleDatatypeValidator.cpp
                        DoubleDatatypeValidator.hpp
                        ENTITYDatatypeValidator.hpp
                        FloatDatatypeValidator.cpp
                        FloatDatatypeValidator.hpp IDDatatypeValidator.hpp
                        IDREFDatatypeValidator.hpp
                        ListDatatypeValidator.cpp ListDatatypeValidator.hpp
                        NameDatatypeValidator.cpp NameDatatypeValidator.hpp
                        NCNameDatatypeValidator.cpp
                        NCNameDatatypeValidator.hpp
                        UnionDatatypeValidator.cpp
                        UnionDatatypeValidator.hpp
  Log:
  Statless Grammar: ValidationContext
  
  Revision  Changes    Path
  1.16      +5 -2      
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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- AbstractNumericFacetValidator.cpp 17 Oct 2003 21:13:43 -0000      1.15
  +++ AbstractNumericFacetValidator.cpp 12 Nov 2003 20:32:03 -0000      1.16
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.16  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.15  2003/10/17 21:13:43  peiyongz
    * using XTemplateSerializer
    *
  @@ -154,7 +157,7 @@
   {                                                             \
       try                                                       \
   {                                                             \
  -        numBase->checkContent(val->getRawData(), false);      \
  +        numBase->checkContent(val->getRawData(), (ValidationContext*)0, false);     
 \
   }                                                             \
       catch ( XMLException& )                                   \
   {                                                             \
  
  
  
  1.9       +7 -3      
xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp
  
  Index: AbstractNumericFacetValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericFacetValidator.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AbstractNumericFacetValidator.hpp 17 Oct 2003 21:13:24 -0000      1.8
  +++ AbstractNumericFacetValidator.hpp 12 Nov 2003 20:32:03 -0000      1.9
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.9  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.8  2003/10/17 21:13:24  peiyongz
    * loadNumber() moved to XMLNumber
    *
  @@ -151,8 +154,9 @@
       virtual int  compareValues(const XMLNumber* const lValue
                                , const XMLNumber* const rValue) = 0;
   
  -    virtual void checkContent(const XMLCh* const content
  -                            , bool               asBase) = 0;
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase) = 0;
   
   // -----------------------------------------------------------------------
   // Setter methods
  
  
  
  1.7       +7 -3      
xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.cpp
  
  Index: AbstractNumericValidator.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.cpp,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AbstractNumericValidator.cpp      2 Oct 2003 19:21:06 -0000       1.6
  +++ AbstractNumericValidator.cpp      12 Nov 2003 20:32:03 -0000      1.7
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.7  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.6  2003/10/02 19:21:06  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -114,9 +117,10 @@
       //do not invoke init() here !!!
   }
   
  -void AbstractNumericValidator::validate(const XMLCh* const content)
  +void AbstractNumericValidator::validate(const XMLCh*             const content
  +                                       ,      ValidationContext* const context)
   {
  -    checkContent(content, false);
  +    checkContent(content, context, false);
   }
   
   void AbstractNumericValidator::boundsCheck(const XMLNumber* const theData)
  
  
  
  1.6       +12 -4     
xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.hpp
  
  Index: AbstractNumericValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractNumericValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- AbstractNumericValidator.hpp      2 Oct 2003 19:21:06 -0000       1.5
  +++ AbstractNumericValidator.hpp      12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/10/02 19:21:06  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -102,7 +105,11 @@
   
        //@}
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       /***
        * Support for Serialization/De-serialization
  @@ -125,8 +132,9 @@
       //
       // Abstract interface
       //
  -    virtual void checkContent(const XMLCh* const content
  -                            , bool               asBase) = 0;
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase) = 0;
   
       void boundsCheck(const XMLNumber* const);
   
  
  
  
  1.16      +12 -6     
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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- AbstractStringValidator.cpp       17 Oct 2003 21:13:43 -0000      1.15
  +++ AbstractStringValidator.cpp       12 Nov 2003 20:32:03 -0000      1.16
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.16  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.15  2003/10/17 21:13:43  peiyongz
    * using XTemplateSerializer
    *
  @@ -554,9 +557,9 @@
           for ( ; i < enumLength; i++)
           {
               // ask parent do a complete check
  -            pBaseValidator->checkContent(getEnumeration()->elementAt(i), false);
  +            pBaseValidator->checkContent(getEnumeration()->elementAt(i), 
(ValidationContext*)0, false);
               // enum shall pass this->checkContent() as well.
  -            checkContent(getEnumeration()->elementAt(i), false);
  +            checkContent(getEnumeration()->elementAt(i), (ValidationContext*)0, 
false);
           }
       }
   
  @@ -639,18 +642,21 @@
       return XMLString::compareString(lValue, rValue);
   }
   
  -void AbstractStringValidator::validate( const XMLCh* const content)
  +void AbstractStringValidator::validate( const XMLCh*             const content
  +                                      ,       ValidationContext* const context )
   {
  -    checkContent(content, false);
  +    checkContent(content, context, false);
   }
   
  -void AbstractStringValidator::checkContent( const XMLCh* const content, bool asBase)
  +void AbstractStringValidator::checkContent( const XMLCh*             const content
  +                                          ,       ValidationContext* const context
  +                                          ,       bool                     asBase)
   {
   
       //validate against base validator if any
       AbstractStringValidator *pBaseValidator = (AbstractStringValidator*) 
this->getBaseValidator();
       if (pBaseValidator)
  -        pBaseValidator->checkContent(content, true);
  +        pBaseValidator->checkContent(content, context, true);
   
       int thisFacetsDefined = getFacetsDefined();
   
  
  
  
  1.10      +12 -3     
xml-xerces/c/src/xercesc/validators/datatype/AbstractStringValidator.hpp
  
  Index: AbstractStringValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AbstractStringValidator.hpp,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- AbstractStringValidator.hpp       29 Sep 2003 21:47:35 -0000      1.9
  +++ AbstractStringValidator.hpp       12 Nov 2003 20:32:03 -0000      1.10
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.10  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.9  2003/09/29 21:47:35  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -160,7 +163,11 @@
        * is not valid.
        */
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       //@}
   
  @@ -215,7 +222,9 @@
   
       virtual void inheritFacet();
   
  -    virtual void checkContent(const XMLCh* const content, bool asBase);
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   
       /*
        **  Base64BinaryDatatypeValidator to overwrite
  
  
  
  1.9       +9 -4      
xml-xerces/c/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp
  
  Index: AnySimpleTypeDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/AnySimpleTypeDatatypeValidator.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- AnySimpleTypeDatatypeValidator.hpp        7 Oct 2003 19:39:03 -0000       1.8
  +++ AnySimpleTypeDatatypeValidator.hpp        12 Nov 2003 20:32:03 -0000      1.9
  @@ -119,7 +119,11 @@
           * @param  content   A string containing the content to be validated
           *
           */
  -     void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       /**
         * Checks whether a given type can be used as a substitute
  @@ -198,8 +202,9 @@
       return true;
   }
   
  -inline void
  -AnySimpleTypeDatatypeValidator::validate(const XMLCh* const content)
  +inline void 
  +AnySimpleTypeDatatypeValidator::validate(const XMLCh*             const content
  +                                       ,       ValidationContext* const context)
   {
       return;
   }
  
  
  
  1.10      +7 -2      
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.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- BooleanDatatypeValidator.cpp      7 Oct 2003 19:39:03 -0000       1.9
  +++ BooleanDatatypeValidator.cpp      12 Nov 2003 20:32:03 -0000      1.10
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.10  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.9  2003/10/07 19:39:03  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -176,13 +179,15 @@
       }// End of facet setting
   }
   
  -void BooleanDatatypeValidator::checkContent( const XMLCh* const content, bool 
asBase)
  +void BooleanDatatypeValidator::checkContent( const XMLCh*             const content
  +                                           ,       ValidationContext* const context
  +                                           ,       bool                     asBase)
   {
   
       //validate against base validator if any
       BooleanDatatypeValidator *pBaseValidator = (BooleanDatatypeValidator*) 
this->getBaseValidator();
       if (pBaseValidator !=0)
  -        pBaseValidator->checkContent(content, true);
  +        pBaseValidator->checkContent(content, context, true);
   
       // we check pattern first
       if ( (getFacetsDefined() & DatatypeValidator::FACET_PATTERN ) != 0 )
  
  
  
  1.8       +12 -5     
xml-xerces/c/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp
  
  Index: BooleanDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/BooleanDatatypeValidator.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- BooleanDatatypeValidator.hpp      6 Nov 2003 15:30:07 -0000       1.7
  +++ BooleanDatatypeValidator.hpp      12 Nov 2003 20:32:03 -0000      1.8
  @@ -117,7 +117,11 @@
        * is not valid.
        */
   
  -     void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       //@}
   
  @@ -157,7 +161,9 @@
   
   private:
   
  -    void checkContent(const XMLCh* const content, bool asBase);
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   
       // -----------------------------------------------------------------------
       //  Private data members
  @@ -199,9 +205,10 @@
       return (DatatypeValidator*) new (manager) BooleanDatatypeValidator(this, 
facets, enums, finalSet, manager);
   }
   
  -inline void BooleanDatatypeValidator::validate( const XMLCh* const content)
  +inline void BooleanDatatypeValidator::validate( const XMLCh*             const 
content
  +                                              ,       ValidationContext* const 
context)
   {
  -    checkContent(content, false);
  +    checkContent(content, context, false);
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.19      +7 -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.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- DatatypeValidator.hpp     6 Nov 2003 19:53:00 -0000       1.18
  +++ DatatypeValidator.hpp     12 Nov 2003 20:32:03 -0000      1.19
  @@ -69,6 +69,7 @@
   #include <xercesc/validators/schema/SchemaSymbols.hpp>
   #include <xercesc/internal/XSerializable.hpp>
   #include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
  +#include <xercesc/framework/ValidationContext.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -253,7 +254,11 @@
           * @param  content   A string containing the content to be validated
           *
           */
  -     virtual void validate(const XMLCh* const content) = 0;
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  ) = 0;
   
       /**
         * Checks whether a given type can be used as a substitute
  
  
  
  1.11      +11 -6     
xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.cpp
  
  Index: DateTimeValidator.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.cpp,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- DateTimeValidator.cpp     2 Oct 2003 19:21:06 -0000       1.10
  +++ DateTimeValidator.cpp     12 Nov 2003 20:32:03 -0000      1.11
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.11  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.10  2003/10/02 19:21:06  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -141,9 +144,10 @@
       //do not invoke init() here !!!
   }
   
  -void DateTimeValidator::validate(const XMLCh* const content)
  +void DateTimeValidator::validate(const XMLCh*             const content
  +                               ,       ValidationContext* const context)
   {
  -    checkContent(content, false);
  +    checkContent(content, context, false);
   }
   
   int DateTimeValidator::compare(const XMLCh* const value1
  @@ -186,14 +190,15 @@
   void DateTimeValidator::checkAdditionalFacetConstraintsBase() const
   {}
   
  -void DateTimeValidator::checkContent(const XMLCh* const content
  -                                   , bool               asBase)
  +void DateTimeValidator::checkContent(const XMLCh*             const content
  +                                   ,       ValidationContext* const context
  +                                   ,       bool                     asBase)
   {
   
       //validate against base validator if any
       DateTimeValidator *pBaseValidator = (DateTimeValidator*) 
this->getBaseValidator();
       if (pBaseValidator)
  -        pBaseValidator->checkContent(content, true);
  +        pBaseValidator->checkContent(content, context, true);
   
       int thisFacetsDefined = getFacetsDefined();
   
  
  
  
  1.6       +12 -5     
xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.hpp
  
  Index: DateTimeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DateTimeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DateTimeValidator.hpp     2 Oct 2003 19:21:06 -0000       1.5
  +++ DateTimeValidator.hpp     12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/10/02 19:21:06  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -102,7 +105,11 @@
   
        //@}
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       virtual int  compare(const XMLCh* const value1
                          , const XMLCh* const value2);
  @@ -142,9 +149,9 @@
       virtual int  compareValues(const XMLNumber* const lValue
                                , const XMLNumber* const rValue);
   
  -    virtual void checkContent(const XMLCh* const content
  -                            , bool               asBase);
  -
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   
       virtual void  setMaxInclusive(const XMLCh* const);
   
  
  
  
  1.16      +9 -4      
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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- DecimalDatatypeValidator.cpp      6 Nov 2003 15:30:07 -0000       1.15
  +++ DecimalDatatypeValidator.cpp      12 Nov 2003 20:32:03 -0000      1.16
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.16  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.15  2003/11/06 15:30:07  neilg
    * first part of PSVI/schema component model implementation, thanks to David 
Cargill.  This covers setting the PSVIHandler on parser objects, as well as 
implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of 
XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and 
XSAttributeUse.
    *
  @@ -470,7 +473,7 @@
           {
               for ( i = 0; i < enumLength; i++)
               {
  -                numBase->checkContent(fStrEnumeration->elementAt(i), false);
  +                numBase->checkContent(fStrEnumeration->elementAt(i), 
(ValidationContext*)0, false);
               }
           }
           catch (XMLException&)
  @@ -486,7 +489,7 @@
       //
       for ( i = 0; i < enumLength; i++)
       {
  -        checkContent(fStrEnumeration->elementAt(i), false);
  +        checkContent(fStrEnumeration->elementAt(i), (ValidationContext*)0, false);
       }
   
       fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true, 
fMemoryManager);
  @@ -502,13 +505,15 @@
   // -----------------------------------------------------------------------
   // Abstract interface from AbstractNumericValidator
   // -----------------------------------------------------------------------
  -void DecimalDatatypeValidator::checkContent( const XMLCh* const content, bool 
asBase)
  +void DecimalDatatypeValidator::checkContent(const XMLCh*             const content
  +                                           ,      ValidationContext* const context
  +                                           ,      bool                     asBase)
   {
   
       //validate against base validator if any
       DecimalDatatypeValidator *pBase = (DecimalDatatypeValidator*) 
this->getBaseValidator();
       if (pBase)
  -        pBase->checkContent(content, true);
  +        pBase->checkContent(content, context, true);
   
       int thisFacetsDefined = getFacetsDefined();
   
  
  
  
  1.9       +7 -3      
xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp
  
  Index: DecimalDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DecimalDatatypeValidator.hpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DecimalDatatypeValidator.hpp      2 Oct 2003 19:21:06 -0000       1.8
  +++ DecimalDatatypeValidator.hpp      12 Nov 2003 20:32:03 -0000      1.9
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.9  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.8  2003/10/02 19:21:06  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -209,8 +212,9 @@
   // Abstract interface from AbstractNumericValidator
   // -----------------------------------------------------------------------
   
  -    virtual void checkContent( const XMLCh* const content, bool asBase);
  -
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   public:
   
   // -----------------------------------------------------------------------
  
  
  
  1.9       +10 -5     
xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp
  
  Index: DoubleDatatypeValidator.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- DoubleDatatypeValidator.cpp       6 Nov 2003 15:30:07 -0000       1.8
  +++ DoubleDatatypeValidator.cpp       12 Nov 2003 20:32:03 -0000      1.9
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.9  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.8  2003/11/06 15:30:07  neilg
    * first part of PSVI/schema component model implementation, thanks to David 
Cargill.  This covers setting the PSVIHandler on parser objects, as well as 
implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of 
XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and 
XSAttributeUse.
    *
  @@ -236,7 +239,7 @@
           {
               for ( i = 0; i < enumLength; i++)
               {
  -                numBase->checkContent(fStrEnumeration->elementAt(i), false);
  +                numBase->checkContent(fStrEnumeration->elementAt(i), 
(ValidationContext*)0, false);
               }
           }
           catch (XMLException&)
  @@ -253,7 +256,7 @@
       //
       for ( i = 0; i < enumLength; i++)
       {
  -        checkContent(fStrEnumeration->elementAt(i), false);
  +        checkContent(fStrEnumeration->elementAt(i), (ValidationContext*)0, false);
       }
   
       fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true, 
fMemoryManager);
  @@ -269,13 +272,15 @@
   // Abstract interface from AbstractNumericValidator
   // -----------------------------------------------------------------------
   
  -void DoubleDatatypeValidator::checkContent( const XMLCh* const content, bool asBase)
  +void DoubleDatatypeValidator::checkContent(const XMLCh*             const content
  +                                          ,      ValidationContext* const context
  +                                          ,      bool                     asBase)
   {
   
       //validate against base validator if any
       DoubleDatatypeValidator *pBase = (DoubleDatatypeValidator*) 
this->getBaseValidator();
       if (pBase)
  -        pBase->checkContent(content, true);
  +        pBase->checkContent(content, context, true);
   
       // we check pattern first
       if ( (getFacetsDefined() & DatatypeValidator::FACET_PATTERN ) != 0 )
  
  
  
  1.6       +7 -2      
xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp
  
  Index: DoubleDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DoubleDatatypeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- DoubleDatatypeValidator.hpp       2 Oct 2003 19:21:06 -0000       1.5
  +++ DoubleDatatypeValidator.hpp       12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/10/02 19:21:06  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -204,7 +207,9 @@
   // Abstract interface from AbstractNumericValidator
   // -----------------------------------------------------------------------
   
  -    virtual void checkContent( const XMLCh* const content, bool asBase);
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   
   };
   
  
  
  
  1.6       +11 -7     
xml-xerces/c/src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp
  
  Index: ENTITYDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/ENTITYDatatypeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- ENTITYDatatypeValidator.hpp       30 Sep 2003 18:17:53 -0000      1.5
  +++ ENTITYDatatypeValidator.hpp       12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/09/30 18:17:53  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -146,7 +149,11 @@
        * is not valid.
        */
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       //@}
   
  @@ -185,6 +192,7 @@
       /** @name Setter Functions */
       //@{
   
  +    //deprecated
       inline void    setEntityDeclPool(NameIdPool<DTDEntityDecl>* const 
entityDeclPool);
   
       //@}
  @@ -211,20 +219,16 @@
       // -----------------------------------------------------------------------
       //  Private data members
       //
  -    //  fEntityDeclPool
  -    //     we do NOT own it.
        //              
       // -----------------------------------------------------------------------
   
  -    NameIdPool<DTDEntityDecl>*     fEntityDeclPool;
   };
   
   // -----------------------------------------------------------------------
   // Setter methods
   // -----------------------------------------------------------------------
  -inline void ENTITYDatatypeValidator::setEntityDeclPool(NameIdPool<DTDEntityDecl>* 
const entityDeclPool)
  +inline void ENTITYDatatypeValidator::setEntityDeclPool(NameIdPool<DTDEntityDecl>* 
const )
   {
  -    fEntityDeclPool = entityDeclPool;
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.9       +10 -5     
xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp
  
  Index: FloatDatatypeValidator.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.cpp,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- FloatDatatypeValidator.cpp        6 Nov 2003 15:30:07 -0000       1.8
  +++ FloatDatatypeValidator.cpp        12 Nov 2003 20:32:03 -0000      1.9
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.9  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.8  2003/11/06 15:30:07  neilg
    * first part of PSVI/schema component model implementation, thanks to David 
Cargill.  This covers setting the PSVIHandler on parser objects, as well as 
implementing XSNotation, XSSimpleTypeDefinition, XSIDCDefinition, and most of 
XSWildcard, XSComplexTypeDefinition, XSElementDeclaration, XSAttributeDeclaration and 
XSAttributeUse.
    *
  @@ -238,7 +241,7 @@
           {
               for ( i = 0; i < enumLength; i++)
               {
  -                numBase->checkContent(fStrEnumeration->elementAt(i), false);
  +                numBase->checkContent(fStrEnumeration->elementAt(i), 
(ValidationContext*)0, false);
               }
           }
           catch (XMLException&)
  @@ -255,7 +258,7 @@
       //
       for ( i = 0; i < enumLength; i++)
       {
  -        checkContent(fStrEnumeration->elementAt(i), false);
  +        checkContent(fStrEnumeration->elementAt(i), (ValidationContext*)0, false);
       }
   
       fEnumeration = new (fMemoryManager) RefVectorOf<XMLNumber>(enumLength, true,  
fMemoryManager);
  @@ -270,13 +273,15 @@
   // -----------------------------------------------------------------------
   // Abstract interface from AbstractNumericValidator
   // -----------------------------------------------------------------------
  -void FloatDatatypeValidator::checkContent( const XMLCh* const content, bool asBase)
  +void FloatDatatypeValidator::checkContent(const XMLCh*             const content
  +                                         ,      ValidationContext* const context
  +                                         ,      bool                     asBase)
   {
   
       //validate against base validator if any
       FloatDatatypeValidator *pBase = (FloatDatatypeValidator*) 
this->getBaseValidator();
       if (pBase)
  -        pBase->checkContent(content, true);
  +        pBase->checkContent(content, context, true);
   
       // we check pattern first
       if ( (getFacetsDefined() & DatatypeValidator::FACET_PATTERN ) != 0 )
  
  
  
  1.6       +7 -3      
xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp
  
  Index: FloatDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/FloatDatatypeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- FloatDatatypeValidator.hpp        2 Oct 2003 19:21:06 -0000       1.5
  +++ FloatDatatypeValidator.hpp        12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/10/02 19:21:06  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -204,8 +207,9 @@
   // Abstract interface from AbstractNumericValidator
   // -----------------------------------------------------------------------
   
  -    virtual void checkContent( const XMLCh* const content, bool asBase);
  -
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   };
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +11 -9     
xml-xerces/c/src/xercesc/validators/datatype/IDDatatypeValidator.hpp
  
  Index: IDDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/IDDatatypeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- IDDatatypeValidator.hpp   30 Sep 2003 18:17:53 -0000      1.5
  +++ IDDatatypeValidator.hpp   12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/09/30 18:17:53  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -149,7 +152,11 @@
        * is not valid.
        */
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       /**
         * Returns an instance of the base datatype validator class
  @@ -165,6 +172,7 @@
   
       //@}
   
  +    //deprecated
        inline void setIDRefList(RefHashTableOf<XMLRefInfo>* fIDRefList);
   
       /***
  @@ -190,21 +198,15 @@
   
   private:
   
  -    void addId(const XMLCh* const);
  -
       // -----------------------------------------------------------------------
       //  Private data members
       //
  -    //  fIDRefList
  -    //      we do not own it.
       //
       // -----------------------------------------------------------------------
  -    RefHashTableOf<XMLRefInfo>* fIDRefList;
   };
   
  -inline void IDDatatypeValidator::setIDRefList(RefHashTableOf<XMLRefInfo>* 
newIDRefList)
  +inline void IDDatatypeValidator::setIDRefList(RefHashTableOf<XMLRefInfo>* )
   {
  -    fIDRefList = newIDRefList;
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.6       +11 -9     
xml-xerces/c/src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp
  
  Index: IDREFDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/IDREFDatatypeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- IDREFDatatypeValidator.hpp        30 Sep 2003 18:17:53 -0000      1.5
  +++ IDREFDatatypeValidator.hpp        12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/09/30 18:17:53  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -148,7 +151,11 @@
        * is not valid.
        */
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       //@}
   
  @@ -164,6 +171,7 @@
           , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
       );
   
  +    //deprecated
       inline void setIDRefList(RefHashTableOf<XMLRefInfo>* fIDRefList);
   
       /***
  @@ -189,25 +197,19 @@
   
   private:
   
  -    void addIdRef(const XMLCh* const content);
  -
       // -----------------------------------------------------------------------
       //  Private data members
       //
  -    //  fIDRefList
  -    //      we do not own it.
       //
       // -----------------------------------------------------------------------
  -    RefHashTableOf<XMLRefInfo>* fIDRefList;
   
   };
   
   // -----------------------------------------------------------------------
   // Validation methods
   // -----------------------------------------------------------------------
  -inline void IDREFDatatypeValidator::setIDRefList(RefHashTableOf<XMLRefInfo>* 
newIDRefList)
  +inline void IDREFDatatypeValidator::setIDRefList(RefHashTableOf<XMLRefInfo>* )
   {
  -    fIDRefList = newIDRefList;
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  
  1.12      +19 -12    
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.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- ListDatatypeValidator.cpp 1 Oct 2003 16:32:41 -0000       1.11
  +++ ListDatatypeValidator.cpp 12 Nov 2003 20:32:03 -0000      1.12
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.12  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.11  2003/10/01 16:32:41  neilg
    * improve handling of out of memory conditions, bug #23415.  Thanks to David 
Cargill.
    *
  @@ -207,37 +210,41 @@
   
   }
   
  -void ListDatatypeValidator::validate( const XMLCh* const content)
  +void ListDatatypeValidator::validate( const XMLCh*             const content
  +                                    ,       ValidationContext* const context)
   {
       setContent(content);
       BaseRefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
       Janitor<BaseRefVectorOf<XMLCh> > janName(tokenVector);
  -    checkContent(tokenVector, content, false);
  +    checkContent(tokenVector, content, context, false);
   }
   
  -void ListDatatypeValidator::checkContent( const XMLCh* const content, bool asBase)
  +void ListDatatypeValidator::checkContent( const XMLCh*             const content
  +                                         ,      ValidationContext* const context
  +                                         ,      bool                     asBase)
   {
       setContent(content);
       BaseRefVectorOf<XMLCh>* tokenVector = XMLString::tokenizeString(content);
       Janitor<BaseRefVectorOf<XMLCh> > janName(tokenVector);
  -    checkContent(tokenVector, content, asBase);
  +    checkContent(tokenVector, content, context, asBase);
   }
   
   //
   // here content is a list of items
   //
  -void ListDatatypeValidator::checkContent( BaseRefVectorOf<XMLCh>* tokenVector
  -                                        , const XMLCh* const content
  -                                        , bool asBase)
  +void ListDatatypeValidator::checkContent(       BaseRefVectorOf<XMLCh>*       
tokenVector
  +                                        , const XMLCh*                  const 
content
  +                                        ,       ValidationContext*      const 
context
  +                                        ,       bool                          
asBase)
   {
       DatatypeValidator* bv = getBaseValidator();
   
       if (bv->getType() == DatatypeValidator::List)
  -        ((ListDatatypeValidator*)bv)->checkContent(tokenVector, content, true);
  +        ((ListDatatypeValidator*)bv)->checkContent(tokenVector, content, context, 
true);
       else
       {   // the ultimate itemType DTV
           for (unsigned int i = 0; i < tokenVector->size(); i++)
  -            bv->validate(tokenVector->elementAt(i));
  +            bv->validate(tokenVector->elementAt(i), context);
       }
   
       int thisFacetsDefined = getFacetsDefined();
  @@ -435,7 +442,7 @@
                       try
                       {
                           for ( int j = 0; j < tokenNumber; j++)
  -                            getBaseValidator()->validate(tempList->elementAt(j));
  +                            getBaseValidator()->validate(tempList->elementAt(j), 
(ValidationContext*)0);
                       }
                       catch(const OutOfMemoryException&)
                       {
  @@ -450,7 +457,7 @@
                       delete tempList;
   
                       // enum shall pass this->checkContent() as well.
  -                    checkContent(getEnumeration()->elementAt(i), false);
  +                    checkContent(getEnumeration()->elementAt(i), 
(ValidationContext*)0, false);
                   }
               }
   
  
  
  
  1.8       +17 -6     
xml-xerces/c/src/xercesc/validators/datatype/ListDatatypeValidator.hpp
  
  Index: ListDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/ListDatatypeValidator.hpp,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- ListDatatypeValidator.hpp 30 Sep 2003 21:31:30 -0000      1.7
  +++ ListDatatypeValidator.hpp 12 Nov 2003 20:32:03 -0000      1.8
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.8  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.7  2003/09/30 21:31:30  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -169,7 +172,11 @@
        * is not valid.
        */
   
  -     void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       //@}
   
  @@ -235,13 +242,17 @@
   
       virtual void inheritFacet();
   
  -    void checkContent(const XMLCh* const content, bool asBase);
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   
   private:
   
  -    void checkContent(BaseRefVectorOf<XMLCh>* tokenVector
  -                    , const XMLCh* const  content
  -                    , bool asBase);
  +    void checkContent(      BaseRefVectorOf<XMLCh>*        tokenVector
  +                    , const XMLCh*                  const  content
  +                    ,       ValidationContext*      const  context
  +                    ,       bool                           asBase
  +                    );
   
       bool valueSpaceCheck(BaseRefVectorOf<XMLCh>* tokenVector
                          , const XMLCh* const  enumStr) const;
  
  
  
  1.7       +7 -3      
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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- NameDatatypeValidator.cpp 30 Sep 2003 18:17:53 -0000      1.6
  +++ NameDatatypeValidator.cpp 12 Nov 2003 20:32:03 -0000      1.7
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.7  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.6  2003/09/30 18:17:53  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -148,13 +151,14 @@
       return ( XMLString::equals(lValue, rValue)? 0 : -1);
   }
   
  -void NameDatatypeValidator::validate(const XMLCh* const content)
  +void NameDatatypeValidator::validate(const XMLCh*             const content
  +                                   ,       ValidationContext* const context)
   {
       // use StringDatatypeValidator (which in turn, invoke
       // the baseValidator) to validate content against
       // facets if any.
       //
  -    StringDatatypeValidator::validate(content);
  +    StringDatatypeValidator::validate(content, context);
   
       return;
   }
  
  
  
  1.6       +9 -2      
xml-xerces/c/src/xercesc/validators/datatype/NameDatatypeValidator.hpp
  
  Index: NameDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/NameDatatypeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NameDatatypeValidator.hpp 30 Sep 2003 18:17:53 -0000      1.5
  +++ NameDatatypeValidator.hpp 12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/09/30 18:17:53  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -130,7 +133,11 @@
        * is not valid.
        */
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       //@}
   
  
  
  
  1.7       +7 -3      
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.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- NCNameDatatypeValidator.cpp       30 Sep 2003 18:17:53 -0000      1.6
  +++ NCNameDatatypeValidator.cpp       12 Nov 2003 20:32:03 -0000      1.7
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.7  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.6  2003/09/30 18:17:53  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -146,13 +149,14 @@
       return ( XMLString::equals(lValue, rValue)? 0 : -1);
   }
   
  -void NCNameDatatypeValidator::validate(const XMLCh* const content)
  +void NCNameDatatypeValidator::validate(const XMLCh*             const content
  +                                     ,       ValidationContext* const context)
   {
       // use StringDatatypeValidator (which in turn, invoke
       // the baseValidator) to validate content against
       // facets if any.
       //
  -    StringDatatypeValidator::validate(content);
  +    StringDatatypeValidator::validate(content, context);
   
       return;
   }
  
  
  
  1.6       +9 -2      
xml-xerces/c/src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp
  
  Index: NCNameDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/NCNameDatatypeValidator.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- NCNameDatatypeValidator.hpp       30 Sep 2003 18:17:53 -0000      1.5
  +++ NCNameDatatypeValidator.hpp       12 Nov 2003 20:32:03 -0000      1.6
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.6  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.5  2003/09/30 18:17:53  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -131,7 +134,11 @@
        * is not valid.
        */
   
  -     virtual void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       //@}
   
  
  
  
  1.16      +10 -5     
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.15
  retrieving revision 1.16
  diff -u -r1.15 -r1.16
  --- UnionDatatypeValidator.cpp        31 Oct 2003 22:17:11 -0000      1.15
  +++ UnionDatatypeValidator.cpp        12 Nov 2003 20:32:03 -0000      1.16
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.16  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.15  2003/10/31 22:17:11  peiyongz
    * solve ownership
    *
  @@ -283,7 +286,7 @@
                       // since there are no other facets for Union, parent
                       // checking is good enough.
                       //
  -                    baseValidator->validate(getEnumeration()->elementAt(i));
  +                    baseValidator->validate(getEnumeration()->elementAt(i), 
(ValidationContext*)0);
   
                   }
               }
  @@ -327,12 +330,14 @@
   // 3) the natvie Union DTV (the top level DTV) would invoke
   //        memberTypeValidator to validate
   //
  -void UnionDatatypeValidator::checkContent(const XMLCh* const content, bool asBase)
  +void UnionDatatypeValidator::checkContent(const XMLCh*             const content
  +                                        ,       ValidationContext* const context
  +                                        ,       bool                     asBase)
   {
   
       DatatypeValidator* bv = getBaseValidator();
       if (bv)
  -        ((UnionDatatypeValidator*)bv)->checkContent(content, true);
  +        ((UnionDatatypeValidator*)bv)->checkContent(content, context, true);
       else
       {   // 3) native union type
           // check content against each member type validator in Union
  @@ -346,7 +351,7 @@
   
               try
               {
  -                fMemberTypeValidators->elementAt(i)->validate(content);
  +                fMemberTypeValidators->elementAt(i)->validate(content, context);
                   memTypeValid = true;
                   
                   //set the validator of the type actually used to validate the 
content
  
  
  
  1.12      +15 -5     
xml-xerces/c/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp
  
  Index: UnionDatatypeValidator.hpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/UnionDatatypeValidator.hpp,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- UnionDatatypeValidator.hpp        7 Oct 2003 19:39:03 -0000       1.11
  +++ UnionDatatypeValidator.hpp        12 Nov 2003 20:32:03 -0000      1.12
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.12  2003/11/12 20:32:03  peiyongz
  + * Statless Grammar: ValidationContext
  + *
    * Revision 1.11  2003/10/07 19:39:03  peiyongz
    * Implementation of Serialization/Deserialization
    *
  @@ -204,7 +207,11 @@
        * is not valid.
        */
   
  -     void validate(const XMLCh* const content);
  +     virtual void validate
  +                 (
  +                  const XMLCh*             const content
  +                ,       ValidationContext* const context = 0
  +                  );
   
       /**
         * Checks whether a given type can be used as a substitute
  @@ -289,7 +296,9 @@
   
   private:
   
  -    void checkContent(const XMLCh* const content, bool asBase);
  +    virtual void checkContent(const XMLCh*             const content
  +                            ,       ValidationContext* const context
  +                            , bool                           asBase);
   
       void init(DatatypeValidator*            const baseValidator
               , RefHashTableOf<KVStringPair>* const facets
  @@ -334,9 +343,10 @@
       return (DatatypeValidator*) new (manager) UnionDatatypeValidator(this, facets, 
enums, finalSet, manager, fMemberTypeValidators, true);
   }
   
  -inline void UnionDatatypeValidator::validate( const XMLCh* const content)
  +inline void UnionDatatypeValidator::validate( const XMLCh*             const content
  +                                           ,        ValidationContext* const 
context)
   {
  -    checkContent(content, false);
  +    checkContent(content, context, false);
   }
   
   inline void UnionDatatypeValidator::cleanUp()
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to