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]