• Модуль: main
  • Путь к файлу: ~/bitrix/modules/main/classes/general/xml.php
  • Класс: CDataXMLDocument
  • Вызов: CDataXMLDocument::encodeDataTypes
static 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 = static::encodeDataTypes($pn, $pv);
			if ($decode)
			{
				$node->children[] = $decode;
			}
		}
	}
	else if (is_array($value))
	{
		foreach ($value as $pn => $pv)
		{
			$decode = static::encodeDataTypes( $pn, $pv);
			if ($decode)
			{
				$node->children[] = $decode;
			}
		}
	}
	else
	{
		if (isset($Xsd[gettype($value)]))
		{
			$node->content = $value;
		}
	}
	return $node;
}