http:/... */
//wfs 1.1.0
/*
© OGC 2002 – All rights reserved
89
*/
//wfs 1.1.0
/*
*/
//wfs 2.0.2
/**/
/*
*/
public function __construct () {
}
public function getOwsRepresentation($urlArray, $typeArray, $formatArray, $service = 'wfs', $version = '1.1.0') {
$this->urlArray = $urlArray;
$this->typeArray = $typeArray;
$this->formatArray = $formatArray;
//load xml snippet from filesystem as template
$metadataUrlDomObject = new DOMDocument();
switch ($service) {
case 'wfs':
switch ($version) {
case "1.1.0":
$template = "mb_ows_wfs_1.x_metadataurl.xml";
break;
case "1.0.0":
$template = "mb_ows_wfs_1.x_metadataurl.xml";
break;
case "2.0.0":
$template = "mb_ows_wfs_2.x_metadataurl.xml";
break;
case "2.0.2":
$template = "mb_ows_wfs_2.x_metadataurl.xml";
break;
}
break;
case 'wms':
$template = "mb_ows_metadataurl.xml";
break;
}
//$metadataUrlDomObject->load(dirname(__FILE__) . "/../geoportal/metadata_templates/mb_ows_metadataurl.xml");
$metadataUrlDomObject->load(dirname(__FILE__) . "/../geoportal/metadata_templates/".$template);
$xpathMetadataUrl = new DOMXpath($metadataUrlDomObject);
//$reportNodeList = $xpathLicense->query('/mb:dataqualityreport/gmd:report');
$xpathMetadataUrl->registerNamespace("mb", "http://www.mapbender.org/ows/metadataurl");
$xpathMetadataUrl->registerNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance");
$xpathMetadataUrl->registerNamespace("xlink", "http://www.w3.org/1999/xlink");
//clone report node and get parent
$MetadataUrl = $xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0);
$parent = $MetadataUrl->parentNode;
//add one entry foreach found element
$i = 0;
foreach ($this->urlArray as $url) {
//$e = new mb_exception($url);
//TODO: For wms:
//$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("type", $this->typeArray[$i]);
//$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL/Format')->item(0)->nodeValue = $this->formatArray[$i];
//$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL/OnlineResource')->item(0)->setAttribute("xlink:href", $url);
//For wfs 2.x
switch ($service) {
case 'wfs':
switch ($version) {
case "1.1.0":
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("type", $this->typeArray[$i]);
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("format", $this->formatArray[$i]);
$textNode = $metadataUrlDomObject->createTextNode($this->urlArray[$i]);
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->nodeValue = "";
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->appendChild($textNode);
//$e = new mb_exception("class_owsMetadataUrl: 1.1.0: value: ".$this->urlArray[$i]);
break;
case "1.0.0":
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("type", $this->typeArray[$i]);
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("format", $this->formatArray[$i]);
$textNode = $metadataUrlDomObject->createTextNode($this->urlArray[$i]);
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->nodeValue = "";
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->appendChild($textNode);
break;
case "2.0.0":
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("xlink:href", $this->urlArray[$i]);
break;
case "2.0.2":
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("xmlns:xlink", "http://www.w3.org/1999/xlink");
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("xlink:href", $this->urlArray[$i]);
break;
}
break;
case 'wms':
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL')->item(0)->setAttribute("type", $this->typeArray[$i]);
$textNode = $metadataUrlDomObject->createTextNode($this->formatArray[$i]);
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL/Format')->item(0)->nodeValue = "";
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL/Format')->item(0)->nodeValue->appendChild($textNode);
$xpathMetadataUrl->query('/mb:metadataurl/MetadataURL/OnlineResource')->item(0)->setAttribute("xlink:href", $this->urlArray[$i]);
break;
}
//clone node and add if afterwards
$MetadataUrlNew = $MetadataUrl->cloneNode(true);
$parent->appendChild($MetadataUrlNew);
$i++;
}
//delete first (template) entry
$parent->removeChild($MetadataUrl);
$XML = $metadataUrlDomObject->saveXML();
return $XML;
}
}
?>