You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by na...@apache.org on 2008/10/09 17:10:07 UTC

svn commit: r703178 - in /webservices/axis/trunk/c/src: common/ArrayBean.cpp common/AxisUserAPI.cpp common/TypeMapping.cpp engine/Axis.cpp

Author: nadiramra
Date: Thu Oct  9 08:10:06 2008
New Revision: 703178

URL: http://svn.apache.org/viewvc?rev=703178&view=rev
Log:
AXISCPP-1002 - Support for xsd:anyType and remove duplicate code.

Modified:
    webservices/axis/trunk/c/src/common/ArrayBean.cpp
    webservices/axis/trunk/c/src/common/AxisUserAPI.cpp
    webservices/axis/trunk/c/src/common/TypeMapping.cpp
    webservices/axis/trunk/c/src/engine/Axis.cpp

Modified: webservices/axis/trunk/c/src/common/ArrayBean.cpp
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/common/ArrayBean.cpp?rev=703178&r1=703177&r2=703178&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/common/ArrayBean.cpp (original)
+++ webservices/axis/trunk/c/src/common/ArrayBean.cpp Thu Oct  9 08:10:06 2008
@@ -21,6 +21,8 @@
  *
  */
 
+#include "axis/Axis.hpp"
+
 #include "Param.h"
 #include "ArrayBean.h"
 #include "BasicTypeSerializer.h"
@@ -55,253 +57,18 @@
                 m_value.cta->pObject = NULL;
             }
             delete m_value.cta;
