peiyongz    2004/03/02 15:22:06

  Modified:    c/src/xercesc/validators/datatype DatatypeValidator.cpp
  Log:
  save/load TypeUri/TypeLocalName more accurately
  
  Revision  Changes    Path
  1.22      +55 -16    
xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidator.cpp
  
  Index: DatatypeValidator.cpp
  ===================================================================
  RCS file: 
/home/cvs/xml-xerces/c/src/xercesc/validators/datatype/DatatypeValidator.cpp,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- DatatypeValidator.cpp     29 Jan 2004 11:51:22 -0000      1.21
  +++ DatatypeValidator.cpp     2 Mar 2004 23:22:06 -0000       1.22
  @@ -56,6 +56,9 @@
   
   /*
    * $Log$
  + * Revision 1.22  2004/03/02 23:22:06  peiyongz
  + * save/load TypeUri/TypeLocalName more accurately
  + *
    * Revision 1.21  2004/01/29 11:51:22  cargilld
    * Code cleanup changes to get rid of various compiler diagnostic messages.
    *
  @@ -367,14 +370,26 @@
   
           serEng.writeString(fPattern);
   
  +        if (fTypeUri==XMLUni::fgZeroLenString)
  +        {
  +            serEng<<(unsigned int)1;
  +        }
  +        else if (fTypeUri == SchemaSymbols::fgURI_SCHEMAFORSCHEMA)
  +        {
  +            serEng<<(unsigned int)2;
  +            serEng.writeString(fTypeLocalName);
  +        }
  +        else
  +        {
  +            serEng<<(unsigned int)3;
  +            serEng.writeString(fTypeLocalName);
  +            serEng.writeString(fTypeUri);
  +        }
  +
           /***
            * don't serialize 
            *       fRegex
  -         *       fTypeLocalName
  -         *       fTypeUri
  -         ***/
  -        serEng.writeString(fTypeName);
  -
  +         ***/    
       }
       else
       {
  @@ -427,25 +442,49 @@
            *  Deserialize RefHashTableOf<KVStringPair>
            *
            ***/
  -        XTemplateSerializer::loadObject(&fFacets, 29, true, serEng);
  +        XTemplateSerializer::loadObject(&fFacets, 29, false, serEng);
  +        //XTemplateSerializer::loadObject(&fFacets, 29, true, serEng);
   
           serEng.readString(fPattern);
   
           /***
  -         * don't serialize fRegex
  +         *   Recreate through setTypeName()
  +         *       fTypeName
            ***/
  -        fRegex = 0;
  +
  +        unsigned int flag;
  +        serEng>>flag;
  +
  +        if ( 1 == flag )
  +        {
  +            setTypeName(0);
  +        }
  +        else if ( 2 == flag )
  +        {
  +            XMLCh* typeLocalName;
  +            serEng.readString(typeLocalName);
  +            ArrayJanitor<XMLCh> janName(typeLocalName, fMemoryManager);
  +
  +            setTypeName(typeLocalName);
  +        }
  +        else //3
  +        {
  +            XMLCh* typeLocalName;
  +            serEng.readString(typeLocalName);
  +            ArrayJanitor<XMLCh> janName(typeLocalName, fMemoryManager);
  +
  +            XMLCh* typeUri;
  +            serEng.readString(typeUri);
  +            ArrayJanitor<XMLCh> janUri(typeUri, fMemoryManager);
  +
  +            setTypeName(typeLocalName, typeUri);
  +
  +        }
   
           /***
  -         *   Recreate through setTypeName()
  -         *       fTypeName
  -         *       fTypeLocalName
  -         *       fTypeUri
  +         * don't serialize fRegex
            ***/
  -        XMLCh* typeName;
  -        serEng.readString(typeName);
  -        ArrayJanitor<XMLCh> janName(typeName, fMemoryManager);
  -        setTypeName(typeName);
  +        fRegex = 0;
   
       }
   
  
  
  

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

Reply via email to