neilg       2003/11/28 12:20:55

  Modified:    c/src/xercesc/internal IGXMLScanner2.cpp SGXMLScanner.cpp
               c/src/xercesc/framework/psvi PSVIAttribute.cpp
                        PSVIAttribute.hpp
  Log:
  make use of canonical representation in PSVIAttribute implementation
  
  Revision  Changes    Path
  1.49      +10 -8     xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp
  
  Index: IGXMLScanner2.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/IGXMLScanner2.cpp,v
  retrieving revision 1.48
  retrieving revision 1.49
  diff -u -r1.48 -r1.49
  --- IGXMLScanner2.cpp 28 Nov 2003 19:54:31 -0000      1.48
  +++ IGXMLScanner2.cpp 28 Nov 2003 20:20:54 -0000      1.49
  @@ -580,7 +580,8 @@
                        actualAttDef = (SchemaAttDef *)attDefForWildCard;
                    XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration 
*)fModel->getXSObject(actualAttDef);
                    PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); 
  -                 XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition 
*)fModel->getXSObject(actualAttDef->getDatatypeValidator());
  +                DatatypeValidator * attrDataType = 
actualAttDef->getDatatypeValidator();
  +                 XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition 
*)fModel->getXSObject(attrDataType);
                    if(attrValid != PSVIItem::VALIDITY_VALID)
                    {
                        toFill->reset(
  @@ -592,8 +593,8 @@
                            , 0
                            , actualAttDef->getValue()
                            , false
  -                         , 0
                            , attrDecl
  +                        , 0
                        );
                    }
                    else
  @@ -610,8 +611,8 @@
                            , memberType
                            , actualAttDef->getValue()
                            , false
  -                         , 0
                            , attrDecl
  +                        , (memberType)?attrValidator:attrDataType
                        );
                    }
                }
  @@ -646,7 +647,7 @@
                        , 0
                       , false
                        , 0
  -                     , 0
  +                    , attrValidator
                   );
               }
           }
  @@ -821,8 +822,9 @@
                       {
                           PSVIAttribute *defAttrToFill = 
fPSVIAttrList->getPSVIAttributeToFill();
                           XSAttributeDeclaration *defAttrDecl = 
(XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
  +                        DatatypeValidator * attrDataType = ((SchemaAttDef 
*)curDef)->getDatatypeValidator();
                           XSSimpleTypeDefinition *defAttrType = 
  -                            
(XSSimpleTypeDefinition*)fModel->getXSObject(((SchemaAttDef 
*)curDef)->getDatatypeValidator());
  +                            
(XSSimpleTypeDefinition*)fModel->getXSObject(attrDataType);
                           // would have occurred during validation of default value
                           if(((SchemaValidator *)fValidator)->getErrorOccurred())
                           {
  @@ -835,8 +837,8 @@
                                   , 0
                                   , curDef->getValue()
                                   , true 
  -                                , 0
                                   , defAttrDecl
  +                                , 0
                               );
                           }
                           else
  @@ -858,8 +860,8 @@
                                   , defAttrMemberType
                                   , curDef->getValue()
                                   , true
  -                                , 0
                                   , defAttrDecl
  +                                , (defAttrMemberType)?((SchemaValidator 
*)fValidator)->getMostRecentAttrValidator():attrDataType
                               );
                           }
                       }
  
  
  
  1.59      +11 -9     xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp
  
  Index: SGXMLScanner.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/internal/SGXMLScanner.cpp,v
  retrieving revision 1.58
  retrieving revision 1.59
  diff -u -r1.58 -r1.59
  --- SGXMLScanner.cpp  28 Nov 2003 20:09:31 -0000      1.58
  +++ SGXMLScanner.cpp  28 Nov 2003 20:20:54 -0000      1.59
  @@ -2586,7 +2586,8 @@
                        actualAttDef = (SchemaAttDef *)attDefForWildCard;
                    XSAttributeDeclaration *attrDecl = (XSAttributeDeclaration 
*)fModel->getXSObject(actualAttDef);
                    PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); 
  -                 XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition 
*)fModel->getXSObject(actualAttDef->getDatatypeValidator());
  +                DatatypeValidator * attrDataType = 
actualAttDef->getDatatypeValidator();
  +                 XSSimpleTypeDefinition *validatingType = (XSSimpleTypeDefinition 
*)fModel->getXSObject(attrDataType);
                    if(attrValid != PSVIItem::VALIDITY_VALID)
                    {
                        toFill->reset(
  @@ -2598,8 +2599,8 @@
                            , 0
                            , actualAttDef->getValue()
                            , false
  -                         , 0
                            , attrDecl
  +                        , 0
                        );
                    }
                    else
  @@ -2616,8 +2617,8 @@
                            , memberType
                            , actualAttDef->getValue()
                            , false
  -                         , 0
                            , attrDecl
  +                        , (memberType)?attrValidator:attrDataType
                        );
                    }
                }
  @@ -2637,7 +2638,7 @@
                   attrValidator = 
