| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- <?php
- // @usage: throw new Api_OwsException("Access Denied to Create field '{$fieldName}' in object '{$typeName}.{$pkObject}'", __LINE__, null, 'MissingFieldPermCreate', 'request');
- // example:
- // <ows:ExceptionReport
- // xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ows="http://www.opengis.net/ows/1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.1.0" xsi:schemaLocation="http://www.opengis.net/ows/1.1 https://demo.boundlessgeo.com/geoserver/schemas/ows/1.1.0/owsAll.xsd">
- // <ows:Exception exceptionCode="MissingParameterValue" locator="request">
- // <ows:ExceptionText>Could not determine geoserver request from http request org.geoserver.platform.AdvancedDispatchFilter$AdvancedDispatchHttpRequest@4183f02c</ows:ExceptionText>
- // </ows:Exception>
- // </ows:ExceptionReport>
- class Api_OwsException extends Exception {
- public $wfsCode = '';
- public $wfsLocator = '';
- public function __construct($message, $code = 0, Exception $previous = null, $wfsCode = '', $wfsLocator = '') {
- $this->wfsCode = $wfsCode;
- $this->wfsLocator = $wfsLocator;
- parent::__construct($message, $code, $previous);
- }
- public function generateResponseXml() {
- $xmlWriter = new XMLWriter();
- if (!$xmlWriter) throw new HttpException("Error no XMLWriter", 404);
- // $xmlWriter->openUri('php://output');
- $xmlWriter->openMemory();
- $xmlWriter->setIndent(true);
- $xmlWriter->startDocument('1.0','UTF-8');
- $xmlWriter->startElement('ows:ExceptionReport');
- {
- $xmlWriter->writeAttribute('xmlns:xs', 'http://www.w3.org/2001/XMLSchema');
- $xmlWriter->writeAttribute('xmlns:ows', 'http://www.opengis.net/ows/1.1');
- $xmlWriter->writeAttribute('xmlns:xsi', 'http://www.w3.org/2001/XMLSchema-instance');
- $xmlWriter->writeAttribute('xsi:schemaLocation', 'http://www.opengis.net/ows/1.1 https://demo.boundlessgeo.com/geoserver/schemas/ows/1.1.0/owsAll.xsd');
- $xmlWriter->writeAttribute('version', '1.1.0');
- $xmlWriter->startElement('ows:Exception');
- {
- if ($this->wfsCode) $xmlWriter->writeAttribute('exceptionCode', $this->wfsCode);
- if ($this->wfsLocator) $xmlWriter->writeAttribute('locator', $this->wfsLocator);
- $xmlWriter->startElement('ows:ExceptionText');
- {
- $xmlWriter->text($this->message);
- }
- $xmlWriter->endElement();// ows:ExceptionText
- }
- $xmlWriter->endElement();// ows:Exception
- }
- $xmlWriter->endElement();// ows:ExceptionReport
- $xmlWriter->endDocument();
- return $xmlWriter->outputMemory(true);
- }
- public function sendResponseXml() {
- header('Content-type: application/xml');
- echo $this->generateResponseXml();
- }
- }
|