peiyongz    2004/08/31 08:14:47

  Modified:    c/src/xercesc/framework/psvi XSValue.hpp XSValue.cpp
  Log:
  remove XSValueContext
  
  Revision  Changes    Path
  1.6       +68 -138   xml-xerces/c/src/xercesc/framework/psvi/XSValue.hpp
  
  Index: XSValue.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSValue.hpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XSValue.hpp       17 Aug 2004 21:11:41 -0000      1.5
  +++ XSValue.hpp       31 Aug 2004 15:14:47 -0000      1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2004/08/31 15:14:47  peiyongz
  + * remove XSValueContext
  + *
    * Revision 1.5  2004/08/17 21:11:41  peiyongz
    * no more Unrepresentable
    *
  @@ -78,124 +81,6 @@
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  -class XMLPARSER_EXPORT XSValueContext : public XMemory
  -{
  -public:
  -
  -    enum XMLVersion {
  -            ver_10,
  -            ver_11
  -    };
  -
  -    enum Status {
  -            st_Init,
  -            st_Invalid,
  -            st_InvalidChar,     //for numeric
  -            st_InvalidRange,    //for numeric
  -            st_NoCanRep,
  -            st_NoActVal,
  -            st_NotSupported,
  -            st_CantCreateRegEx,
  -            st_UnknownType
  -    };
  -
  -    //  Constructors and Destructor
  -    // -----------------------------------------------------------------------
  -    /** @name Constructors */
  -    //@{
  -
  -    /**
  -      * The default constructor 
  -      */
  -    XSValueContext
  -                  (
  -                    XMLVersion   version    = ver_10
  -                 ,  bool         toValidate = true 
  -                  );
  -
  -    //@};
  -
  -    /** @name Destructor */
  -    //@{
  -    ~XSValueContext();
  -    //@}
  -
  -    /** @name Getters */
  -    //@{
  -
  -    inline
  -    XMLVersion  getVersion()       const;
  -    
  -    inline
  -    bool        getValidation()    const;
  -
  -    inline
  -    Status      getStatus()        const;
  -
  -    //@}
  -
  -    /** @name Setters */
  -    //@{
  -    inline
  -    void        setVersion(XMLVersion newVersion);
  -
  -    inline
  -    void        setValidation(bool    toValidate);
  -    //@}
  -
  -private:
  -    // -----------------------------------------------------------------------
  -    //  Unimplemented constructors and operators
  -    // -----------------------------------------------------------------------
  -    XSValueContext(const XSValueContext&);
  -    XSValueContext & operator=(const XSValueContext &);
  -
  -    // -----------------------------------------------------------------------
  -    //  data members
  -    // -----------------------------------------------------------------------
  -    XMLVersion    fVersion;
  -    bool          fToValidate;
  -    Status        fStatus;
  -
  -    friend class XSValue;
  -};
  -
  -inline
  -XSValueContext::XMLVersion  
  -XSValueContext::getVersion() const
  -{
  -    return fVersion;
  -}
  -    
  -inline
  -bool
  -XSValueContext::getValidation() const
  -{
  -    return fToValidate;
  -}
  -
  -inline
  -XSValueContext::Status
  -XSValueContext::getStatus() const
  -{
  -    return fStatus;
  -}
  -
  -inline
  -void 
  -XSValueContext::setVersion(XSValueContext::XMLVersion newVersion)
  -{
  -    fVersion = newVersion;
  -}
  -
  -inline
  -void
  -XSValueContext::setValidation(bool toValidate)
  -{
  -    fToValidate = toValidate;
  -}
  -
  -
   class RegularExpression;
   
   class XMLPARSER_EXPORT XSValue : public XMemory
  @@ -250,6 +135,23 @@
                 dt_MAXCOUNT             = 44
       };
   
  +    enum XMLVersion {
  +            ver_10,
  +            ver_11
  +    };
  +
  +    enum Status {
  +            st_Init,
  +            st_Invalid,
  +            st_InvalidChar,     //for numeric
  +            st_InvalidRange,    //for numeric
  +            st_NoCanRep,
  +            st_NoActVal,
  +            st_NotSupported,
  +            st_CantCreateRegEx,
  +            st_UnknownType
  +    };
  +
       enum DataGroup {
               dg_numerics,
               dg_datetimes,
  @@ -272,8 +174,10 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  -              ,       MemoryManager*  const manager = 
XMLPlatformUtils::fgMemoryManager
  +              ,       Status&               status
  +              ,       XMLVersion            version    = ver_10
  +              ,       bool                  toValidate = true 
  +              ,       MemoryManager*  const manager    = 
XMLPlatformUtils::fgMemoryManager
                );
   
       static
  @@ -281,7 +185,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version    = ver_10
  +              ,       bool                  toValidate = true 
                 ,       MemoryManager*  const manager    = 