-			m_value.cta = NULL;
         }
     }
     else if (AxisEngine::m_bServer && m_value.sta)
     {
+    	// TODO - Why do we only do this for server? I think we need to do for client also.
         if (m_nSize > 0)
         {
             for (int count = 0 ; count < m_nSize ; count++)
-            {
-                if ( ((void **) m_value.sta)[count] != NULL)
-                {
-                    switch (m_type)
-                    {
-                        case XSD_DURATION:
-                        {
-                            delete ((xsd__duration**) m_value.sta)[count];
-                          break;
-                        }
-                        case XSD_DATETIME:
-                        {
-                            delete ((xsd__dateTime**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_TIME:
-                        {
-                            delete ((xsd__time**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_DATE:
-                        {
-                            delete ((xsd__date**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_GYEARMONTH:
-                        {
-                            delete ((xsd__gYearMonth**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_GYEAR:
-                        {
-                            delete ((xsd__gYear**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_GMONTHDAY:
-                        {
-                            delete ((xsd__gMonthDay**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_GDAY:
-                        {
-                            delete ((xsd__gDay**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_GMONTH:
-                        {
-                            delete ((xsd__gMonth**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_STRING:
-                        {
-                            delete []((xsd__string*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NORMALIZEDSTRING:
-                        {
-                            delete []((xsd__normalizedString*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_TOKEN:
-                        {
-                            delete []((xsd__token*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_LANGUAGE:
-                        {
-                            delete []((xsd__language*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NAME:
-                        {
-                            delete []((xsd__Name*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NCNAME:
-                        {
-                            delete []((xsd__NCName*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_ID:
-                        {
-                            delete []((xsd__ID*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_IDREF:
-                        {
-                            delete []((xsd__IDREF*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_IDREFS:
-                        {
-                            delete []((xsd__IDREFS*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_ENTITY:
-                        {
-                            delete []((xsd__ENTITY*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_ENTITIES:
-                        {
-                            delete []((xsd__ENTITIES*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NMTOKEN:
-                        {
-                            delete []((xsd__NMTOKEN*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NMTOKENS:
-                        {
-                            delete []((xsd__NMTOKENS*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_BOOLEAN:
-                        {
-                            delete ((xsd__boolean**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_BASE64BINARY:
-                        {
-                            delete ((xsd__base64Binary**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_HEXBINARY:
-                        {
-                            delete ((xsd__hexBinary**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_FLOAT:
-                        {
-                            delete ((xsd__float**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_DECIMAL:
-                        {
-                            delete ((xsd__decimal**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_INTEGER:
-                        {
-                            delete ((xsd__integer**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NONPOSITIVEINTEGER:
-                        {
-                            delete ((xsd__nonPositiveInteger**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NEGATIVEINTEGER:
-                        {
-                            delete ((xsd__negativeInteger**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_LONG:
-                        {
-                            delete ((xsd__long**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_INT:
-                        {
-                            delete ((xsd__int**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_SHORT:
-                        {
-                            delete ((xsd__short**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_BYTE:
-                        {
-                            delete ((xsd__byte**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NONNEGATIVEINTEGER:
-                        {
-                            delete ((xsd__nonNegativeInteger**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_UNSIGNEDLONG:
-                        {
-                            delete ((xsd__unsignedLong**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_UNSIGNEDINT:
-                        {
-                            delete ((xsd__unsignedInt**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_UNSIGNEDSHORT:
-                        {
-                            delete ((xsd__unsignedShort**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_UNSIGNEDBYTE:
-                        {
-                            delete ((xsd__unsignedByte**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_POSITIVEINTEGER:
-                        {
-                            delete ((xsd__positiveInteger**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_DOUBLE:
-                        {
-                            delete ((xsd__double**) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_ANYURI:
-                        {
-                            delete []((xsd__anyURI*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_QNAME:
-                        {
-                            delete []((xsd__QName*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_NOTATION:
-                        {
-                            delete []((xsd__NOTATION*) m_value.sta)[count];
-                            break;
-                        }
-                        case XSD_ARRAY:
-                        {
-                            delete ((Axis_Array**) m_value.sta)[count];
-                            break;
-                        }
-                        default:
-                            break;
-                    }
-                }
-            }
-            m_nSize = 0;
+            	if (((void **) m_value.sta)[count] != NULL)
+            		Axis:AxisDelete(((void **) m_value.sta)[count], m_type);
         }
         delete [] m_value.sta;
-        m_value.sta = NULL;
     }
 }
 

Modified: webservices/axis/trunk/c/src/common/AxisUserAPI.cpp
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/common/AxisUserAPI.cpp?rev=703178&r1=703177&r2=703178&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/common/AxisUserAPI.cpp (original)
+++ webservices/axis/trunk/c/src/common/AxisUserAPI.cpp Thu Oct  9 08:10:06 2008
@@ -17,6 +17,7 @@
  * @author Mark Whitlock
  */
 
+#include <axis/Axis.hpp>
 #include <axis/AxisUserAPI.hpp>
 #include <axis/AxisUserAPIArrays.hpp>
 
@@ -209,6 +210,12 @@
 
         switch (m_Type)
         {
+	        case XSD_STRING:
+	        {
+	            ((xsd__string*) m_Array)[count] = new char[strlen(((xsd__string*) array)[count])+1];
+	            strcpy(((xsd__string*) m_Array)[count], ((xsd__string*) array)[count]);
+	            break;
+	        }
             case XSD_DURATION:
             {
                 ((xsd__duration**) m_Array)[count] = new xsd__duration();
@@ -263,12 +270,7 @@
                 *((xsd__gMonth**)m_Array)[count] = *((xsd__gMonth**) array)[count];
                 break;
             }
-            case XSD_STRING:
-            {
-                ((xsd__string*) m_Array)[count] = new char[strlen(((xsd__string*) array)[count])+1];
-                strcpy(((xsd__string*) m_Array)[count], ((xsd__string*) array)[count]);
-                break;
-            }
+
             case XSD_NORMALIZEDSTRING:
             {
                 ((xsd__normalizedString*) m_Array)[count] = new char[strlen(((xsd__normalizedString*) array)[count])+1];
@@ -524,6 +526,12 @@
     {
         switch (m_Type)
         {
+	        case XSD_STRING:
+	        {
+	            ((xsd__string*) m_Array)[m_Size] = new char[strlen((xsd__string) element)+1];
+	            strcpy(((xsd__string*) m_Array)[m_Size], (xsd__string) element);
+	            break;
+	        }
             case XSD_DURATION:
             {
                 ((xsd__duration**) m_Array)[m_Size] = new xsd__duration();
@@ -578,12 +586,7 @@
                 *((xsd__gMonth**)m_Array)[m_Size] = *(xsd__gMonth*) element;
                 break;
             }
-            case XSD_STRING:
-            {
-                ((xsd__string*) m_Array)[m_Size] = new char[strlen((xsd__string) element)+1];
-                strcpy(((xsd__string*) m_Array)[m_Size], (xsd__string) element);
-                break;
-            }
+
             case XSD_NORMALIZEDSTRING:
             {
                 ((xsd__normalizedString*) m_Array)[m_Size] = new char[strlen((xsd__normalizedString) element)+1];
@@ -827,250 +830,9 @@
     if (m_Size > 0)
     {
         for (int count = 0 ; count < m_Size ; count++)
-        {
             if (m_Array[count] != NULL)
-            {
-                switch (m_Type)
-                {
-                    case XSD_DURATION:
-                    {
-                        delete ((xsd__duration**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_DATETIME:
-                    {
-                        delete ((xsd__dateTime**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_TIME:
-                    {
-                        delete ((xsd__time**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_DATE:
-                    {
-                        delete ((xsd__date**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_GYEARMONTH:
-                    {
-                        delete ((xsd__gYearMonth**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_GYEAR:
-                    {
-                        delete ((xsd__gYear**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_GMONTHDAY:
-                    {
-                        delete ((xsd__gMonthDay**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_GDAY:
-                    {
-                        delete ((xsd__gDay**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_GMONTH:
-                    {
-                        delete ((xsd__gMonth**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_STRING:
-                    {
-                        delete []((xsd__string*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NORMALIZEDSTRING:
-                    {
-                        delete []((xsd__normalizedString*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_TOKEN:
-                    {
-                        delete []((xsd__token*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_LANGUAGE:
-                    {
-                        delete []((xsd__language*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NAME:
-                    {
-                        delete []((xsd__Name*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NCNAME:
-                    {
-                        delete []((xsd__NCName*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_ID:
-                    {
-                        delete []((xsd__ID*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_IDREF:
-                    {
-                        delete []((xsd__IDREF*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_IDREFS:
-                    {
-                        delete []((xsd__IDREFS*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_ENTITY:
-                    {
-                        delete []((xsd__ENTITY*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_ENTITIES:
-                    {
-                        delete []((xsd__ENTITIES*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NMTOKEN:
-                    {
-                        delete []((xsd__NMTOKEN*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NMTOKENS:
-                    {
-                        delete []((xsd__NMTOKENS*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_BOOLEAN:
-                    {
-                        delete ((xsd__boolean**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_BASE64BINARY:
-                    {
-                        delete ((xsd__base64Binary**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_HEXBINARY:
-                    {
-                        delete ((xsd__hexBinary**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_FLOAT:
-                    {
-                        delete ((xsd__float**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_DECIMAL:
-                    {
-                        delete ((xsd__decimal**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_INTEGER:
-                    {
-                        delete ((xsd__integer**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NONPOSITIVEINTEGER:
-                    {
-                        delete ((xsd__nonPositiveInteger**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NEGATIVEINTEGER:
-                    {
-                        delete ((xsd__negativeInteger**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_LONG:
-                    {
-                        delete ((xsd__long**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_INT:
-                    {
-                        delete ((xsd__int**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_SHORT:
-                    {
-                        delete ((xsd__short**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_BYTE:
-                    {
-                        delete ((xsd__byte**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NONNEGATIVEINTEGER:
-                    {
-                        delete ((xsd__nonNegativeInteger**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_UNSIGNEDLONG:
-                    {
-                        delete ((xsd__unsignedLong**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_UNSIGNEDINT:
-                    {
-                        delete ((xsd__unsignedInt**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_UNSIGNEDSHORT:
-                    {
-                        delete ((xsd__unsignedShort**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_UNSIGNEDBYTE:
-                    {
-                        delete ((xsd__unsignedByte**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_POSITIVEINTEGER:
-                    {
-                        delete ((xsd__positiveInteger**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_DOUBLE:
-                    {
-                        delete ((xsd__double**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_ANYURI:
-                    {
-                        delete []((xsd__anyURI*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_QNAME:
-                    {
-                        delete []((xsd__QName*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_NOTATION:
-                    {
-                        delete []((xsd__NOTATION*) m_Array)[count];
-                        break;
-                    }
-                    case XSD_ARRAY:
-                    {
-                        delete ((Axis_Array**) m_Array)[count];
-                        break;
-                    }
-                    case XSD_ANYTYPE:
-                    {
-                        delete []((xsd__anyType*) m_Array)[count];
-                        break;
-                    }
-                    case USER_TYPE:
-                    case XSD_ANY:
-                    case ATTACHMENT:
-                    case XSD_UNKNOWN:
-                    default:
-                        break;
-                }
-            }
-        }
+            	Axis:AxisDelete(m_Array[count], m_Type);
+
         m_Size = 0;
     }
     

Modified: webservices/axis/trunk/c/src/common/TypeMapping.cpp
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/common/TypeMapping.cpp?rev=703178&r1=703177&r2=703178&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/common/TypeMapping.cpp (original)
+++ webservices/axis/trunk/c/src/common/TypeMapping.cpp Thu Oct  9 08:10:06 2008
@@ -94,6 +94,8 @@
         m_sTypeMap[std::string ("anyURI")] = XSD_ANYURI;
         m_sTypeMap[std::string ("QName")] = XSD_QNAME;
         m_sTypeMap[std::string ("NOTATION")] = XSD_NOTATION;
+        m_sTypeMap[std::string ("anyType")] = XSD_ANYTYPE;
+
 
         m_bInit = true;
     }

Modified: webservices/axis/trunk/c/src/engine/Axis.cpp
URL: http://svn.apache.org/viewvc/webservices/axis/trunk/c/src/engine/Axis.cpp?rev=703178&r1=703177&r2=703178&view=diff
==============================================================================
--- webservices/axis/trunk/c/src/engine/Axis.cpp (original)
+++ webservices/axis/trunk/c/src/engine/Axis.cpp Thu Oct  9 08:10:06 2008
@@ -522,209 +522,209 @@
         
     switch (type)
     {
-        case XSD_DURATION:
-        {
-            delete (xsd__duration*) pValue;
-            break;
-        }
-        case XSD_DATETIME:
-        {
-            delete (xsd__dateTime*) pValue;
-            break;
-        }
-        case XSD_TIME:
+	    case XSD_STRING:
+	    {
+	        delete [] (xsd__string) pValue;
+	        break;
+	    }
+	    case XSD_NORMALIZEDSTRING:
+	    {
+	        delete [] (xsd__normalizedString) pValue;
+	        break;
+	    }
+        case XSD_FLOAT:
         {
-            delete (xsd__time*) pValue;
+            delete (xsd__float*) pValue;
             break;
         }
-        case XSD_DATE:
+        case XSD_DECIMAL:
         {
-            delete (xsd__date*) pValue;
+            delete (xsd__decimal*) pValue;
             break;
         }
-        case XSD_GYEARMONTH:
+        case XSD_NONPOSITIVEINTEGER:
         {
-            delete (xsd__gYearMonth*) pValue;
+            delete (xsd__nonPositiveInteger*) pValue;
             break;
         }
-        case XSD_GYEAR:
+        case XSD_NEGATIVEINTEGER:
         {
-            delete (xsd__gYear*) pValue;
+            delete (xsd__negativeInteger*) pValue;
             break;
         }
-        case XSD_GMONTHDAY:
+        case XSD_INTEGER:
         {
-            delete (xsd__gMonthDay*) pValue;
+            delete (xsd__integer*) pValue;
             break;
         }
-        case XSD_GDAY:
+        case XSD_LONG:
         {
-            delete (xsd__gDay*) pValue;
+            delete (xsd__long*) pValue;
             break;
         }
-        case XSD_GMONTH:
+        case XSD_INT:
         {
-            delete (xsd__gMonth*) pValue;
+            delete (xsd__int*) pValue;
             break;
         }
-        case XSD_STRING:
+        case XSD_SHORT:
         {
-            delete [] (xsd__string) pValue;
+            delete (xsd__short*) pValue;
             break;
         }
-        case XSD_NORMALIZEDSTRING:
+        case XSD_BYTE:
         {
-            delete [] (xsd__normalizedString) pValue;
+            delete (xsd__byte*) pValue;
             break;
         }
-        case XSD_TOKEN:
+        case XSD_NONNEGATIVEINTEGER:
         {
-            delete [] (xsd__token) pValue;
+            delete (xsd__nonNegativeInteger*) pValue;
             break;
         }
-        case XSD_LANGUAGE:
+        case XSD_UNSIGNEDLONG:
         {
-            delete [] (xsd__language) pValue;
+            delete (xsd__unsignedLong*) pValue;
             break;
         }
-        case XSD_NAME:
+        case XSD_UNSIGNEDINT:
         {
-            delete [] (xsd__Name) pValue;
+            delete (xsd__unsignedInt*) pValue;
             break;
         }
-        case XSD_NCNAME:
+        case XSD_UNSIGNEDSHORT:
         {
-            delete [] (xsd__NCName) pValue;
+            delete (xsd__unsignedShort*) pValue;
             break;
         }
-        case XSD_ID:
+        case XSD_UNSIGNEDBYTE:
         {
-            delete [] (xsd__ID) pValue;
+            delete (xsd__unsignedByte*) pValue;
             break;
         }
-        case XSD_IDREF:
+        case XSD_POSITIVEINTEGER:
         {
-            delete [] (xsd__IDREF) pValue;
+            delete (xsd__positiveInteger*) pValue;
             break;
         }
-        case XSD_IDREFS:
+        case XSD_DOUBLE:
         {
-            delete [] (xsd__IDREFS) pValue;
+            delete (xsd__double*) pValue;
             break;
-        }
-        case XSD_ENTITY:
+        }	    
+        case XSD_DURATION:
         {
-            delete [] (xsd__ENTITY) pValue;
+            delete (xsd__duration*) pValue;
             break;
         }
-        case XSD_ENTITIES:
+        case XSD_DATETIME:
         {
-            delete [] (xsd__ENTITIES) pValue;
+            delete (xsd__dateTime*) pValue;
             break;
         }
-        case XSD_NMTOKEN:
+        case XSD_TIME:
         {
-            delete [] (xsd__NMTOKEN) pValue;
+            delete (xsd__time*) pValue;
             break;
         }
-        case XSD_NMTOKENS:
+        case XSD_DATE:
         {
-            delete [] (xsd__NMTOKENS) pValue;
+            delete (xsd__date*) pValue;
             break;
         }
-        case XSD_BOOLEAN:
+        case XSD_GYEARMONTH:
         {
-            delete (xsd__boolean*) pValue;
+            delete (xsd__gYearMonth*) pValue;
             break;
         }
-        case XSD_BASE64BINARY:
+        case XSD_GYEAR:
         {
-            delete (xsd__base64Binary*) pValue;
+            delete (xsd__gYear*) pValue;
             break;
         }
-        case XSD_HEXBINARY:
+        case XSD_GMONTHDAY:
         {
-            delete (xsd__hexBinary*) pValue;
+            delete (xsd__gMonthDay*) pValue;
             break;
         }
-        case XSD_FLOAT:
+        case XSD_GDAY:
         {
-            delete (xsd__float*) pValue;
+            delete (xsd__gDay*) pValue;
             break;
         }
-        case XSD_DECIMAL:
+        case XSD_GMONTH:
         {
-            delete (xsd__decimal*) pValue;
+            delete (xsd__gMonth*) pValue;
             break;
         }
-        case XSD_NONPOSITIVEINTEGER:
+        case XSD_TOKEN:
         {
-            delete (xsd__nonPositiveInteger*) pValue;
+            delete [] (xsd__token) pValue;
             break;
         }
-        case XSD_NEGATIVEINTEGER:
+        case XSD_LANGUAGE:
         {
-            delete (xsd__negativeInteger*) pValue;
+            delete [] (xsd__language) pValue;
             break;
         }
-        case XSD_INTEGER:
+        case XSD_NAME:
         {
-            delete (xsd__integer*) pValue;
+            delete [] (xsd__Name) pValue;
             break;
         }
-        case XSD_LONG:
+        case XSD_NCNAME:
         {
-            delete (xsd__long*) pValue;
+            delete [] (xsd__NCName) pValue;
             break;
         }
-        case XSD_INT:
+        case XSD_ID:
         {
-            delete (xsd__int*) pValue;
+            delete [] (xsd__ID) pValue;
             break;
         }
-        case XSD_SHORT:
+        case XSD_IDREF:
         {
-            delete (xsd__short*) pValue;
+            delete [] (xsd__IDREF) pValue;
             break;
         }
-        case XSD_BYTE:
+        case XSD_IDREFS:
         {
-            delete (xsd__byte*) pValue;
+            delete [] (xsd__IDREFS) pValue;
             break;
         }
-        case XSD_NONNEGATIVEINTEGER:
+        case XSD_ENTITY:
         {
-            delete (xsd__nonNegativeInteger*) pValue;
+            delete [] (xsd__ENTITY) pValue;
             break;
         }
-        case XSD_UNSIGNEDLONG:
+        case XSD_ENTITIES:
         {
-            delete (xsd__unsignedLong*) pValue;
+            delete [] (xsd__ENTITIES) pValue;
             break;
         }
-        case XSD_UNSIGNEDINT:
+        case XSD_NMTOKEN:
         {
-            delete (xsd__unsignedInt*) pValue;
+            delete [] (xsd__NMTOKEN) pValue;
             break;
         }
-        case XSD_UNSIGNEDSHORT:
+        case XSD_NMTOKENS:
         {
-            delete (xsd__unsignedShort*) pValue;
+            delete [] (xsd__NMTOKENS) pValue;
             break;
         }
-        case XSD_UNSIGNEDBYTE:
+        case XSD_BOOLEAN:
         {
-            delete (xsd__unsignedByte*) pValue;
+            delete (xsd__boolean*) pValue;
             break;
         }
-        case XSD_POSITIVEINTEGER:
+        case XSD_BASE64BINARY:
         {
-            delete (xsd__positiveInteger*) pValue;
+            delete (xsd__base64Binary*) pValue;
             break;
         }
-        case XSD_DOUBLE:
+        case XSD_HEXBINARY:
         {
-            delete (xsd__double*) pValue;
+            delete (xsd__hexBinary*) pValue;
             break;
         }
         case XSD_ANYURI:
@@ -750,6 +750,11 @@
             delete (Axis_Array*) pValue;
             break;
         }
+        case XSD_ANYTYPE:
+        {
+            delete [] (xsd__anyType) pValue;
+            break;
+        }        	
         case XSD_ANY:
         case ATTACHMENT:
         case XSD_UNKNOWN: