static function fromXml($xmlString) { $vars = array(); if ($xmlString->params) { foreach ($xmlString->params->param as $p) { $v = (string) $p; if ((string) $p['serialized'] == 'json') { $v = json_decode($p, true); } $vars[(string) $p['name']] = $v; } } $url = $xmlString->url; $uri = (string) $url->scheme . '://' . (string) $url->host . (string) $url->base_url . (string) $url->path_info; $r = new Am_Request($vars, (string) $url->method, $uri); $r->_baseUrl = (string) $url->base_url; $r->_pathInfo = (string) $url->path_info; $r->_remoteAddr = (string) $url->remote_addr; $r->_scheme = (string) $url->scheme; $r->_host = (string) $url->host; if ($xmlString->{'raw-body'}) { $r->setRawBody((string) $xmlString->{'raw-body'}); } return $r; }