diff --git a/src/xercesc/validators/datatype/DateDatatypeValidator.cpp b/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
index a996032ef7285afd2ca07f4a4a4022040906f6f7..d5e6fc35dcfd463dd941045420b50ada11697e95 100644
--- a/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
+++ b/src/xercesc/validators/datatype/DateDatatypeValidator.cpp
@@ -87,6 +87,39 @@ void DateDatatypeValidator::parse(XMLDateTime* const pDate)
     pDate->parseDate();
 }
 
+const XMLCh* DateDatatypeValidator::getCanonicalRepresentation(const XMLCh*         const rawData
+                                                              ,      MemoryManager* const memMgr
+                                                              ,      bool                 toValidate) const
+{
+    MemoryManager* toUse = memMgr? memMgr : fMemoryManager;
+
+    if (toValidate)
+    {
+        DateDatatypeValidator* temp = (DateDatatypeValidator*) this;
+
+        try
+        {
+            temp->checkContent(rawData, 0, false, toUse);   
+        }
+        catch (...)
+        {
+            return 0;
+        }
+    }
+    
+    try
+    {
+        XMLDateTime aDateTime(rawData, toUse);
+        aDateTime.parseDate();
+        return aDateTime.getDateCanonicalRepresentation(toUse);
+    }
+    catch (...)
+    {
+        return 0;
+    }
+
+}
+
 /***
  * Support for Serialization/De-serialization
  ***/
diff --git a/src/xercesc/validators/datatype/DateDatatypeValidator.hpp b/src/xercesc/validators/datatype/DateDatatypeValidator.hpp
index d18003f9c97f7ed01efb72d92a8bafd67cf448f7..3c5566e8e8770224b1c0b233cf49a961e1508d6d 100644
--- a/src/xercesc/validators/datatype/DateDatatypeValidator.hpp
+++ b/src/xercesc/validators/datatype/DateDatatypeValidator.hpp
@@ -63,6 +63,12 @@ public:
         , MemoryManager* const manager = XMLPlatformUtils::fgMemoryManager
     );
 
+    virtual const XMLCh* getCanonicalRepresentation
+                        (
+                          const XMLCh*         const rawData
+                        ,       MemoryManager* const memMgr = 0
+                        ,       bool                 toValidate = false
+                        ) const;
     /***
      * Support for Serialization/De-serialization
      ***/