|
@@ -1549,4 +1549,38 @@ if($DBG){echo 'L.' . __LINE__ . ' $validateConvertedTransactionXsdString:';print
|
|
|
$this->_logger->DBG($reqLog, $lineNr, $funName, $className);
|
|
$this->_logger->DBG($reqLog, $lineNr, $funName, $className);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
+ public function convertOgcFilterFromRequestBody($requestOgcFilter) {
|
|
|
|
|
+ $ogcFilter = '';
|
|
|
|
|
+ if (empty($requestOgcFilter)) return '';
|
|
|
|
|
+ {
|
|
|
|
|
+ $convertOgcFilterXslString .= <<<EOF
|
|
|
|
|
+<xsl:transform version="1.0"
|
|
|
|
|
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
|
|
|
|
+ xmlns:wfs="http://www.opengis.net/wfs"
|
|
|
|
|
+ xmlns:ogc="http://www.opengis.net/ogc"
|
|
|
|
|
+ xmlns:gml="http://www.opengis.net/gml">
|
|
|
|
|
+ <xsl:output method="xml" omit-xml-declaration="yes" indent="yes"/>
|
|
|
|
|
+ <xsl:template match="/">
|
|
|
|
|
+ <xsl:for-each select="//*[local-name() = 'GetFeature']">
|
|
|
|
|
+ <xsl:copy-of select="ogc:Filter"/>
|
|
|
|
|
+ </xsl:for-each>
|
|
|
|
|
+ </xsl:template>
|
|
|
|
|
+</xsl:transform>
|
|
|
|
|
+EOF;
|
|
|
|
|
+
|
|
|
|
|
+ DBG::_('DBG_XML', '>2', "convertOgcFilterXslString", $convertOgcFilterXslString, __CLASS__, __FUNCTION__, __LINE__);
|
|
|
|
|
+ $convertTransactionXsl = new DOMDocument();
|
|
|
|
|
+ $convertTransactionXsl->loadXml($convertOgcFilterXslString);
|
|
|
|
|
+
|
|
|
|
|
+ $requestXml = new DOMDocument();
|
|
|
|
|
+ $requestXml->loadXml($requestOgcFilter);
|
|
|
|
|
+
|
|
|
|
|
+ $proc = new XSLTProcessor();
|
|
|
|
|
+ $proc->importStylesheet($convertTransactionXsl);
|
|
|
|
|
+ $ogcFilter = $proc->transformToXML($requestXml);
|
|
|
|
|
+ DBG::_('DBG_XML', '>2', "ogcFilter", $ogcFilter, __CLASS__, __FUNCTION__, __LINE__);
|
|
|
|
|
+ }
|
|
|
|
|
+ return $ogcFilter;
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
}
|
|
}
|