|
@@ -4,88 +4,88 @@ Lib::loadClass('Request');
|
|
|
|
|
|
|
|
class Api_WfsNs {
|
|
class Api_WfsNs {
|
|
|
|
|
|
|
|
- public static function typeName($namespaceUri) {
|
|
|
|
|
- $ex = explode('/', $namespaceUri);
|
|
|
|
|
- $name = array_pop($ex);
|
|
|
|
|
- $nsUri = implode('/', $ex);
|
|
|
|
|
- return self::getNsPrefix($nsUri) . ":{$name}";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ public static function typeName($namespaceUri) {
|
|
|
|
|
+ $ex = explode('/', $namespaceUri);
|
|
|
|
|
+ $name = array_pop($ex);
|
|
|
|
|
+ $nsUri = implode('/', $ex);
|
|
|
|
|
+ return self::getNsPrefix($nsUri) . ":{$name}";
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- public static function namespaceFromTypeName($typeName) {
|
|
|
|
|
- list($nsPrefix, $name) = explode(':', $typeName);
|
|
|
|
|
- $baseNsUri = self::getBaseWfsUri();
|
|
|
|
|
- $namespace = self::getNsUri($nsPrefix) . "/{$name}";
|
|
|
|
|
- return ($baseNsUri === substr($namespace, 0, strlen($baseNsUri)))
|
|
|
|
|
- ? substr($namespace, strlen($baseNsUri) + 1)
|
|
|
|
|
- : $namespace;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ public static function namespaceFromTypeName($typeName) {
|
|
|
|
|
+ list($nsPrefix, $name) = explode(':', $typeName);
|
|
|
|
|
+ $baseNsUri = self::getBaseWfsUri();
|
|
|
|
|
+ $namespace = self::getNsUri($nsPrefix) . "/{$name}";
|
|
|
|
|
+ return ($baseNsUri === substr($namespace, 0, strlen($baseNsUri)))
|
|
|
|
|
+ ? substr($namespace, strlen($baseNsUri) + 1)
|
|
|
|
|
+ : $namespace;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- public static function namespaceUriFromTypeName($typeName) {
|
|
|
|
|
- list($nsPrefix, $name) = explode(':', $typeName);
|
|
|
|
|
- return self::getNsUri($nsPrefix) . "/{$name}";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ public static function namespaceUriFromTypeName($typeName) {
|
|
|
|
|
+ list($nsPrefix, $name) = explode(':', $typeName);
|
|
|
|
|
+ return self::getNsUri($nsPrefix) . "/{$name}";
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // @usage: Api_WfsNs::getNsList();
|
|
|
|
|
- public static function getNsList() {
|
|
|
|
|
- $listNs = array();
|
|
|
|
|
- $baseNsUri = self::getBaseWfsUri();
|
|
|
|
|
- $listNs["{$baseNsUri}"] = 'p5';
|
|
|
|
|
|
|
+ // @usage: Api_WfsNs::getNsList();
|
|
|
|
|
+ public static function getNsList() {
|
|
|
|
|
+ $listNs = array();
|
|
|
|
|
+ $baseNsUri = self::getBaseWfsUri();
|
|
|
|
|
+ $listNs["{$baseNsUri}"] = 'p5';
|
|
|
$listNs["{$baseNsUri}/default_db"] = 'default_db';
|
|
$listNs["{$baseNsUri}/default_db"] = 'default_db';
|
|
|
$listNs["{$baseNsUri}/default_objects"] = 'default_objects';
|
|
$listNs["{$baseNsUri}/default_objects"] = 'default_objects';
|
|
|
$listNs["{$baseNsUri}/objects"] = 'p5_objects';// TODO: to remove
|
|
$listNs["{$baseNsUri}/objects"] = 'p5_objects';// TODO: to remove
|
|
|
return $listNs;
|
|
return $listNs;
|
|
|
- }
|
|
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // @usage: Api_WfsNs::getNsUri('default_db');
|
|
|
|
|
- public static function getNsUri($nsPrefix) {
|
|
|
|
|
- $listNs = self::getNsList();
|
|
|
|
|
- $nsMap = array_flip($listNs);
|
|
|
|
|
- $nsUri = V::get($nsPrefix, null, $nsMap);
|
|
|
|
|
- if (!$nsUri) {
|
|
|
|
|
- if ('p5_default_db' == $nsPrefix) return V::get('default_db', null, $nsMap);
|
|
|
|
|
- if ('objects' == $nsPrefix) return V::get('p5_objects', null, $nsMap);
|
|
|
|
|
- if ('default_db__x3A__' == substr($nsPrefix, 0, 17)) return $nsMap['default_db'] . "/" . substr($nsPrefix, 17);
|
|
|
|
|
- }
|
|
|
|
|
- return $nsUri;
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // @usage: Api_WfsNs::getNsUri('default_db');
|
|
|
|
|
+ public static function getNsUri($nsPrefix) {
|
|
|
|
|
+ $listNs = self::getNsList();
|
|
|
|
|
+ $nsMap = array_flip($listNs);
|
|
|
|
|
+ $nsUri = V::get($nsPrefix, null, $nsMap);
|
|
|
|
|
+ if (!$nsUri) {
|
|
|
|
|
+ if ('p5_default_db' == $nsPrefix) return V::get('default_db', null, $nsMap);
|
|
|
|
|
+ if ('objects' == $nsPrefix) return V::get('p5_objects', null, $nsMap);
|
|
|
|
|
+ if ('default_db__x3A__' == substr($nsPrefix, 0, 17)) return $nsMap['default_db'] . "/" . substr($nsPrefix, 17);
|
|
|
|
|
+ }
|
|
|
|
|
+ return $nsUri;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // @usage: Api_WfsNs::getNsPrefix('https://biuro.biall-net.pl/wfs/default_db');
|
|
|
|
|
- public static function getNsPrefix($nsUri) {
|
|
|
|
|
- $listNs = self::getNsList();
|
|
|
|
|
- $nsUri = trim($nsUri);
|
|
|
|
|
- $nsUri = rtrim($nsUri, '/');
|
|
|
|
|
- $prefix = V::get($nsUri, null, $listNs);
|
|
|
|
|
- if ($prefix) return $prefix;
|
|
|
|
|
|
|
+ // @usage: Api_WfsNs::getNsPrefix('https://biuro.biall-net.pl/wfs/default_db');
|
|
|
|
|
+ public static function getNsPrefix($nsUri) {
|
|
|
|
|
+ $listNs = self::getNsList();
|
|
|
|
|
+ $nsUri = trim($nsUri);
|
|
|
|
|
+ $nsUri = rtrim($nsUri, '/');
|
|
|
|
|
+ $prefix = V::get($nsUri, null, $listNs);
|
|
|
|
|
+ if ($prefix) return $prefix;
|
|
|
|
|
|
|
|
- $relativeNsUri = ('http' == substr($nsUri, 0, 4))
|
|
|
|
|
- ? substr($nsUri, strlen(self::getBaseWfsUri()) + 1)
|
|
|
|
|
- : $nsUri;
|
|
|
|
|
- $prefix = V::get(self::getBaseWfsUri() . "/{$relativeNsUri}", null, $listNs);
|
|
|
|
|
- if ($prefix) return $prefix;
|
|
|
|
|
|
|
+ $relativeNsUri = ('http' == substr($nsUri, 0, 4))
|
|
|
|
|
+ ? substr($nsUri, strlen(self::getBaseWfsUri()) + 1)
|
|
|
|
|
+ : $nsUri;
|
|
|
|
|
+ $prefix = V::get(self::getBaseWfsUri() . "/{$relativeNsUri}", null, $listNs);
|
|
|
|
|
+ if ($prefix) return $prefix;
|
|
|
|
|
|
|
|
- if (false === strpos($nsUri, '/')) throw new Exception("BUG: Unsupported namespace uri '{$nsUri}'");
|
|
|
|
|
- $nsEx = explode("/", $relativeNsUri);
|
|
|
|
|
- if ('default_db' != $nsEx[0]) throw new Exception("BUG: Unsupported namespace uri '{$nsUri}'");
|
|
|
|
|
- return str_replace('/', '__x3A__', $relativeNsUri);
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ if (false === strpos($nsUri, '/')) throw new Exception("BUG: Unsupported namespace uri '{$nsUri}'");
|
|
|
|
|
+ $nsEx = explode("/", $relativeNsUri);
|
|
|
|
|
+ if ('default_db' != $nsEx[0]) throw new Exception("BUG: Unsupported namespace uri '{$nsUri}'");
|
|
|
|
|
+ return str_replace('/', '__x3A__', $relativeNsUri);
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- // @usage: Api_WfsNs::getBaseWfsUri();
|
|
|
|
|
- public static function getBaseWfsUri() {
|
|
|
|
|
- return Request::getHostUri() . "/wfs";
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ // @usage: Api_WfsNs::getBaseWfsUri();
|
|
|
|
|
+ public static function getBaseWfsUri() {
|
|
|
|
|
+ return Request::getHostUri() . "/wfs";
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
- /**
|
|
|
|
|
- * @return [ $nsUri, $prefix, $name ]
|
|
|
|
|
- * @example: list($nsUri, $prefix, $name) = Api_WfsNs::parseObjectNsUri('default_objects/AccessOwner');
|
|
|
|
|
- */
|
|
|
|
|
- public static function parseObjectNsUri($objectNsUri) {
|
|
|
|
|
- if ('{' == substr($objectNsUri, 0, 1)) $objectNsUri = str_replace('}', '/', substr($objectNsUri, 1));// form like "{.../wfs/default_objects}AccessOwner"
|
|
|
|
|
- $nsEx = explode('/', $objectNsUri);
|
|
|
|
|
- $name = array_pop($nsEx);
|
|
|
|
|
- $nsUri = implode('/', $nsEx);
|
|
|
|
|
- if ('http' !== substr($nsUri, 0, 4)) $nsUri = self::getBaseWfsUri() . "/" . $nsUri;
|
|
|
|
|
- $prefix = self::getNsPrefix($nsUri);
|
|
|
|
|
- return [ $nsUri, $prefix, $name ];
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ /**
|
|
|
|
|
+ * @return [ $nsUri, $prefix, $name ]
|
|
|
|
|
+ * @example: list($nsUri, $prefix, $name) = Api_WfsNs::parseObjectNsUri('default_objects/AccessOwner');
|
|
|
|
|
+ */
|
|
|
|
|
+ public static function parseObjectNsUri($objectNsUri) {
|
|
|
|
|
+ if ('{' == substr($objectNsUri, 0, 1)) $objectNsUri = str_replace('}', '/', substr($objectNsUri, 1));// form like "{.../wfs/default_objects}AccessOwner"
|
|
|
|
|
+ $nsEx = explode('/', $objectNsUri);
|
|
|
|
|
+ $name = array_pop($nsEx);
|
|
|
|
|
+ $nsUri = implode('/', $nsEx);
|
|
|
|
|
+ if ('http' !== substr($nsUri, 0, 4)) $nsUri = self::getBaseWfsUri() . "/" . $nsUri;
|
|
|
|
|
+ $prefix = self::getNsPrefix($nsUri);
|
|
|
|
|
+ return [ $nsUri, $prefix, $name ];
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
}
|
|
}
|