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; } } ?>