Author: cargilld
Date: Mon Jul 25 07:02:25 2005
New Revision: 225126

URL: http://svn.apache.org/viewcvs?rev=225126&view=rev
Log:
Fix various schema date time problems.

Modified:
    xerces/c/trunk/src/xercesc/framework/psvi/XSValue.cpp

Modified: xerces/c/trunk/src/xercesc/framework/psvi/XSValue.cpp
URL: 
http://svn.apache.org/viewcvs/xerces/c/trunk/src/xercesc/framework/psvi/XSValue.cpp?rev=225126&r1=225125&r2=225126&view=diff
==============================================================================
--- xerces/c/trunk/src/xercesc/framework/psvi/XSValue.cpp (original)
+++ xerces/c/trunk/src/xercesc/framework/psvi/XSValue.cpp Mon Jul 25 07:02:25 
2005
@@ -1098,8 +1098,12 @@
             coreDate.parseTime(); 
             return coreDate.getTimeCanonicalRepresentation(manager);
             break;
-        case XSValue::dt_duration:
         case XSValue::dt_date:
+            // we need this parsing
+            coreDate.parseDate(); 
+            return coreDate.getDateCanonicalRepresentation(manager);
+            break;
+        case XSValue::dt_duration:        
         case XSValue::dt_gYearMonth:
         case XSValue::dt_gYear:
         case XSValue::dt_gMonthDay:
@@ -1445,29 +1449,41 @@
             break;
         case XSValue::dt_date:
             coreDate.parseDate();
+            coreDate.fValue[XMLDateTime::Hour] = 0;
+            coreDate.fValue[XMLDateTime::Minute] = 0;
             break;
         case XSValue::dt_gYearMonth:
             coreDate.parseYearMonth();
             coreDate.fValue[XMLDateTime::Day] = 0;
+            coreDate.fValue[XMLDateTime::Hour] = 0;
+            coreDate.fValue[XMLDateTime::Minute] = 0;
             break;
         case XSValue::dt_gYear:
             coreDate.parseYear();            
             coreDate.fValue[XMLDateTime::Month] = 0;
             coreDate.fValue[XMLDateTime::Day] = 0;
+            coreDate.fValue[XMLDateTime::Hour] = 0;
+            coreDate.fValue[XMLDateTime::Minute] = 0;
             break;
         case XSValue::dt_gMonthDay:
             coreDate.parseMonthDay();
-            coreDate.fValue[XMLDateTime::CentYear] = 0;            
+            coreDate.fValue[XMLDateTime::CentYear] = 0;
+            coreDate.fValue[XMLDateTime::Hour] = 0;
+            coreDate.fValue[XMLDateTime::Minute] = 0;            
             break;
         case XSValue::dt_gDay:
             coreDate.parseDay();
             coreDate.fValue[XMLDateTime::CentYear] = 0;
-            coreDate.fValue[XMLDateTime::Month] = 0;            
+            coreDate.fValue[XMLDateTime::Month] = 0;      
+            coreDate.fValue[XMLDateTime::Hour] = 0;
+            coreDate.fValue[XMLDateTime::Minute] = 0;           
             break;
         case XSValue::dt_gMonth:
             coreDate.parseMonth();
             coreDate.fValue[XMLDateTime::CentYear] = 0;            
             coreDate.fValue[XMLDateTime::Day] = 0;
+            coreDate.fValue[XMLDateTime::Hour] = 0;
+            coreDate.fValue[XMLDateTime::Minute] = 0;
             break;
         default:
             return 0;



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

Reply via email to