public function encode(\Esendex\Model\DispatchMessage $message) { if (strlen($message->originator()) < 1) { throw new ArgumentException("Originator is invalid"); } if (strlen($message->recipient()) < 1) { throw new ArgumentException("Recipient is invalid"); } if ($message->validityPeriod() > 72) { throw new ArgumentException("Validity too long, must be less or equal to than 72"); } $doc = new \SimpleXMLElement("<?xml version=\"1.0\" encoding=\"utf-8\"?><messages />", 0, false, Api::NS); $doc->accountreference = $this->reference; $child = $doc->addChild("message"); $child->from = $message->originator(); $child->to = $message->recipient(); $child->body = $message->body(); $child->type = $message->type(); if ($message->validityPeriod() > 0) { $child->validity = $message->validityPeriod(); } if ($message->language() != null) { $child->lang = $message->language(); } return $doc->asXML(); }