/**
  * Creates WMC 1.1.0 objects from an XML document.
  * 
  * @return wmc
  * @param $xml String
  */
 public function createFromXml($xml)
 {
     try {
         $wmc = new wmc();
         $wmc->createFromXml($xml);
     } catch (Exception $e) {
         throw new Exception("Could not create WMC from XML.");
     }
     return $wmc;
 }
function initWmcById($wmcId, $wmcAction)
{
    $wmc = new wmc();
    $wmc->createFromDb($wmcId);
    $updatedWMC = $wmc->updateUrlsFromDb();
    $wmc->createFromXml($updatedWMC);
    $jsArray = $wmc->toJavaScript();
    if ($jsArray) {
        $jsString = implode("", $jsArray);
        echo $jsString;
    } else {
        $e = new mb_exception("WMC could not be loaded.");
    }
}
             $ajaxResponse->setSuccess(true);
             break;
         }
     }
     $ajaxResponse->setMessage(_mb("WMC could not be loaded."));
     $ajaxResponse->setSuccess(false);
     break;
 case 'loadWmcFromFile':
     $serverFilename = $ajaxResponse->getParameter("filename");
     $wmc = new wmc();
     $wmcDoc = file_get_contents(TMPDIR . "/" . $serverFilename);
     if (!$wmcDoc) {
         $ajaxResponse->setMessage(_mb("WMC could not be loaded."));
         $ajaxResponse->setSuccess(false);
     }
     $wmc->createFromXml($wmcDoc);
     $updatedWMC = $wmc->updateUrlsFromDb();
     $wmc->createFromXml($updatedWMC);
     $jsArray = $wmc->toJavaScript();
     if ($jsArray) {
         $resultObj["javascript"] = $jsArray;
         $ajaxResponse->setResult($resultObj);
         $ajaxResponse->setSuccess(true);
     } else {
         $ajaxResponse->setMessage(_mb("WMC could not be loaded."));
         $ajaxResponse->setSuccess(false);
     }
     break;
     // merges data with WMC and loads it (returns array of JS code)
 // merges data with WMC and loads it (returns array of JS code)
 case "mergeWmc":
 /**
  * Appends the layers of another WMC to this WMC.
  *
  * @return void
  * @param $xml2 Object
  */
 public function append($xml2)
 {
     $someWmc = new wmc();
     $someWmc->createFromXml($xml2);
     $this->mainMap->append($someWmc->mainMap);
     if (isset($this->overviewMap) && isset($someWmc->overviewMap)) {
         // There is only one WMS in the overview map; merge, not append
         $this->overviewMap->merge($someWmc->overviewMap);
     }
 }
//
$wmc = new wmc();
$app = Mapbender::session()->get("mb_user_gui");
//$wmcDocSession = Mapbender::session()->get("mb_wmc");
$wmcDocSession = false;
if (Mapbender::session()->get("mb_wmc")) {
    $wmc_filename = Mapbender::session()->get("mb_wmc");
    $wmcDocSession = file_get_contents($wmc_filename);
}
try {
    $loadFromSession = new ElementVar($app, "loadwmc", "loadFromSession");
    if ($wmcDocSession && $loadFromSession->value === "1") {
        //check if session contains a wmc,
        //otherwise create a new wmc from application
        $e = new mb_notice("trying to load session WMC...");
        if (!$wmc->createFromXml($wmcDocSession)) {
            $e = new mb_notice("loading session WMC failed.");
            $e = new mb_notice("creating wmc from app: " . $app);
            $wmc->createFromApplication($app);
        }
    } else {
        $e = new mb_notice("loading from session WMC disabled in loadwmc or no session WMC set.");
        $e = new mb_notice("creating wmc from app: " . $app);
        $wmc->createFromApplication($app);
    }
} catch (Exception $e) {
    $e = new mb_notice("creating wmc from app: " . $app);
    $wmc->createFromApplication($app);
}
//
// create new WMC with services from GET API