Index: trunk/zoo-project/zoo-kernel/request_parser.c
===================================================================
--- trunk/zoo-project/zoo-kernel/request_parser.c	(revision 868)
+++ trunk/zoo-project/zoo-kernel/request_parser.c	(revision 869)
@@ -968,5 +968,5 @@
 			}
 
-		      if (strcasecmp (test->value, "base64") != 0)
+		      if (getMap(tmpmaps->content,"dataType")==NULL && strcasecmp (test->value, "base64") != 0)
 			{ 
 			  xmlChar *mv = xmlNodeListGetString (doc,
@@ -1046,10 +1046,25 @@
 		      else
 			{
-			  xmlChar *tmp = xmlNodeListGetRawString (doc,
-								  cur4->xmlChildrenNode,
-								  0);
-			  addToMap (tmpmaps->content, "value",
-				    (char *) tmp);
-			  xmlFree (tmp);
+			  xmlNodePtr cur5 = cur4->children;
+			  while (cur5 != NULL
+				 && cur5->type != XML_CDATA_SECTION_NODE)
+			    cur5 = cur5->next;
+			  if (cur5 != NULL
+			      && cur5->type == XML_CDATA_SECTION_NODE)
+			    {
+			      addToMap (tmpmaps->content,
+					"value",
+					(char *) cur5->content);
+			    }
+			  else{
+			    if(cur4->xmlChildrenNode!=NULL){
+			      xmlChar *tmp = xmlNodeListGetRawString (doc,
+								      cur4->xmlChildrenNode,
+								      0);
+			      addToMap (tmpmaps->content, "value",
+					(char *) tmp);
+			      xmlFree (tmp);
+			    }
+			  }
 			}
 
