Web Feature Service (WFS)
Konfigurationsreferens för WFS
Namespace
urn:se.viamap.weave.server.wfs#1.0
Tags
namespace
En namnrymd (namespace) används för att organisera lager. Detta förhindrar namnkonflikter och gör det möjligt att hämta rätt data. Namnrymden används också som en nivå av behörighetsstyrning, där lager anslutna till en namnrymd måste godkännas av definierad ACL.
Properties
Namn | Typ | Krävs | Multiplicitet | Beskrivning |
---|---|---|---|---|
id | string | ja | 1..1 | Unik identifierare för namnrymden |
prefix | string | nej | 0..1 | Kort referens till namnrymden i XML och anrop. Om fältet inte fylls i används id. Notera att prefix enbart får bestå av små bokstäver (a-z) och siffror. Första tecknet måste vara en bokstav |
uri | string | ja | 1..1 | Unikt URI för namnrymden. Exempelvis
|
acl | nej | 0..1 | En referens till en ACL att binda till namnrymden |
Tags
layer
Properties
Namn | Typ | Krävs | Multiplicitet | Beskrivning |
---|---|---|---|---|
id | string | nej | 0..1 | Unik identifierare för registreringen. |
spatialengine | ja | 1..1 | Identifieraren av den spatiala engine som refererade lager återfinns | |
namespace | nej | 0..1 | Identifieraren av den namnrymd lagren ska refereras till. Sätts till
| |
acl | nej | 0..1 | En referens till en ACL att binda till refererade lager | |
layers | Se sub-tabs | ja | 1..n |
|
Sub-tags
layers
Namn | Typ | Krävs | Multiplicitet | Beskrivning |
---|---|---|---|---|
typename | string | ja | 0..1 | Referens till tabellen/lager i spatial engine |
name | string | nej | 0..1 | Metadata-tag för lagret. Om fältet lämnas blankt används typename |
abstract | string | nej | 0..1 | Metadata-tag för lagret. |
layers | Se sub-tabs | ja | 1..n |
|
published | boolean | nej | 0..1 | Ska lagret publiceras i GetCapabilities-dokumentet? Ett opublicerat lager är tillgänglig vid anrop, men exkluderas från GetCapabilities-dokumentet |
keywords | string | nej | 0..n | Metadata-tag för lagret. |
filter | string | nej | 0..n | Filter som appliceras på anrop mot lagret |
acl | nej | 0..1 | En referens till en ACL att binda till refererade lager |
Notera att fälten published
, keywords
, filter
och acl
kan specificeras i topp-konfigurationen. Varje lager ärver då dessa inställningar, utöver sina egna.
För published
skrivs används i första hand lagrets egna konfiguration och topp-konfigurationen i andra hand
För keywords
och filter
appliceras först topp-konfigurationen och därefter lagrets egna värden
För acl
används topp-konfigurationen och lagrets egna. En användare med som anropar ett lager med en ACL-kedja måste passera samtliga (Maximalt tre: namnrymd, topp-kofiguration, lager)
Exempel
<?xml version="1.0" encoding="UTF-8"?>
<config xmlns="urn:com.cohga.server.config#1.0"
xmlns:wfs="urn:se.viamap.weave.server.wfs#1.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<!-- Set properties for the server -->
<wfs:server>
<!-- Properties exposed to the Get Capabilities Document -->
<name>Viamap Web Feature Service</name>
<abstract>Basic implementation of WFS 1.1.0 and 2.0.0</abstract>
<keywords>WFS,WEAVE,VIAMAP</keywords>
<fees>Specified by contract</fees>
<accessConstraints>Only permitted individuals are allowed access</accessConstraints>
<providerName>Viamap AB</providerName>
<!-- Set the default limit of features to receive in a request. Defaults to 1 000 000 -->
<countDefault>10000</countDefault>
<!-- Throw an error if the user requests a higher count than countDefault. Defaults to false -->
<throwOnCount>true</throwOnCount>
</wfs:server>
<wfs:namespace id="geodata" uri="http://www.viamap.se/test" />
<wfs:namespace id="internal" uri="http://www.viamap.se/test" acl="internal" />
<!-- Publish layers with no restrictions with the default namespace -->
<wfs:layer id="public">
<spatialengine>se.data</spatialengine>
<layers typename="poi" />
<layers typename="city_areas" />
</wfs:layer>
<!-- Publish layers with to the 'geodata' namespace -->
<wfs:layer id="geodata">
<spatialengine>se.data</spatialengine>
<namespace>geodata</namespace>
<!-- User must be granted access by the geodata acl -->
<acl>geodata</acl>
<!-- Apply this keyword for each layer -->
<keywords>Geodata</keywords>
<!-- Apply this filter for each layer -->
<filter>type = 1</filter>
<layers>
<typename>address</typename>
<!-- Apply this this addition filter -->
<filter>planned = FALSE</filter>
<!-- Apply this this addition keyword-->
<keywords>Address information</keywords>
</layers>
<layers>
<typename>buildings</typename>
<filter>planned = FALSE</filter>
</layers>
<layers>
<typename>buildings</typename>
<!-- Override the name -->
<name>planned_buildings</name>
<!-- Apply this this addition filter -->
<filter>planned = FALSE</filter>
<!-- Do not publish this layer in the Get Capabilities Document -->
<published>false</published>
<!-- Require additional access check -->
<acl>geodata.planned</acl>
</layers>
</wfs:layer>
<!-- Publish internal layers with to the 'internal' namespace -->
<!-- Access checks are inherited from the namespace's acl entry -->
<wfs:layer id="internal">
<spatialengine>se.data</spatialengine>
<namespace>internal</namespace>
<layers>
<typename>prospects</typename>
</layers>
<layers>
<typename>buildings</typename>
<filter>planned = FALSE</filter>
</layers>
</wfs:layer>
</config>