DatatypeValidatorFactory::getBuiltInRegistry()->get(SchemaSymbols::fgDT_ANYURI);
               if(getPSVIHandler())
               {
  -                 PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill(); 
  +                PSVIAttribute *toFill = fPSVIAttrList->getPSVIAttributeToFill();
                    XSSimpleTypeDefinition *validatingType = (attrValidator)
                               ? (XSSimpleTypeDefinition 
*)fModel->getXSObject(attrValidator)
                               : 0;
  @@ -2652,7 +2653,7 @@
                        , 0
                       , false
                        , 0
  -                     , 0
  +                    , attrValidator
                   );
               }
           }
  @@ -2789,8 +2790,9 @@
                       {
                           PSVIAttribute *defAttrToFill = 
fPSVIAttrList->getPSVIAttributeToFill();
                           XSAttributeDeclaration *defAttrDecl = 
(XSAttributeDeclaration *)fModel->getXSObject((void *)curDef);
  +                        DatatypeValidator * attrDataType = ((SchemaAttDef 
*)curDef)->getDatatypeValidator();
                           XSSimpleTypeDefinition *defAttrType = 
  -                            
(XSSimpleTypeDefinition*)fModel->getXSObject(((SchemaAttDef 
*)curDef)->getDatatypeValidator());
  +                            
(XSSimpleTypeDefinition*)fModel->getXSObject(attrDataType);
                           // would have occurred during validation of default value
                           if(((SchemaValidator *)fValidator)->getErrorOccurred())
                           {
  @@ -2803,8 +2805,8 @@
                                   , 0
                                   , curDef->getValue()
                                   , true 
  -                                , 0
                                   , defAttrDecl
  +                                , 0
                               );
                           }
                           else
  @@ -2826,8 +2828,8 @@
                                   , defAttrMemberType
                                   , curDef->getValue()
                                   , true
  -                                , 0
                                   , defAttrDecl
  +                                , (defAttrMemberType)?((SchemaValidator 
*)fValidator)->getMostRecentAttrValidator():attrDataType
                               );
                           }
                       }
  
  
  
  1.4       +9 -2      xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.cpp
  
  Index: PSVIAttribute.cpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.cpp,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- PSVIAttribute.cpp 27 Nov 2003 06:10:32 -0000      1.3
  +++ PSVIAttribute.cpp 28 Nov 2003 20:20:54 -0000      1.4
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.4  2003/11/28 20:20:54  neilg
  + * make use of canonical representation in PSVIAttribute implementation
  + *
    * Revision 1.3  2003/11/27 06:10:32  neilg
    * PSVIAttribute implementation
    *
  @@ -86,8 +89,8 @@
               , XSSimpleTypeDefinition *  memberType
               , const XMLCh * const       defaultValue
               , const bool                isSpecified
  -            , const XMLCh * const       canonicalValue
               , XSAttributeDeclaration *  attrDecl
  +            , DatatypeValidator *dv
           )
   {
       fValidationContext = valContext;
  @@ -98,7 +101,11 @@
       fMemberType = memberType;
       fDefaultValue = defaultValue;
       fIsSpecified = isSpecified;
  -    fCanonicalValue = canonicalValue;
  +    fMemoryManager->deallocate((void *)fCanonicalValue);
  +    if(normalizedValue && dv)
  +        fCanonicalValue = dv->getCanonicalRepresentation(normalizedValue, 
fMemoryManager);
  +    else
  +        fCanonicalValue = 0;
       fAttributeDecl = attrDecl;
   }
   
  
  
  
  1.5       +9 -2      xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.hpp
  
  Index: PSVIAttribute.hpp
  ===================================================================
  RCS file: /home/cvs/xml-xerces/c/src/xercesc/framework/psvi/PSVIAttribute.hpp,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- PSVIAttribute.hpp 27 Nov 2003 06:10:32 -0000      1.4
  +++ PSVIAttribute.hpp 28 Nov 2003 20:20:54 -0000      1.5
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.5  2003/11/28 20:20:54  neilg
  + * make use of canonical representation in PSVIAttribute implementation
  + *
    * Revision 1.4  2003/11/27 06:10:32  neilg
    * PSVIAttribute implementation
    *
  @@ -75,6 +78,7 @@
   
   #include <xercesc/framework/psvi/PSVIItem.hpp>
   #include <xercesc/framework/psvi/XSSimpleTypeDefinition.hpp>
  +#include <xercesc/validators/datatype/DatatypeValidator.hpp>
   
   XERCES_CPP_NAMESPACE_BEGIN
   
  @@ -162,8 +166,8 @@
               , XSSimpleTypeDefinition *  memberType
               , const XMLCh * const       defaultValue
               , const bool                isSpecified
  -            , const XMLCh * const       canonicalValue
               , XSAttributeDeclaration *  attrDecl
  +            , DatatypeValidator *       dv
           );
   
       /**
  @@ -190,7 +194,10 @@
       //      attribute declaration component that validated this attribute 
       XSAttributeDeclaration *    fAttributeDecl;
   };
  -inline PSVIAttribute::~PSVIAttribute() {}
  +inline PSVIAttribute::~PSVIAttribute() 
  +{
  +    fMemoryManager->deallocate((void *)fCanonicalValue);
  +}
   
   inline XSAttributeDeclaration *PSVIAttribute::getAttributeDeclaration() 
   {
  
  
  

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

Reply via email to