XMLPlatformUtils::fgMemoryManager
                );
   
  @@ -290,8 +196,10 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  -              ,       MemoryManager*  const manager = 
XMLPlatformUtils::fgMemoryManager
  +              ,       Status&               status
  +              ,       XMLVersion            version    = ver_10
  +              ,       bool                  toValidate = true 
  +              ,       MemoryManager*  const manager    = 
XMLPlatformUtils::fgMemoryManager
                );
   
       //@}
  @@ -318,6 +226,7 @@
                               unsigned int     f_scale;  
                               unsigned long    f_integral;
                               unsigned long    f_fraction;
  +                            double           f_dvalue;
               } f_decimal;
   
               struct datetime {
  @@ -379,7 +288,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -388,7 +299,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -397,7 +310,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -406,7 +321,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -415,7 +332,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -424,7 +343,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -433,7 +354,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -442,7 +365,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -451,7 +376,9 @@
                (
                   const XMLCh*          const content    
                 ,       DataType              datatype
  -              ,       XSValueContext&       context
  +              ,       Status&               status
  +              ,       XMLVersion            version
  +              ,       bool                  toValidate
                 ,       MemoryManager*  const manager
                );
   
  @@ -459,11 +386,13 @@
       bool      getActualValue
                 (
                    const XMLCh*         const content
  -               ,       XSValueContext&      context
  -               ,       int                  ct
  -               ,       t_value&             retVal               
  -               ,       int                  base
  -               ,       MemoryManager* const manager
  +               ,       Status&               status
  +               ,       XMLVersion            version    
  +               ,       bool                  toValidate 
  +               ,       int                   ct
  +               ,       t_value&              retVal               
  +               ,       int                   base
  +               ,       MemoryManager* const  manager
                  );
   
       // -----------------------------------------------------------------------
  @@ -471,6 +400,7 @@
       // -----------------------------------------------------------------------
       bool                fMemAllocated;
       MemoryManager*      fMemoryManager;
  +
   };
   
   
  
  
  
  1.6       +142 -114  xml-xerces/c/src/xercesc/framework/psvi/XSValue.cpp
  
  Index: XSValue.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/XSValue.cpp,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- XSValue.cpp       24 Aug 2004 15:59:20 -0000      1.5
  +++ XSValue.cpp       31 Aug 2004 15:14:47 -0000      1.6
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.6  2004/08/31 15:14:47  peiyongz
  + * remove XSValueContext
  + *
    * Revision 1.5  2004/08/24 15:59:20  peiyongz
    * using SCHAR_MIN/SCHAR_MAX
    *
  @@ -259,7 +262,9 @@
   // ---------------------------------------------------------------------------
   bool XSValue::validate(const XMLCh*         const content    
                        ,       DataType             datatype
  -                     ,       XSValueContext&      context
  +                     ,       Status&              status
  +                     ,       XMLVersion           version
  +                     ,       bool                 toValidate
                        ,       MemoryManager* const manager)
   {
   
  @@ -269,16 +274,16 @@
       switch (inGroup[datatype])
       {
       case XSValue::dg_numerics :
  -        return validateNumerics(content, datatype, context, manager);
  +        return validateNumerics(content, datatype, status, version, toValidate, 
manager);
           break;
       case XSValue::dg_datetimes:
  -        return validateDateTimes(content, datatype, context, manager);
  +        return validateDateTimes(content, datatype, status, version, toValidate, 
manager);
           break;
       case XSValue::dg_strings:
  -        return validateStrings(content, datatype, context, manager);
  +        return validateStrings(content, datatype, status, version, toValidate, 
manager);
           break;
       default:
  -        context.fStatus = XSValueContext::st_UnknownType;
  +        status = st_UnknownType;
           return false;
           break;
       }
  @@ -288,7 +293,9 @@
   XMLCh* 
   XSValue::getCanonicalRepresentation(const XMLCh*         const content    
                                     ,       DataType             datatype
  -                                  ,       XSValueContext&      context
  +                                  ,       Status&              status
  +                                  ,       XMLVersion           version
  +                                  ,       bool                 toValidate
                                     ,       MemoryManager* const manager)
   {
    
  @@ -298,16 +305,16 @@
       switch (inGroup[datatype])
       {
       case XSValue::dg_numerics :
  -        return getCanRepNumerics(content, datatype, context, manager);
  +        return getCanRepNumerics(content, datatype,  status, version, toValidate, 
manager);
           break;
       case XSValue::dg_datetimes:
  -        return getCanRepDateTimes(content, datatype, context, manager);
  +        return getCanRepDateTimes(content, datatype,  status, version, toValidate, 
manager);
           break;
       case XSValue::dg_strings:
  -        return getCanRepStrings(content, datatype, context, manager);
  +        return getCanRepStrings(content, datatype,  status, version, toValidate, 
manager);
           break;
       default:
  -        context.fStatus = XSValueContext::st_UnknownType;
  +        status = st_UnknownType;
           return 0;
           break;
       }
  @@ -316,7 +323,9 @@
   
   XSValue* XSValue::getActualValue(const XMLCh*         const content    
                                  ,       DataType             datatype
  -                               ,       XSValueContext&      context
  +                               ,       Status&              status
  +                               ,       XMLVersion           version
  +                               ,       bool                 toValidate
                                  ,       MemoryManager* const manager)
   {
   
  @@ -326,16 +335,16 @@
       switch (inGroup[datatype])
       {
       case XSValue::dg_numerics :
  -        return getActValNumerics(content, datatype, context, manager);
  +        return getActValNumerics(content, datatype,  status, version, toValidate, 
manager);
           break;
       case XSValue::dg_datetimes:
  -        return getActValDateTimes(content, datatype, context, manager);
  +        return getActValDateTimes(content, datatype,  status, version, toValidate, 
manager);
           break;
       case XSValue::dg_strings:
  -        return getActValStrings(content, datatype, context, manager);
  +        return getActValStrings(content, datatype,  status, version, toValidate, 
manager);
           break;
       default:
  -        context.fStatus = XSValueContext::st_UnknownType;
  +        status = st_UnknownType;
           return 0;
           break;
       }
  @@ -353,7 +362,9 @@
   bool 
   XSValue::validateNumerics(const XMLCh*         const content    
                           ,       DataType             datatype
  -                        ,       XSValueContext&      context
  +                        ,       Status&              status
  +                        ,       XMLVersion           version
  +                        ,       bool                 toValidate
                           ,       MemoryManager* const manager)
   {
   
  @@ -371,7 +382,7 @@
               XMLFloat data(content, manager);
               if (data.isDataConverted())
               {
  -                context.fStatus = XSValueContext::st_InvalidRange;
  +                status = st_InvalidRange;
                   return false;
               }
           }
  @@ -382,7 +393,7 @@
               XMLDouble  data(content, manager);
               if (data.isDataConverted())
               {
  -                context.fStatus = XSValueContext::st_InvalidRange;
  +                status = st_InvalidRange;
                   return false;
               }
           }
  @@ -421,7 +432,7 @@
                                                       , manager) 
                                                       == XMLNumber::GREATER_THAN)
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -436,7 +447,7 @@
                                                      , manager) 
                                                      == XMLNumber::GREATER_THAN)
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -451,7 +462,7 @@
                                                      , manager) 
                                                      == XMLNumber::LESS_THAN)
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -466,7 +477,7 @@
                                                      , manager) 
                                                      == XMLNumber::LESS_THAN)
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -487,7 +498,7 @@
                                                       , manager) 
                                                       == XMLNumber::GREATER_THAN))
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -508,7 +519,7 @@
                                                       , manager) 
                                                       == XMLNumber::GREATER_THAN))
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -530,7 +541,9 @@
   
               if ( !getActualValue( 
                                     content
  -                                , context
  +                                , status
  +                                , version
  +                                , toValidate
                                   , convert_2_long
                                   , actVal
                                   , base_decimal
  @@ -548,7 +561,7 @@
                       if ((actVal.f_long < INT_MIN) || 
                           (actVal.f_long > INT_MAX)  )
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -559,7 +572,7 @@
                       if ((actVal.f_long < SHRT_MIN) || 
                           (actVal.f_long > SHRT_MAX)  )
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -570,7 +583,7 @@
                       if ((actVal.f_long < SCHAR_MIN) || 
                           (actVal.f_long > SCHAR_MAX)  )
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return false;
                       }
                   }
  @@ -589,7 +602,9 @@
   
               if ( !getActualValue( 
                                     content
  -                                , context
  +                                , status
  +                                , version
  +                                , toValidate
                                   , convert_2_ulong
                                   , actVal
                                   , base_decimal
  @@ -605,7 +620,7 @@
                   // strtol() won't overflow for UINT_MAX+1 on 64 box
                   if (actVal.f_long > UINT_MAX) 
                   {
  -                    context.fStatus = XSValueContext::st_InvalidRange;
  +                    status = st_InvalidRange;
                       return false;
                   }
                   break;
  @@ -613,7 +628,7 @@
                   // error: > USHRT_MAX
                   if (actVal.f_ulong > USHRT_MAX) 
                   {
  -                    context.fStatus = XSValueContext::st_InvalidRange;
  +                    status = st_InvalidRange;
                       return false;
                   }
                   break;
  @@ -621,7 +636,7 @@
                   // error: > UCHAR_MAX
                   if (actVal.f_ulong > UCHAR_MAX) 
                   {
  -                    context.fStatus = XSValueContext::st_InvalidRange;
  +                    status = st_InvalidRange;
                       return false;
                   }
                   break;
  @@ -638,7 +653,7 @@
       {
           //getActValue()/getCanonical() need to know the failure details
           //if validation is required
  -        context.fStatus = XSValueContext::st_InvalidChar; 
  +        status = st_InvalidChar; 
           return false; 
       }
   
  @@ -646,7 +661,9 @@
   
   bool XSValue::validateDateTimes(const XMLCh*         const content    
                                 ,       DataType             datatype
  -                              ,       XSValueContext&      context
  +                              ,       Status&              status
  +                              ,       XMLVersion           version
  +                              ,       bool                 toValidate
                                 ,       MemoryManager* const manager)
   {
   
  @@ -695,7 +712,7 @@
       {
           //getActValue()/getCanonical() need to know the failure details
           //if validation is required
  -        context.fStatus = XSValueContext::st_Invalid;
  +        status = st_Invalid;
           return false; 
       }      
   
  @@ -703,7 +720,9 @@
   
   bool XSValue::validateStrings(const XMLCh*         const content    
                               ,       DataType             datatype
  -                            ,       XSValueContext&      context
  +                            ,       Status&              status
  +                            ,       XMLVersion           version
  +                            ,       bool                 toValidate
                               ,       MemoryManager* const manager)
   {
   
  @@ -722,7 +741,7 @@
   
                   if (i == XMLUni::fgBooleanValueSpaceArraySize)
                   {
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
                       return false;
                   }
               }
  @@ -731,7 +750,7 @@
               {
                   if (HexBin::getDataLength(content) == -1) 
                   {
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
                       return false;
                   }
               }
  @@ -740,7 +759,7 @@
               {
                   if (Base64::getDataLength(content, manager) == -1) 
                   {
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
                       return false;
                   }
               }
  @@ -749,7 +768,7 @@
               return XMLUri::isValidURI(true, content);
               break;
           case XSValue::dt_QName:
  -            return (context.getVersion() == XSValueContext::ver_10) ? 
  +            return (version == ver_10) ? 
                   XMLChar1_0::isValidQName(content, XMLString::stringLen(content)) :
                   XMLChar1_1::isValidQName(content, XMLString::stringLen(content));
               break;
  @@ -760,7 +779,7 @@
               {
                   XMLCh*   rawPtr = (XMLCh*) content;
   
  -                if (context.getVersion() == XSValueContext::ver_10)
  +                if (version == ver_10)
                   {
                       while (*rawPtr) 
                           if (!XMLChar1_0::isXMLChar(*rawPtr++)) 
  @@ -779,7 +798,7 @@
               {
                   XMLCh*   rawPtr = (XMLCh*) content;
   
  -                if (context.getVersion() == XSValueContext::ver_10)
  +                if (version == ver_10)
                   {
                       while (*rawPtr) 
                       {
  @@ -814,7 +833,7 @@
                   XMLCh*   rawPtr = (XMLCh*) content;
                   bool     inWS = false;
   
  -                if (context.getVersion() == XSValueContext::ver_10)
  +                if (version == ver_10)
                   {
   
                       // Check leading/Trailing white space
  @@ -880,7 +899,7 @@
                   RegularExpression* regEx = getRegEx();
                   if (!regEx)
                   {
  -                    context.fStatus = XSValueContext::st_CantCreateRegEx;
  +                    status = st_CantCreateRegEx;
                       return false;
                   }
   
  @@ -889,7 +908,7 @@
   
               break;
           case XSValue::dt_NMTOKEN:
  -            return (context.getVersion() == XSValueContext::ver_10) ? 
  +            return (version == ver_10) ? 
                   XMLChar1_0::isValidNmtoken(content, XMLString::stringLen(content)) :
                   XMLChar1_1::isValidNmtoken(content, XMLString::stringLen(content));
               break;
  @@ -898,7 +917,7 @@
               {
                   XMLStringTokenizer tokenizer(content, Separator_20, manager);
   
  -                if (context.getVersion() ==  XSValueContext::ver_10 )
  +                if (version ==  ver_10 )
                   {
                       while (tokenizer.hasMoreTokens()) 
                       {
  @@ -921,7 +940,7 @@
               }
               break;
           case XSValue::dt_Name:
  -            return (context.getVersion() == XSValueContext::ver_10) ? 
  +            return (version == ver_10) ? 
                   XMLChar1_0::isValidName(content, XMLString::stringLen(content)) :
                   XMLChar1_1::isValidName(content, XMLString::stringLen(content));
               break;
  @@ -929,7 +948,7 @@
           case XSValue::dt_ID:
           case XSValue::dt_IDREF:
           case XSValue::dt_ENTITY:
  -            return (context.getVersion() == XSValueContext::ver_10) ? 
  +            return (version == ver_10) ? 
                   XMLChar1_0::isValidNCName(content, XMLString::stringLen(content)) :
                   XMLChar1_1::isValidNCName(content, XMLString::stringLen(content));
               break;
  @@ -938,7 +957,7 @@
               {
                   XMLStringTokenizer tokenizer(content, Separator_ws, manager);
   
  -                if (context.getVersion() ==  XSValueContext::ver_10 )
  +                if (version ==  ver_10 )
                   {
                       while (tokenizer.hasMoreTokens()) 
                       {
  @@ -970,7 +989,7 @@
   
       catch (...)
       {
  -        context.fStatus = XSValueContext::st_Invalid;
  +        status = st_Invalid;
           return false; 
       }
   
  @@ -979,7 +998,9 @@
   
   XMLCh* XSValue::getCanRepNumerics(const XMLCh*         const content    
                                   ,       DataType             datatype
  -                                ,       XSValueContext&      context
  +                                ,       Status&              status
  +                                ,       XMLVersion           version
  +                                ,       bool                 toValidate
                                   ,       MemoryManager* const manager)
   {
       try 
  @@ -988,7 +1009,7 @@
           // All getCanonicalRepresentation does lexcial space validation only
           // (no range checking), therefore if validation is requied,
           // we need to pass the content to the validate interface for complete 
checking
  -        if (context.getValidation() && !validateNumerics(content, datatype, 
context, manager))
  +        if (toValidate && !validateNumerics(content, datatype, status, version, 
toValidate, manager))
               return 0;
   
           XMLCh* retVal;
  @@ -998,7 +1019,7 @@
               retVal = XMLBigDecimal::getCanonicalRepresentation(content, manager);
   
               if (!retVal)
  -                context.fStatus = XSValueContext::st_InvalidChar;
  +                status = st_InvalidChar;
   
               return retVal;
   
  @@ -1008,7 +1029,7 @@
               retVal = XMLAbstractDoubleFloat::getCanonicalRepresentation(content, 
manager);
   
               if (!retVal)
  -                context.fStatus = XSValueContext::st_InvalidChar;
  +                status = st_InvalidChar;
   
               return retVal;
           }  
  @@ -1017,7 +1038,7 @@
               retVal = XMLBigInteger::getCanonicalRepresentation(content, manager, 
datatype == XSValue::dt_nonPositiveInteger);
   
               if (!retVal)
  -                context.fStatus = XSValueContext::st_InvalidChar;
  +                status = st_InvalidChar;
   
               return retVal;
           }
  @@ -1025,7 +1046,7 @@
   
       catch (...)
       {
  -        context.fStatus = XSValueContext::st_InvalidChar;
  +        status = st_InvalidChar;
           return 0;
       }
   
  @@ -1033,7 +1054,9 @@
   
   XMLCh* XSValue::getCanRepDateTimes(const XMLCh*         const content    
                                    ,       DataType             datatype
  -                                 ,       XSValueContext&      context
  +                                 ,       Status&              status
  +                                 ,       XMLVersion           version
  +                                 ,       bool                 toValidate
                                    ,       MemoryManager* const manager)
   {
   
  @@ -1062,10 +1085,10 @@
           case XSValue::dt_gDay:
           case XSValue::dt_gMonth:
               {
  -                if (context.getValidation() && !validateDateTimes(content, 
datatype, context, manager))
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                if (toValidate && !validateDateTimes(content, datatype, status, 
version, toValidate, manager))
  +                    status = st_Invalid;
                   else
  -                    context.fStatus = XSValueContext::st_NoCanRep;
  +                    status = st_NoCanRep;
   
                   return 0;
               }
  @@ -1078,7 +1101,7 @@
   
       catch (...)
       {
  -        context.fStatus = XSValueContext::st_Invalid;
  +        status = st_Invalid;
           return 0;
       }
   
  @@ -1086,7 +1109,9 @@
   
   XMLCh* XSValue::getCanRepStrings(const XMLCh*         const content    
                                  ,       DataType             datatype
  -                               ,       XSValueContext&      context
  +                               ,       Status&              status
  +                               ,       XMLVersion           version
  +                               ,       bool                 toValidate
                                  ,       MemoryManager* const manager)
   {
       try
  @@ -1108,7 +1133,7 @@
                   }
                   else
                   {
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
                       return 0;
                   }
               }
  @@ -1118,7 +1143,7 @@
                   //HexBin::getCanonicalRepresentation does validation automatically
                   XMLCh* canRep = HexBin::getCanonicalRepresentation(content, 
manager);
                   if (!canRep)
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
   
                   return canRep;
               }
  @@ -1128,7 +1153,7 @@
                   //Base64::getCanonicalRepresentation does validation automatically
                   XMLCh* canRep = Base64::getCanonicalRepresentation(content, 
manager);
                   if (!canRep)
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
   
                   return canRep;
               }
  @@ -1150,10 +1175,10 @@
           case XSValue::dt_ENTITIES:
           case XSValue::dt_IDREFS:
               {
  -                if (context.getValidation() && !validateStrings(content, datatype, 
context, manager))
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                if (toValidate && !validateStrings(content, datatype, status, 
version, toValidate, manager))
  +                    status = st_Invalid;
                   else
  -                    context.fStatus = XSValueContext::st_NoCanRep;
  +                    status = st_NoCanRep;
   
                   return 0;
               }
  @@ -1166,7 +1191,7 @@
   
       catch (...)
       {
  -        context.fStatus = XSValueContext::st_Invalid;
  +        status = st_Invalid;
           return 0;
       }
   }
  @@ -1174,7 +1199,9 @@
   XSValue*
   XSValue::getActValNumerics(const XMLCh*         const content    
                            ,       DataType             datatype
  -                         ,       XSValueContext&      context
  +                         ,       Status&              status
  +                         ,       XMLVersion           version
  +                         ,       bool                 toValidate
                            ,       MemoryManager* const manager)
   {
   
  @@ -1193,7 +1220,9 @@
   
               if ( !getActualValue( 
                                     &(intVal[totalDigit - scale])
  -                                , context
  +                                , status
  +                                , version
  +                                , toValidate
                                   , convert_2_ulong
                                   , actValFract
                                   , base_decimal
  @@ -1208,7 +1237,9 @@
   
               if ( !getActualValue( 
                                     intVal
  -                                , context
  +                                , status
  +                                , version
  +                                , toValidate
                                   , convert_2_ulong
                                   , actValInt
                                   , base_decimal
  @@ -1233,7 +1264,7 @@
               XMLFloat data(content, manager);
               if (data.isDataConverted())
               {
  -                context.fStatus = XSValueContext::st_InvalidRange;
  +                status = st_InvalidRange;
                   return 0;
               }
               else
  @@ -1250,7 +1281,7 @@
               XMLDouble  data(content, manager);
               if (data.isDataConverted())
               {
  -                context.fStatus = XSValueContext::st_InvalidRange;
  +                status = st_InvalidRange;
                   return 0;
               }
               else
  @@ -1270,7 +1301,9 @@
   
               if ( !getActualValue( 
                                     content
  -                                , context
  +                                , status
  +                                , version
  +                                , toValidate
                                   , convert_2_long
                                   , actVal
                                   , base_decimal
  @@ -1347,7 +1380,9 @@
   
               if ( !getActualValue( 
                                     content
  -                                , context
  +                                , status
  +                                , version
  +                                , toValidate
                                   , convert_2_long
                                   , actVal
                                   , base_decimal
  @@ -1373,7 +1408,7 @@
                       if ((actVal.f_long < INT_MIN) || 
                           (actVal.f_long > INT_MAX)  )
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return 0;
                       }
   
  @@ -1387,7 +1422,7 @@
                   {
                       if ((actVal.f_long < SHRT_MIN) || (actVal.f_long > SHRT_MAX))
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return 0;
                       }
   
  @@ -1401,7 +1436,7 @@
                   {
                       if ((actVal.f_long < SCHAR_MIN) || (actVal.f_long > SCHAR_MAX))
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return 0;
                       }
   
  @@ -1422,7 +1457,9 @@
   
               if ( !getActualValue( 
                                     content
  -                                , context
  +                                , status
  +                                , version
  +                                , toValidate
                                   , convert_2_ulong
                                   , actVal
                                   , base_decimal
  @@ -1448,7 +1485,7 @@
   
                       if (actVal.f_long > UINT_MAX) 
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return 0;
                       }
   
  @@ -1462,7 +1499,7 @@
                   {
                       if (actVal.f_ulong > USHRT_MAX)
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return 0;
                       }
   
  @@ -1476,7 +1513,7 @@
                   {
                       if (actVal.f_ulong > UCHAR_MAX)
                       {
  -                        context.fStatus = XSValueContext::st_InvalidRange;
  +                        status = st_InvalidRange;
                           return 0;
                       }
   
  @@ -1494,7 +1531,7 @@
   
       catch (...)
       {
  -        context.fStatus = XSValueContext::st_InvalidChar;
  +        status = st_InvalidChar;
           return 0; 
       }
   }
  @@ -1502,7 +1539,9 @@
   XSValue*  
   XSValue::getActValDateTimes(const XMLCh*         const content    
                             ,       DataType             datatype
  -                          ,       XSValueContext&      context
  +                          ,       Status&              status
  +                          ,       XMLVersion           version
  +                          ,       bool                 toValidate
                             ,       MemoryManager* const manager)
   {
       try
  @@ -1563,7 +1602,7 @@
   
       catch (...)
       {
  -        context.fStatus = XSValueContext::st_Invalid;
  +        status = st_Invalid;
           return 0; 
       }
   
  @@ -1572,7 +1611,9 @@
   XSValue*  
   XSValue::getActValStrings(const XMLCh*         const content    
                           ,       DataType             datatype
  -                        ,       XSValueContext&      context
  +                        ,       Status&              status
  +                        ,       XMLVersion           version
  +                        ,       bool                 toValidate
                           ,       MemoryManager* const manager)
   {
       try
  @@ -1598,7 +1639,7 @@
                   }
                   else
                   {
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
                       return 0;
                   }
               }
  @@ -1609,7 +1650,7 @@
   
                   if (!decodedData)
                   {
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
                       return 0;
                   }
   
  @@ -1626,7 +1667,7 @@
   
                   if (!decodedData)
                   {
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                    status = st_Invalid;
                       return 0;
                   }
   
  @@ -1653,10 +1694,10 @@
           case XSValue::dt_ENTITIES:
           case XSValue::dt_IDREFS:
               {
  -                if (context.getValidation() && !validateStrings(content, datatype, 
context, manager))
  -                    context.fStatus = XSValueContext::st_Invalid;
  +                if (toValidate && !validateStrings(content, datatype, status, 
version, toValidate, manager))
  +                    status = st_Invalid;
                   else
  -                    context.fStatus = XSValueContext::st_NoActVal;
  +                    status = st_NoActVal;
   
                   return 0;
               }
  @@ -1669,7 +1710,7 @@
   
       catch (...)
       {
  -        context.fStatus = XSValueContext::st_Invalid;
  +        status = st_Invalid;
           return 0; 
       }
   }
  @@ -1678,7 +1719,9 @@
   //  Utilities
   // ---------------------------------------------------------------------------
   bool XSValue::getActualValue(const XMLCh*         const content
  -                           ,       XSValueContext&      context
  +                           ,       Status&              status
  +                           ,       XMLVersion           version    
  +                           ,       bool                 toValidate 
                              ,       int                  ct
                              ,       t_value&             retVal               
                              ,       int                  base
  @@ -1698,7 +1741,7 @@
       {
           if (-1 != XMLString::indexOf(content, chDash))
           {
  -            context.fStatus = XSValueContext::st_InvalidRange;
  +            status = st_InvalidRange;
               return false;
           }
   
  @@ -1709,14 +1752,14 @@
       // check if all chars are valid char
       if ( (endptr - nptr) != strLen)
       {
  -        context.fStatus = XSValueContext::st_InvalidChar;
  +        status = st_InvalidChar;
           return false;
       }
   
       // check if overflow/underflow occurs
       if (errno == ERANGE)
       {
  -        context.fStatus = XSValueContext::st_InvalidRange;
  +        status = st_InvalidRange;
           return false;
       }
   
  @@ -1737,21 +1780,6 @@
   {
        delete sXSValueRegEx;
        sXSValueRegEx = 0;
  -}
  -
  -// ---------------------------------------------------------------------------
  -//  XSValueContext: Constructors and Destructor
  -// ---------------------------------------------------------------------------
  -XSValueContext::XSValueContext(XMLVersion   version
  -                            ,  bool         toValidate)
  -:fVersion(version)
  -,fToValidate(toValidate)
  -,fStatus(st_Init)
  -{
  -}
  -
  -XSValueContext::~XSValueContext()
  -{
   }
   
   XERCES_CPP_NAMESPACE_END
  
  
  

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

Reply via email to