function __construct(array $msg_array)
 {
     parent::__construct($msg_array);
     $dp = new ArrayDataProvider($msg_array);
     $this->md5OfBody = $dp->getMandatory('MD5OfMessageBody', ArrayDataProvider::STRING_TYPE);
     $this->md5OfAttributes = $dp->getOptional('MD5OfMessageAttributes', ArrayDataProvider::STRING_TYPE, '');
 }
 function __construct(array $msg_array)
 {
     parent::__construct($msg_array);
     $dp = new ArrayDataProvider($msg_array);
     $this->receiptHandle = $dp->getMandatory('ReceiptHandle', ArrayDataProvider::STRING_TYPE);
     $this->body = $dp->getMandatory('Body', ArrayDataProvider::STRING_TYPE);
     $this->md5OfBody = $dp->getMandatory('MD5OfBody', ArrayDataProvider::STRING_TYPE);
     $this->attributes = $dp->getOptional('MessageAttributes', ArrayDataProvider::ARRAY_TYPE, []);
     $this->md5OfAttributes = $dp->getOptional('MD5OfMessageAttributes', ArrayDataProvider::STRING_TYPE, '');
     $this->validate();
 }