public static function setData($newData, $currentData) { if (!$newData) { return false; } if (self::compareData($newData, $currentData)) { $currentXml = Dfi_Xml::asSimpleXml(Dfi_Xml::castToXmlString($currentData)); $dom = self::makeDomFromNewData($newData); $x = Dfi_Xml::asSimpleXml($dom->saveXML()); self::applyOldVersions($dom, $currentXml); $x = Dfi_Xml::asSimpleXml($dom->saveXML()); $histories = self::applyCurrentHistory($dom); $x = Dfi_Xml::asSimpleXml($dom->saveXML()); self::applyOldHistories($dom, $histories, $currentXml); $x = Dfi_Xml::asSimpleXml($dom->saveXML()); $newData = $dom->saveXML($dom); } else { $newData = Dfi_Xml::castToXmlString($currentData); } return Dfi_Xml::checkIsValidXmlStirng($newData); }