parser = $xmlParser ?: new XmlParser(); $this->honorResultWrapper = $honorResultWrapper; } public function __invoke( CommandInterface $command, ResponseInterface $response ) { $output = $this->api->getOperation($command->getName())->getOutput(); $body = $response->getBody(); $xml = !$body->isSeekable() || $body->getSize() ? $this->parseXml($body, $response) : null; // Empty request bodies should not be deserialized. if (is_null($xml)) { return new Result(); } if ($this->honorResultWrapper && $output['resultWrapper']) { $xml = $xml->{$output['resultWrapper']}; } return new Result($this->parser->parse($output, $xml)); } public function parseMemberFromStream( StreamInterface $stream, StructureShape $member, $response ) { $xml = $this->parseXml($stream, $response); return $this->parser->parse($member, $xml); } }