You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by pe...@apache.org on 2003/11/12 21:32:04 UTC

cvs commit: xml-xerces/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

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: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org