function encodeDataTypes($name, $value) { static $Xsd = array("string" => "string", "bool" => "boolean", "boolean" => "boolean", "int" => "integer", "integer" => "integer", "double" => "double", "float" => "float", "number" => "float", "array" => "anyType", "resource" => "anyType", "mixed" => "anyType", "unknown_type" => "anyType", "anyType" => "anyType"); $node = new CDataXMLNode(); $node->name = $name; if (is_object($value)) { $ovars = get_object_vars($value); foreach ($ovars as $pn => $pv) { $decode = CDataXMLDocument::encodeDataTypes($pn, $pv); if ($decode) { array_push($node->children, $decode); } } } else { if (is_array($value)) { foreach ($value as $pn => $pv) { $decode = CDataXMLDocument::encodeDataTypes($pn, $pv); if ($decode) { array_push($node->children, $decode); } } } else { if (isset($Xsd[gettype($value)])) { $node->content = $value; } } } return $node; }