/** * undocumented function * * @param XRD_Document $xrd * @return OExchange_Service */ public static function fromXRD(XRD_Document $xrd) { $service = new OExchange_Target(); $service->subject = $xrd->subject; $iconLink = $xrd->firstLinkByRel('icon'); $service->icon = $iconLink->href; $service->iconType = $iconLink->type; $icon32Link = $xrd->firstLinkByRel('icon32'); $service->icon32 = $icon32Link->href; $service->icon32Type = $icon32Link->type; $offerLink = $xrd->firstLinkByRel(self::OEXCHANGE_OFFER_REL); $service->offer = $offerLink->href; $service->offerType = $offerLink->type; $propertyMap = array('title' => self::OEXCHANGE_TITLE_PROPERTY_TYPE, 'vendor' => self::OEXCHANGE_VENDOR_PROPERTY_TYPE, 'name' => self::OEXCHANGE_NAME_PROPERTY_TYPE, 'prompt' => self::OEXCHANGE_PROMPT_PROPERTY_TYPE); foreach ($propertyMap as $propertyName => $propertyType) { $service->{$propertyName} = $xrd->firstPropertyByType($propertyType)->value; } return $service; }