/**
  * Create an associative array of object properties from XML
  * @static
  * @param SimpleXMLElement $parsedResponse - XML of an event
  * @return array
  */
 public static function createStruct($parsedResponse)
 {
     $event['link'] = (string) $parsedResponse->link->Attributes()->href;
     $event['updated'] = (string) $parsedResponse->updated;
     $event['id'] = (string) $parsedResponse->id;
     $eventNode = $parsedResponse->content->children();
     $event['name'] = (string) $eventNode->Event->Name;
     $event['description'] = (string) $eventNode->Event->Description;
     $event['title'] = (string) $eventNode->Event->Title;
     $event['registered'] = (string) $eventNode->Event->Registered;
     $event['createdDate'] = (string) $eventNode->Event->CreatedDate;
     $event['status'] = (string) $eventNode->Event->Status;
     $event['eventType'] = (string) $eventNode->Event->EventType;
     $location['location'] = (string) $eventNode->Event->EventLocation->Location;
     $location['addr1'] = (string) $eventNode->Event->EventLocation->Address1;
     $location['addr2'] = (string) $eventNode->Event->EventLocation->Address2;
     $location['addr3'] = (string) $eventNode->Event->EventLocation->Address3;
     $location['city'] = (string) $eventNode->Event->EventLocation->City;
     $location['state'] = (string) $eventNode->Event->EventLocation->State;
     $location['country'] = (string) $eventNode->Event->EventLocation->Country;
     $location['postalCode'] = (string) $eventNode->Event->EventLocation->PostalCode;
     $event['eventLocation'] = new EventLocation($location);
     $event['registrationUrl'] = (string) $eventNode->Event->RegistrationURL;
     $event['startDate'] = (string) $eventNode->Event->StartDate;
     $event['endDate'] = (string) $eventNode->Event->EndDate;
     $event['publishDate'] = (string) $eventNode->Event->PublishDate;
     $event['attendedCount'] = (string) $eventNode->Event->AttendedCount;
     $event['cancelledCount'] = (string) $eventNode->Event->CancelledCount;
     $event['eventFeeRequired'] = (string) $eventNode->Event->EventFeeRequired;
     $event['currencyType'] = (string) $eventNode->Event->CurrencyType;
     $event['paymentOptions'] = array();
     if (isset($eventNode->Event->PaymentOptions->PaymentOption)) {
         foreach ($eventNode->Event->PaymentOptions->PaymentOption as $options) {
             $payOption = '';
             $type = (string) $options->Type;
             try {
                 if ($type == "PAYPAL") {
                     $paypalAddr = (string) $options->PayPalAccountEmail;
                     $payOption = new PayPalPayment($paypalAddr);
                 } elseif ($type == "chECK") {
                     $payOption = new checkPayment(checkPayment::createStruct($options));
                 } elseif ($type == "DOOR") {
                     $payOption = new DoorPayment();
                 }
                 if (empty($payOption)) {
                     throw new Exception('Payment Type ' . $type . ' is not a valid option');
                 }
             } catch (Exception $e) {
                 die($e->getMessage());
             }
             $event['paymentOptions'][] = $payOption;
         }
         foreach ($eventNode->Event->RegistrationTypes->RegistrationType as $regType) {
             $registration = new RegistrationType(RegistrationType::createStruct($regType));
         }
         $event['registrationTypes'][] = $registration;
     }
     return $event;
 }