You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by ne...@apache.org on 2003/11/24 06:10:26 UTC

cvs commit: xml-xerces/c/src/xercesc/validators/datatype UnionDatatypeValidator.cpp UnionDatatypeValidator.hpp

neilg       2003/11/23 21:10:26

  Modified:    c/src/xercesc/framework ValidationContext.hpp
               c/src/xercesc/internal ValidationContextImpl.cpp
                        ValidationContextImpl.hpp
               c/src/xercesc/validators/datatype UnionDatatypeValidator.cpp
                        UnionDatatypeValidator.hpp
  Log:
  implement method for determining member type of union that validated some value
  
  Revision  Changes    Path
  1.2       +15 -2     xml-xerces/c/src/xercesc/framework/ValidationContext.hpp
  
  Index: ValidationContext.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/ValidationContext.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ValidationContext.hpp	12 Nov 2003 20:28:16 -0000	1.1
  +++ ValidationContext.hpp	24 Nov 2003 05:10:26 -0000	1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/11/24 05:10:26  neilg
  + * implement method for determining member type of union that validated some value
  + *
    * Revision 1.1  2003/11/12 20:28:16  peiyongz
    * Stateless Grammar: ValidationContext
    *
  @@ -75,6 +78,7 @@
   
   class XMLRefInfo;
   class DTDEntityDecl;
  +class DatatypeValidator;
   
   class XMLPARSER_EXPORT ValidationContext : public XMemory
   {
  @@ -122,6 +126,14 @@
              
       virtual void                             checkEntity(const XMLCh * const ) const = 0 ;
   
  +    /**
  +      * Union datatype handling
  +      *
  +      */
  +
  +    virtual DatatypeValidator * getValidatingMemberType() const = 0 ;
  +    virtual void setValidatingMemberType(DatatypeValidator * validatingMemberType) = 0 ;
  +
       //@}
   
      
  @@ -158,3 +170,4 @@
   XERCES_CPP_NAMESPACE_END
   
   #endif
  +
  
  
  
  1.2       +6 -2      xml-xerces/c/src/xercesc/internal/ValidationContextImpl.cpp
  
  Index: ValidationContextImpl.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/ValidationContextImpl.cpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ValidationContextImpl.cpp	12 Nov 2003 20:29:47 -0000	1.1
  +++ ValidationContextImpl.cpp	24 Nov 2003 05:10:26 -0000	1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/11/24 05:10:26  neilg
  + * implement method for determining member type of union that validated some value
  + *
    * Revision 1.1  2003/11/12 20:29:47  peiyongz
    * Stateless Grammar: ValidationContext
    *
  @@ -88,6 +91,7 @@
   ,fIdRefList(0)
   ,fEntityDeclPool(0)
   ,fToCheckIdRefList(true)
  +,fValidatingMemberType(0)
   {
       fIdRefList = new (fMemoryManager) RefHashTableOf<XMLRefInfo>(109, fMemoryManager);
   }
  
  
  
  1.2       +34 -2     xml-xerces/c/src/xercesc/internal/ValidationContextImpl.hpp
  
  Index: ValidationContextImpl.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/ValidationContextImpl.hpp,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- ValidationContextImpl.hpp	12 Nov 2003 20:29:47 -0000	1.1
  +++ ValidationContextImpl.hpp	24 Nov 2003 05:10:26 -0000	1.2
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.2  2003/11/24 05:10:26  neilg
  + * implement method for determining member type of union that validated some value
  + *
    * Revision 1.1  2003/11/12 20:29:47  peiyongz
    * Stateless Grammar: ValidationContext
    *
  @@ -119,6 +122,15 @@
              
       virtual void                             checkEntity(const XMLCh * const ) const;
   
  +
  +    /**
  +      * Union datatype handling
  +      *
  +      */
  +
  +    virtual DatatypeValidator * getValidatingMemberType() const;
  +    virtual void setValidatingMemberType(DatatypeValidator * validatingMemberType) ;
  +
       //@}
     
   private:
  @@ -143,14 +155,34 @@
       //      default entities (such as &gt; &lt; ...) defined by the XML Standard.
       //
       //  fToAddToList
  +    //  fValidatingMemberType
  +    //      The member type in a union that actually
  +    //      validated some text.  Note that the validationContext does not
  +    //      own this object, and the value of getValidatingMemberType
  +    //      will not be accurate unless the type of the most recently-validated
  +    //      element/attribute is in fact a union datatype.
       // -----------------------------------------------------------------------
   
       RefHashTableOf<XMLRefInfo>*         fIdRefList;
       const NameIdPool<DTDEntityDecl>*    fEntityDeclPool;
       bool                                fToCheckIdRefList;
  +    DatatypeValidator *                 fValidatingMemberType;
   
   };
   
  +
  +
  +inline DatatypeValidator * ValidationContextImpl::getValidatingMemberType() const
  +{
  +    return fValidatingMemberType;
  +}
  +
  +inline void ValidationContextImpl::setValidatingMemberType(DatatypeValidator * validatingMemberType) 
  +{
  +    fValidatingMemberType = validatingMemberType;
  +}
  +
   XERCES_CPP_NAMESPACE_END
   
   #endif
  +
  
  
  
  1.18      +9 -4      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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- UnionDatatypeValidator.cpp	13 Nov 2003 23:19:18 -0000	1.17
  +++ UnionDatatypeValidator.cpp	24 Nov 2003 05:10:26 -0000	1.18
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.18  2003/11/24 05:10:26  neilg
  + * implement method for determining member type of union that validated some value
  + *
    * Revision 1.17  2003/11/13 23:19:18  peiyongz
    * initSize
    *
  @@ -138,9 +141,8 @@
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -static const int BUF_LEN = 64;
  +static const unsigned int BUF_LEN = 64;
   static XMLCh value1[BUF_LEN+1];
  -static XMLCh value2[BUF_LEN+1];
   
   // ---------------------------------------------------------------------------
   //  Constructors and Destructor
  @@ -360,6 +362,9 @@
                   //set the validator of the type actually used to validate the content
                   DatatypeValidator *dtv = fMemberTypeValidators->elementAt(i);
                   fValidatedDatatype = dtv;
  +                // context will be null during schema construction
  +                if(context)
  +                    context->setValidatingMemberType(dtv);
               }
               catch (XMLException&)
               {
  
  
  
  1.13      +6 -2      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.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- UnionDatatypeValidator.hpp	12 Nov 2003 20:32:03 -0000	1.12
  +++ UnionDatatypeValidator.hpp	24 Nov 2003 05:10:26 -0000	1.13
  @@ -57,6 +57,9 @@
   /*
    * $Id$
    * $Log$
  + * Revision 1.13  2003/11/24 05:10:26  neilg
  + * implement method for determining member type of union that validated some value
  + *
    * Revision 1.12  2003/11/12 20:32:03  peiyongz
    * Statless Grammar: ValidationContext
    *
  @@ -462,3 +465,4 @@
   /**
     * End of file UnionDatatypeValidator.hpp
     */
  +
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xerces-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xerces-cvs-help@xml.apache.org