/** * Instantiates an Opus_Model from xml as delivered by the toXml() method. * * @param DomDocument|string $xml The xml representing the model. * @param Opus_Model_Xml $customDeserializer (Optional) Specify a custom deserializer object. * @return Opus_Model_Abstract The Opus_Model derived from xml. */ public static function fromXml($xml, Opus_Model_Xml $customDeserializer = null) { if (is_null($customDeserializer)) { $customDeserializer = new Opus_Model_Xml(); } if ($xml instanceof DomDocument) { $customDeserializer->setDomDocument($xml); } else { if (is_string($xml)) { $customDeserializer->setXml($xml); } else { throw new Opus_Model_Exception('Either DomDocument or xml string must be passed.'); } } return $customDeserializer->getModel(); }