Best Practices | OGC

67 

Teks penuh

(1)

Open Geospatial Consortium

Submission Date: 2015-02-10

Approval Date: 2015-05-29

Publication Date: 2016-02-01

External identifier of this OGC® document: <http://www.opengis.net/doc/BP/dgiwg-wfs2.0-profile/2.0>

Internal reference number of this OGC® document: OGC 15-005r1

Version: 2.0

Category: OGC® Best Practice

Editors: Stefan Strobel, Dimitri Sarafinof, David Wesloh, Paul Lacey

DGIWG – Web Feature Service 2.0 Profile

Copyright notice

Copyright © 2016 Open Geospatial Consortium

To obtain additional rights of use, visit http://www.opengeospatial.org/legal/.

Warning

This document defines an OGC Best Practices on a particular technology or approach related to an OGC standard. This document is not an OGC Standard and may not be referred to as an OGC Standard. It is subject to change without notice. However, this document is an official position of the OGC membership on this particular technology topic.

(2)

License Agreement

Permission is hereby granted by the Open Geospatial Consortium, ("Licensor"), free of charge and subject to the terms set forth below, to any person obtaining a copy of this Intellectual Property and any associated documentation, to deal in the Intellectual Property without restriction (except as set forth below), including without limitation the rights to implement, use, copy, modify, merge, publish, distribute, and/or sublicense copies of the Intellectual Property, and to permit persons to whom the Intellectual Property is furnished to do so, provided that all copyright notices on the intellectual property are retained intact and that each person to whom the Intellectual Property is furnished agrees to the terms of this Agreement.

If you modify the Intellectual Property, all copies of the modified Intellectual Property must include, in addition to the above copyright notice, a notice that the Intellectual Property includes modifications that have not been approved or adopted by LICENSOR.

THIS LICENSE IS A COPYRIGHT LICENSE ONLY, AND DOES NOT CONVEY ANY RIGHTS UNDER ANY PATENTS THAT MAY BE IN FORCE ANYWHERE IN THE WORLD.

THE INTELLECTUAL PROPERTY IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE COPYRIGHT HOLDER OR HOLDERS INCLUDED IN THIS NOTICE DO NOT WARRANT THAT THE FUNCTIONS CONTAINED IN THE INTELLECTUAL PROPERTY WILL MEET YOUR REQUIREMENTS OR THAT THE OPERATION OF THE INTELLECTUAL PROPERTY WILL BE UNINTERRUPTED OR ERROR FREE. ANY USE OF THE INTELLECTUAL PROPERTY SHALL BE MADE ENTIRELY AT THE USER’S OWN RISK. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR ANY CONTRIBUTOR OF INTELLECTUAL PROPERTY RIGHTS TO THE INTELLECTUAL PROPERTY BE LIABLE FOR ANY CLAIM, OR ANY DIRECT, SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES, OR ANY DAMAGES WHATSOEVER RESULTING FROM ANY ALLEGED INFRINGEMENT OR ANY LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR UNDER ANY OTHER LEGAL THEORY, ARISING OUT OF OR IN CONNECTION WITH THE IMPLEMENTATION, USE, COMMERCIALIZATION OR PERFORMANCE OF THIS INTELLECTUAL PROPERTY.

This license is effective until terminated. You may terminate it at any time by destroying the Intellectual Property together with all copies in any form. The license will also terminate if you fail to comply with any term or condition of this Agreement. Except as provided in the following sentence, no such termination of this license shall require the termination of any third party end-user sublicense to the Intellectual Property which is in force as of the date of notice of such termination. In addition, should the Intellectual Property, or the operation of the Intellectual Property, infringe, or in LICENSOR’s sole opinion be likely to infringe, any patent, copyright, trademark or other right of a third party, you agree that LICENSOR, in its sole discretion, may terminate this license without any compensation or liability to you, your licensees or any other party. You agree upon termination of any kind to destroy or cause to be destroyed the Intellectual Property together with all copies in any form, whether held by you or by any third party.

(3)

DGIWG 122

DGIWG - Web Feature Service 2.0 Profile

Document type: Standard

Document subtype: Implementation Profile

Document date: 16 November 2015

Edition number: 2.0.0

Supersedes: This document supersedes DGIWG – 122 Ed. 1.1.0, Web

Feature Service (WFS) Profile, dated 09 February 2015.

Responsible Party: DGIWG

Audience: This document is approved for public release and is available

on the DGIWG website, http://www.dgiwg.org/dgiwg/

Abstract: This document defines the DGIWG profile for the ISO

19142:2010 - Web Feature Service (WFS) including changes made in the OpenGIS Web Feature Service 2.0 Interface Standard - Corrigendum. The Web Feature Service provides access to geospatial features in a manner independent of the underlying data store.

Copyright: (C) Copyright DGIWG, some rights reserved - (CC) (By:)

Attribution You are free:

- to copy, distribute, display, and perform/execute the work

- to make derivative works

- to make commercial use of the work

Under the following conditions:

- (By:) Attribution. You must give the original author (DGIWG)

(4)

This is a human-readable summary of the Legal Code (the full license is available from Creative Commons

(5)

Table of Contents

1. Introduction ... 1

2. Scope ... 1

3. Conformance ... 2

4. Normative references ... 5

5. Terms, definitions, and abbreviations ... 5

5.1. Definitions ... 5

5.2. Abbreviations ... 5

6. OGC WFS 2.0 (informative) ... 7

6.1. OGC WFS 2.0 Conformance Classes ... 7

6.2. Filter operators ... 10

6.3. Joins ... 10

6.4. Versioning ... 12

6.5. Output Format ... 12

7. DGIWG Basic WFS Profile (normative) ... 14

7.1. Introduction ... 14

7.2. Supported operations ... 14

7.2.1. GetCapabilities ... 14

7.2.2. DescribeFeatureType ... 17

7.2.3. GetFeature ... 17

7.2.4. GetPropertyValue ... 17

7.2.5. Stored queries ... 17

7.3. Supported filters ... 19

7.3.1. Standard filter ... 19

7.3.2. Spatial filter ... 20

7.3.3. Temporal filter ... 20

7.4. Joins ... 20

7.5. Bindings ... 22

7.6. Response paging ... 22

8. DGIWG Locking (Transactional) WFS Profile (normative) ... 23

8.1. Introduction ... 23

8.2. Supported operations ... 23

8.2.1. Common operations ... 23

8.2.2. Transaction ... 23

8.2.3. Locking operations ... 24

8.3. Supported filters ... 24

8.4. Bindings ... 24

8.5. Response paging ... 25

(6)

A.1 Conformance classes ... 33

A.1.1 DGIWG Basic WFS ... 33

A.1.2 DGIWG Locking WFS ... 33

A.2 Basic tests for DGIWG profiles ... 33

A.2.1 GetCapabilities for DGIWG Basic WFS ... 33

A.2.2 Stored queries ... 34

A.2.3 Filters ... 34

A.2.4 CRS ... 34

A.2.5 Operations constraints ... 34

A.3 Locking tests for DGIWG profiles ... 35

A.3.1 GetCapabilities for DGIWG Locking WFS ... 35

Annex B – Recommended practices (informative) ... 36

Annex C – Examples (informative) ... 37

C.1 GetCapabilities examples ... 37

C.2 GetPropertyValue examples ... 48

C.3 DescribeFeatureType examples ... 48

C.4 GetFeature examples ... 49

C.5 ListStoredQueries example ... 50

C.6 Describe Stored Queries example ... 51

Annex D – Stored Queries examples (informative) ... 52

(7)

List of Figures

Figure 1: OGC WFS Conformance Classes for general implementations ... 7

Figure 2: WFS Conformance Classes Overview ... 9

List of Tables

Table 1: DGIWG WFS profiles overview ... 1

Table 2: DGIWG WFS profiles – Conformance Classes ... 4

Table 3: Links between OGC 09-025r2 conformance classes (WFS) and OGC 09-026r2 conformance classes (FE) ... 12

Table 4: Elements to describe feature types in a GetCapabilities document ... 16

Table 5: DescribeFeatureType ... 17

Table 6: StoredQuery definition ... 19

Table 7: Supported bindings for DGIWG WFS Basic profile ... 22

Table 8: Operation constraints source (OGC 09-025r2 - Table 14 - Operation Constraint) .. 28

Table 9: Normative client requirements ... 57

(8)

Executive Summary

This document provides recommended implementation profiles for the ISO 19142:2010 Web Feature Service / Open Geospatial Consortium Web Feature Service Interface Standard (WFS) 2.0 – With Corrigendum. The WFS standard provides an interface allowing requests for geospatial features across the web using platform-independent mechanisms and is independent of the underlying data store. One can think of geospatial features as the "source code" behind a map. Whereas the OGC Web Map Service (WMS) interface or online mapping portals return only an image, which end-users cannot edit or spatially analyze, the WFS provides XML-based Geography Markup Language (GML) as the default payload-encoding for transporting geospatial features. In other words, rather than sharing geographic information at the file level using File Transfer Protocol (FTP), for example, the WFS offers direct fine-grained access to geographic information at the feature and feature property level. The WFS standard specifies discovery operations, query operations, locking operations, transaction operations and operations to manage stored parameterized query expressions. The WFS interface permits users to access and manipulate geospatial feature information from distributed network sources.

Technical specifications sometimes have optional features, such that two conforming implementations may not inter-operate completely due to choosing different sets of optional features to support. Even when no formal optional features exist within a standard, there is still a risk that vendors will not implement functionality that is most important to the military community. Also, some standards contain vague or ambiguous wording thus the development and use of profiles can enforce one possible interpretation. To limit the number of interpretations by implementers and improve interoperability it is possible to define profiles. In standardization, a profile consists of an agreed-upon subset and specific interpretation of a specification.

The intention of the DGIWG WFS 2.0 profiles is to minimize such interoperability issues with a specific view to a military context and to mandate a minimum set of service requirements necessary to ensure usability in an operational coalition environment. These profiles are designed to both increase interoperability between WFS servers and to improve the ease of implementation of the WFS standard.

(9)

i.

Submitting organizations

For the Defence Geospatial Information Working Group (DGIWG):

Nation Parent organization

Germany Bundeswehr Geoinformation Centre (BGIC)

France Institut Géographique National (IGN)

United States National Geospatial-Intelligence Agency (NGA)

United Kingdom Defence Science and Technology Laboratory (DSTL)

ii.

Future work

A revision of WFS 2.0 is currently undertaken at the OGC. The revision will produce a version 2.5 of the WFS standard. This DGIWG WFS profile is based on WFS version 2.0.2 and will be updated with future OGC WFS versions.

The WFS 2.5 standard will include several changes like for instance

฀ 11-087 New Operation: ImportSchema and DeleteFeatureType Operation for managing WFS server

฀ 12-038 Time slicing for Features: Goal is to add this new functionality directly in the projection clause (Filter Encoding)

฀ 12-015 Support Units of Measure (UoM): Assists users when requesting features in a certain UoM (e.g. meters, feet, …)

Additionally the DGIWG WFS project team will evaluate the use of compression formats like gzip, zip and others as a future work item.

Another important development with potential use within DGIWG is the OGC Geosynchronization Service standard. This standard allows for a managed update of features in a database and adds notification services. This is contingent upon change request 11-087.

(10)

1. Introduction

The Web Feature Service provides access to geospatial features in a manner independent of the underlying data store. WFS can also provide the capability to perform operations to create, update and delete features from a data store.

This document defines the DGIWG profile for the ISO 19142:2010 - Web Feature Service (WFS) including changes made in the OpenGIS Web Feature Service 2.0 Interface Standard - Corrigendum.

The intention of the profile is to minimize interoperability issues specific to a military context and to mandate a minimum set of service requirements necessary to ensure usability in an operational coalition environment.

The following general categories of requirements for implementing a WFS 2.0 profile have been considered.

฀ Filter operators (spatial, temporal,…) to generate queries to access data

฀ Operations and parameters to create, read, update and delete data

฀ Adaptation to network, bandwidth constraints (response paging, compression)

฀ Platform and system independent output formats

฀ Quality of service (performance, capacity or availability)

฀ Pre-defined queries (use case dependent data set)

2. Scope

The DGIWG WFS profiles minimize interoperability issues specific to a military context and mandate a minimum set of service requirements necessary to ensure usability in an operational coalition environment.

This document defines the DGIWG profile for the OpenGIS Web Feature Service 2.0 Interface Standard – With Corrigendum based on the assessment of the WFS questionnaire.

WFS Profiles Operations Supported

Operators

Bindings Additional

DGIWG Basic WFS GetCapabilities

DescribeFeatureType

DGIWG Locking

(Transactional) WFS

includes all of DGIWG Basic WFS and

Transaction

LockFeature

(11)

3. Conformance

The WFS 2.0 International Standard specifies the behavior of a service that provides transactions on and access to geographic features. It specifies discovery operations, query operations, locking operations, transaction operations and operations to manage stored parameterized query expressions. The International Standard states that a server supporting a specific operation shall be capable of handling any well-formed request.

The DGIWG WFS profiles require conformance to OGC 09-025r2 and mandate specific operations to be supported by the server. The profiles also describe how the server shall respond, in other words it identifies the set of mandatory elements a server shall provide.

The conformance classes defined below by the DGIWG WFS profiles and lists the tests specified in Annex A that shall be satisfied in order to comply with each class.

The conformance classes also list which, if any, WFS 2.0 (see OGC 09-025r2, Clause 2) conformance tests need to be satisfied with each WFS conformance class. These WFS 2.0 conformance classes also reference the OGC 09-026R2 Filter Encoding Conformance Test(s).

Conformance class name

Operation or behavior * OGC / ISO Conformance

OGC 09-025r2 Basic WFS:

"The server shall implement the Simple WFS conformance class and shall additionally implement the GetFeature operation with the Query action and the GetPropertyValue operation."

OGC 09-025r2, A.1.2

OGC 09-025r2 HTTP GET:

The server shall implement the Key-Value Pair (HTTP GET/KVP) encoding.

OGC 09-025R2, A.1.5

OGC 09-025r2 HTTP POST:

The server shall implement the XML (HTTP POST/XML) encoding for the operations that the server offers.

OGC 09-025R2, A.1.6

OGC 09-026R2 Minimum Standard Filter

(12)

Conformance class name

Operation or behavior * OGC / ISO Conformance Test

DGIWG WFS Conformance Test

Implements all the comparison and logical operators and may implement one or more additional functions.

A.6

OGC 09-026R2 Minimum Spatial Filter Implements only the BBOX spatial operator.

OGC 09-026R2, A.7

OGC 09-026R2 Spatial Filter

Implements the BBOX spatial operator and one or more of the other spatial operators.

OGC 09-026R2, A.8

OGC 09-026R2 Minimum Temporal Filter

Implements only the During temporal operator.

OGC 09-026R2, A.9

OGC 09-026R2 Temporal Filter

Implements the During temporal operator and one or more of the other temporal operators.

OGC 09-026R2, A.10

DGIWG requirements

The server shall implement additional DGIWG requirements.

OGC 09-025R2 Locking WFS:

The server shall implement the Transactional WFS conformance class and shall implement at least one of the GetFeatureWithLock or LockFeature operations.

OGC 09-025R2, A.1.4

OGC 09-025R2 HTTP GET:

The server shall implement the Key-Value Pair (HTTP GET/KVP) encoding.

OGC 09-025R2, A.1.5

OGC 09-025R2 HTTP POST:

The server shall implement the XML (HTTP POST/XML) encoding for the operations that the server offers.

OGC 09-025R2, A.1.6

OGC 09-026R2 Minimum Standard Filter

Implements the comparison operators: PropertyIsEqualTo, Implements the logical operators. Does

(13)

Conformance class name

Operation or behavior * OGC / ISO Conformance Test

DGIWG WFS Conformance Test

not implement any additional functions.

OGC 09-026R2 Standard Filter

Implements all the comparison and logical operators and may implement one or more additional functions.

OGC 09-026R2, A.6

OGC 09-026R2 Minimum Spatial Filter Implements only the BBOX spatial operator.

OGC 09-026R2, A.7

OGC 09-026R2 Spatial Filter

Implements the BBOX spatial operator and one or more of the other spatial operators.

OGC 09-026R2, A.8

OGC 09-026R2 Minimum Temporal Filter

Implements only the During temporal operator.

OGC 09-026R2, A.9

OGC 09-026R2 Temporal Filter

Implements the During temporal operator and one or more of the other temporal operators.

OGC 09-026R2, A.10

DGIWG requirements

The server shall implement additional DGIWG requirements

AnnexA.1.2 Annex A.3

Table 2: DGIWG WFS profiles – Conformance Classes

*

OGC 09-025r2 = Web Feature Service 2.0 Interface Standard – With Corrigendum OGC 09-026r2 = Filter Encoding with Corrigendum

(14)

4. Normative references

1. ISO/TC 211.ISO 19142:2010 Geographic information -- Web Feature Service. 2010.

2. —. ISO 19143:2010 Geographic information – Filter Encoding. 2010. ISO 19143:2010 .

3. OpenGIS.OGC Web Services Common Specification 1.1 . 2009 . [OGC 06-121r3].

4. —. Web Feature Service 2.0 Interface Standard – With Corrigendum. 2014. [OGC 09-025r2].

5. —. Filter Encoding 2.0 Encoding Standard. 2014. [OGC 09-026r2].

6. —. GML Performance Investigation by CubeWerx. 2005. OGC 05-050.

5. Terms, definitions, and abbreviations

For the purposes of this document, the following terms and definitions apply.

5.1. Definitions

For the purposes of this document, terms and definitions found in WFS 2.0, ISO 19142 and

[OGC 09-025r2] apply.

5.2. Abbreviations

CRS Coordinate Reference System

BBox Bounding Box

DGIWG Defence Geospatial Information Working Group

EPSG European Petroleum Survey Group

FES Filter Encoding Specification

GML Geography Markup Language

GZIP GNU Zip File format

HTTP Hypertext Transfer Protocol

IETF Internet Engineering Task Force

ISO International Organization for Standardization

ISO/DIS ISO Draft International Standard

KVP Keyword Value Pairs

MIME Multipurpose Internet Mail Extension

OGC Open Geospatial Consortium

OWS OGC Web Service

(15)

SPARQL Simple Protocol And RDF Query Language

SQL Structured Query Language

UML Unified Modelling Language

URI Uniform Resource Identifier

URL Uniform Resource Locator

URN Uniform Resource Name

VSP Vendor Specific Parameter

WFS Web Feature Service

WMS Web Map Service

WSDL Web Services Description Language

XML Extensible Markup Language

XPath XML Path Language

(16)

6. OGC WFS 2.0 (informative)

This section is informative and gives an overview of the different WFS conformance classes that can be used to build profiles of the standard.

6.1. OGC WFS 2.0 Conformance Classes

The Web Feature Service standard defines several conformance classes for service implementations. There are 5 conformance classes, which define general WFS implementations. They are WFS Simple, WFS Basic, Transactional WFS, WFS Locking and one additional supporting Manage Stored Queries. These WFS implementations are hierarchical structured, meaning all capabilities within Simple are captured within Basic and so forth. Figure 1 shows the dependencies between the WFS implementations.

pkg WFS 2.0

WFS 2.0 Service

Simple

Basic

Transactional WFS

Manage Stored Queries

Locking WFS

Figure 1: OGC WFS Conformance Classes for general implementations

Operations and capabilities for each WFS implementation are described in the standard (1) as follows:

Simple WFS

"The server shall implement the following operations: GetCapabilities, DescribeFeatureType, ListStoredQueries, DescribeStoredQueries, GetFeature operation with only the StoredQuery action. One stored query, that fetches a feature using its id, shall be available but the server may also offer additional stored queries. Additionally the server shall conform to at least one of the HTTP GET, HTTP POST or SOAP conformance classes."

(17)

Basic WFS

"The server shall implement the Simple WFS conformance class and shall additionally implement the GetFeature operation with the Query action and the GetPropertyValue operation."

NOTE: A Basic WFS supports at least a minimum set of filter sets to create ad hoc queries

Transactional WFS

"The server shall implement the Basic WFS conformance class and shall also implement the Transaction operation."

NOTE: A Transactional WFS supports operations to create, update and delete features on the server side.

Locking WFS

"The server shall implement the Transactional WFS conformance class and shall implement at least one of the GetFeatureWithLock or LockFeature operations."

NOTE: A Locking WFS supports the locking of features on the server side, for instance while one transaction accesses a data item, no other transaction may modify the same data item. This may be accomplished by using locks that control access to the data.

Manage stored queries

"The server shall implement the CreateStoredQuery and the DropStoredQuery operations."

NOTE: A Web Feature Service that supports the management of stored queries via the Web allows clients to create, drop, list and described parameterized query expressions that are stored by the server and can be repeatedly invoked using different parameter values.

(18)

class WFS DGIWG C...

WFS 2.0 Service

Binding Filter Format Usability

HTTP Get

Figure 2: WFS Conformance Classes Overview

The red boxes highlight mandatory requirements, meaning that a WFS 2.0 compliant service must implement at least GML version 3.2 as output format and one of the following bindings listed below:

Use cases for the listed bindings are for example:

฀ HTTP GET with KVP encoding

o simple to implement, adapted for low bandwidth (short request)

o less adapted for complicated set of parameters especially when using filter expressions

฀ HTTP POST with XML encoding,

o more adapted for complex requests (with filter expression for example)

฀ SOAP over HTTP POST

o Supports the same requests as HTTP POST with XML

o SOAP provides a mechanism to transmit additional information; these can be used for security and authentication purposes.

(19)

would not necessarily be useful to the client. If a WFS server for example provides for a HTTP POST binding and a client makes the request using a SOAP binding an interoperability issue exists. It is possible however, to require a developer to implement a "façade" on the server side which would be able to read a request and interpret it or translate it to a binding it does support to solve such interoperability problems. The other possibility would be to build clients that support more than one binding.

6.2. Filter operators

The DGIWG WFS profiles do require support for Filter operators.

OGC 09-026R2 specifies standard, spatial and temporal filters. These implement the following operators:

฀ Standard operators support comparison (PropertyIsEqualTo, PropertyIsNotEqualTo, PropertyIsLessThan, PropertyIsGreaterThan, PropertyIsLessThanOrEqualTo, PropertyIsGreaterThanOrEqualTo) and logical operators (AND, OR, NOT) and may implement one or more additional functions.

฀ Spatial operators are BBOX and Equals, Disjoint, Intersects, Touches, Crosses, Within, Contains, Overlaps

฀ Temporal operators are After, Before, Begins, BegunBy, TContains, During, TEquals, TOverlaps, Meets, OverlappedBy, MetBy, EndedBy, AnyInteracts

6.3. Joins

The DGIWG WFS profiles do not require the support for Joins. Nevertheless there might use cases where Joins are required. Therefore the support of Joins is optional.

Join queries are categorized as standard, spatial and temporal joins based on the operators that are used in the join predicates (filter expression). Filter operators implemented within standard, temporal and spatial joins are not dependent upon each other, meaning if a service implements spatial joins it is not necessarily true that it supports either standard or temporal joins. A service will define which set of joins it supports as part of its GetCapabilities document. If all the Filter operators, except the spatial and temporal operators are used in a join predicate, the server implements “standard join” queries. This kind of query includes comparison (PropertyIsEqualTo/NotEqualTo, PropertyIsLessThan/GreaterThan, ...) and logical operators (AND, OR, NOT).

(20)

<wfs:Query typeNames="myns:Person myns:Person" aliases="a b"> <fes:Filter>

<fes:And>

<fes:PropertyIsEqualTo>

<fes:ValueReference>a/Identifier</fes:ValueReference> <fes:Literal>12345</fes:Literal>

</fes:PropertyIsEqualTo>

<fes:PropertyIsEqualTo>

<fes:ValueReference>a/spouse</fes:ValueReference> <fes:ValueReference>b/Identifier</fes:ValueReference>

</fes:PropertyIsEqualTo>

</fes:And>

</fes:Filter>

</wfs:Query>

In this example a join predicate between "a/spouse" and "b/Identifier" is used to locate the spouse of the person whose identifier is "12345". This is also an example of a self-join since the myns:Person feature type is being joined to itself in order to identify the spouse.

If spatial operators are used in join predicates, the server implements “spatial join” queries. This conformance class requires the support of BBOX operator + at least an additional spatial operator among a list detailed in OGC 09-026R2 (Equals, Disjoint, Intersects, Touches, Overlaps, Contains, …).

Example: The following query expression uses a spatial join to find all park features that contain lakes:

<wfs:Query typeNames="myns:Parks myns:Lakes"> <fes:Filter>

<fes:Contains>

<fes:ValueReference>ns1:Parks/geometry</fes:ValueReference> <fes:ValueReference>ns1:Lakes/geometry</fes:ValueReference>

</fes:Contains>

</fes:Filter>

</wfs:Query>

The list of feature types to join is specified using the typeNames attribute (i.e. typeName="myns:Parks myns:Lakes") on the wfs:Query element. The join predicate is specified using the fes:Filter element and finds all pairs of ns1:Park and ns1:Lake features whose geometries satisfy the spatial operator fes:Contains.

If temporal operators are used in join predicates, the server implement “temporal join

queries. This conformance class requires the support of During operator + at least an additional spatial operator among a list detailed in OGC 09-026R2 (After/Before, Begins, OverlapsBy, EndedBy, TContains, …)

(21)

Conformance classes(OGC 09-025r2 - WFS 2.0) OGC 09-026r2 Conformance classes Standard

joins

Spatial joins

Temporal joins

Feature version

Minimum Standard Filter X

Standard Filter X

Minimum Spatial Filter X

Spatial Filter X

Minimum Temporal Filter X

Temporal Filter X

Version navigation X

Table 3: Links between OGC 09 2 conformance cl WFS and OGC 09 026r2

conformance cl F

6.4. Versioning

The DGIWG WFS profiles do not require the support for versioning. Nevertheless there might use cases where versioning is required. Therefore the support of versioning is optional.

Versioning provides the ability to access versions of one feature or historical reference. Within filter expressions, specific feature instances can be identified. If the server supports versioning, specific versions of a feature can be referenced. The “Feature version” conformance class requires the implementation of ResourceId operator with the parameters that allow versions of resources to be queried (version, startTime, endTime). This allows for navigation between different versions of the same feature.

The version attribute may be an integer (accessing the version of the resource), a date (accessing the version of the resource closest to the specified date) or a string (FIRST, LATEST, PREVIOUS, NEXT and ALL).

The attributes startTime and endTime may be used to specify a predicate that selects all versions of a resource between the specified start date and end date. The startTime and endTime attributes shall always be specified together. If the startTime and endTime are specified, the version attribute shall not be specified.

6.5. Output Format

As shown in Figure 2, a service, claiming compliance with WFS 2.0, shall support at least GML version 3.2. However the operations in the OGC 09-025R2 International Standard are defined in a manner that allows them to work with previous and future versions of GML.

(22)

<ows:Parameter name="outputFormat">

<ows:Value>application/gml+xml;version=3.2</ows:Value> <ows:Value>GML2</ows:Value>

<ows:Value>GML2-GZIP</ows:Value> <ows:Value>SHAPE-ZIP</ows:Value> <ows:Value>csv</ows:Value>

<ows:Value>excel</ows:Value> <ows:Value>gml3</ows:Value> <ows:Value>json</ows:Value>

<ows:Value>text/xml; subtype=gml/2.1.2</ows:Value>

</ows:Parameter>

(23)

7. DGIWG Basic WFS Profile (normative)

This section is normative and defines the DGIWG WFS Basic profile.

7.1. Introduction

The DGIWG Basic WFS Profile is based on the OGC 09-025R2 Basic WFS.

Requirement 1: A WFS server that claims to be conformant with the DGIWG Basic WFS profile shall implement the OGC 09 2 Basic WFS conformance class.

The relevant operations and parameters for the DGIWG Basic WFS profile are discussed in the following sections.

7.2. Supported operations

Based on the mandatory OGC 09-025r2 conformance classes the DGIWG WFS Basic Profile shall implement the following operations: GetCapabilities, DescribeFeatureType,

ListStoredQueries, DescribeStoredQueries, GetFeature, and GetPropertyValue. The

sections below provide additional information/requirements on operations supported.

7.2.1. GetCapabilities

The GetCapabilities operation generates a service metadata document describing a WFS service provided by a server. This metadata document holds information about:

฀ Service identification, service provider and operation metadata, which lists service operations offered by the server. These elements are inherited from the OWS-Common 1.1 specification.

Recommendation 1: A WFS server that claims to be conformant with the DGIWG Basic WFS profile should provide the updateSequence attribute.

Requirement 2: A WFS server that claims to be conformant with the DGIWG Basic WFS profile shall clearly identify the profile used by the WFS server by including at least the following statement : <Abstract>This server implements the DGIWG BASIC WFS profile of WFS 2.0</Abstract>.

Recommendation 2: A WFS server that claims to be conformant with the DGIWG Basic WFS profile should provide one of the following URN/URL designations:

<ows:Profile>http://www.dgiwg.org/service/wfs/1.0/profile/basic</ows:Profile> <ows:Profile>urn:dgiwg:service:wfs:1.0:profile:basic</ows:Profile>

(24)

Demarcation

Hydrography and Oceanography Industries and Services

Metadata and References

Military

Names and Designations

Physiography

Socio-economic Geography Transportation

Weather and Climate

NOTE: Additional keywords may be added to the list as appropriate to support data discovery.

Requirement 4: A WFS server that claims to be conformant with the DGIWG Basic WFS profile shall identify the highest classification level of the content accessible through the WFS service by populating the <ows:AccessConstraints> element.

NOTE: In an NATO environment, the common NATO classification scheme has to be applied (see DMF chapter 5.6.1.4 Classification Level Codelist).

฀ WFS version(s) supported by the server (mandatory "2.0.2" and possibly other versions "1.1.0", "1.0.0"). This information allows for version negotiation between a WFS service and a WFS client.

฀ FeatureTypes available on the server.

For each feature type the name is the minimum information required. It is also possible to provide additional optional information like output format, title, keywords or abstracts describing the feature types in more detail (see Table 11 in OGC 09-025r2).

Table 4 defines further requirements and recommendations (extending OGC 09-025r2) for the description of feature types.

฀ filterCapabilities supported by the WFS.

This section of the GetCapabilities document lists filter expressions that are supported by the server and then used for the GetFeature and GetPropertyValue operation. Filters which are supported by the DGIWG Basic WFS profile are presented in section 7.3.

(25)

Element name O/M1 OGC 09-025r2

O/R/M1 DGIWG Basic profile

Description

Name M M Name of the feature type

Title O M / C One human readable title is mandatory for all

cases.

For coalition interoperability an English title is mandatory.

NOTE: For national use the title can be provided in the national language.

Abstract O R / C One abstract element is recommended for all

cases.

If the abstract element is provided in a coalition environment an English abstract is mandatory. NOTE: For national use the abstract can be provided in the national language.

Keywords O M At least one keyword is required for each feature

type to facilitate data discovery in catalogues. Keywords can be duplicated in multiple languages.

Using DFDD codes and names as keywords are recommended.

DefaultCRS M M The wfs:DefaultCRS element indicates which

coordinate reference system shall be used by a WFS. See section 9.2 for more details.

OtherCRS O R See section 9.2 for more details.

NoCRS O O The wfs:NoCRS element shall be used for

feature types that have no spatial properties.

OutputFormats O O If this optional element is not specified, then all

the result formats listed for the GetFeature operation are assumed to be supported.

WGS84BoundingBox O M This knowledge aids client applications by letting

them know where they should query in order to have a high probability of finding feature data.

MetadataURL O R When MetadataURL is used, the xlink:href

element shall be used to reference any metadata. In an SDI like architecture, a link to the metadata resource available on a CSW server should be provided.

(26)

Requirement : A WFS server that claims to be conformant with the DGIWG Basic WFS profile shall provide wfs:FeatureTypeList elements from a successful GetCapabilities request according to Table 4.

7.2.2.

DescribeFeatureType

The DescribeFeatureType operation returns a schema description of feature types offered by a WFS instance. The schema descriptions define how a WFS expects feature instances to be encoded on output (in response to a GetPropertyValue, GetFeature or GetFeatureWithLock operation). These descriptions are at a minimum provided as GML 3.2 application schemas. Other versions of GML may be supported.

Element name O/M1

OGC 09-025r2

O/R/M1

DGIWG Basic profile

Description

TYPENAME O O A comma separated list of feature types to describe. If no value is specified, the complete application schema offered by the server shall be described.

OUTPUTFORMA T

O O Shall support the value "application/gml+xml; version=3.2" indicating that a GML (see ISO19136:2007) application schema shall be generated. A server may support other values to which this International Standard does not assign any meaning.

1 O = Optiona, R = Recommended, M = Mandatory

Table : DescribeFeatureType

The DGIWG WFS Basic profile does not define any further requirements for the DescribeFeatureType operation.

7.2.3.

GetFeature

The GetFeature operation returns a selection of features from a data store. The GetFeature operation returns a selection of features that satisfies the query expressions specified in the request.

7.2.4.

GetPropertyValue

The GetPropertyValue operation allows the value of a feature property or part of the value of a complex feature property to be retrieved from the data store for a set of features identified using a query expression.

7.2.5.

Stored queries

(27)

NOTE The management of stored queries, i.e. the implementation of CreateStoredQuery and the DropStoredQuery operations, is optional.

7.2.5.1. Stored queries definition

Servers can be pre-configured to offer any number of stored queries implemented in any number of ways. However the DGIWG requirements mandates stored queries follow the rules defined by Table 6.

Requirement 6: For a WFS server that claims to be conformant with the DGIWG Basic WFS profile, stored queries shall be created according to Table 6.

Element name O/M1

OGC 09-025r2

O/R/M1 DGIWG Basic profile

Description

Id M M Unique identifier that can be used to

repeatedly invoke a stored query

Title O M / C Human-readable name to a stored query.

One human readable title is mandatory. If the Title element is provided in a coalition environment an English abstract is mandatory.

NOTE: For national use the abstract can be provided in the national language.

Abstract O R/C Descriptive human-readable to a stored

query.

If the abstract element is provided in a coalition environment an English abstract is mandatory.

NOTE: For national use the abstract can be provided in the national language.

Metadata O O Inline or reference more detailed metadata

about a stored query (from OWS-Common 1.1)

Parameter2 O O Argument of a stored query

Name M M Name of each argument

Type M M Type of each argument

Title O M Human-readable name to an argument

Abstract O R Descriptive human-readable to an

argument

(28)

Element name O/M1 OGC 09-025r2

O/R/M1 DGIWG Basic profile

Description

returnFeatureTypes M M Specifies the feature type(s) that each

component query expression returns.

language M M Specifies the implementation language of a

component query expression. Servers shall

support the value

"urn:ogc:def:queryLanguage:OGC-WFS::WFSQueryExpression".

Optionally, the server may support languages such as SQL, XQuery, XPath, SPARQL, and Java.

isPrivate O O Private means that the implementation text

is visible only to the creator of the stored query.

1

O = Optional, R = Recommended, M = Mandatory, C = Conditional 2

NOTE: when Parameter exists name, type, Title are mandatory.

Table 6: StoredQuery definition

The QueryExpressionText element allows to enumerate one or more component query expressions that a stored query executes when invoked. Each QueryExpressionText element may contain a wfs:Query element, or a wfs:StoredQuery element or some other implementation specific content for specifying a component query expression in another implementation language.

7.2.5.2. ListStoredQueries

The ListStoredQueries operation lists all the stored queries available at a server. For each stored query returned, Id, Title and a list of returnFeaturetype are provided.

7.2.5.3. DescribeStoredQueries

The DescribeStoredQueries operation provides detailed information about stored queries that a server offers. This is achieved through the use of StoredQueryId within the request.

7.3. Supported filters

7.3.1.

Standard filter

Implements all the comparison and logical operators and may implement one or more additional functions. The DGIWG profile requires the support of all the comparison and logical operators and does not exclude the use of additional functions. If a WFS server provides additional functions then it must follow the requirements defined in OGC 09-026R2.

(29)

7.3.2.

Spatial filter

The OGC 09-026R2 standard defines spatial joins as implementation of the BBOX operator and at least an additional spatial operator (Equals, Disjoint, Intersects, Touches, Overlaps, Contains, Within, Crosses, DWithin, Beyond).

The DGIWG WFS Basic profile requires the support of all of these spatial operators.

Requirement 8: A WFS server that claims to be conformant with the DGIWG WFS Basic profile shall support OGC 09 026R2 Spatial Filter conformance class.

Requirement 9: In addition, a WFS server that claims to be conformant with the DGIWG WFS Basic profile shall support quals, Disjoint, Intersects, Touches, Overlaps, Contains, Within, Crosses, DWithin, Beyond.

7.3.3.

Temporal filter

The OGC 09-026R2 standard defines temporal joins as implementation of the During operator and at least an additional temporal operator among a list detailed in OGC 09-026R2 (After, Before, Begins, BegunBy, TContains, TEquals, TOverlaps, Meets, OverlappedBy, MetBy, EndedBy, AnyInteracts).

Requirement 10: A WFS server that claims to be conformant with the DGIWG WFS Basic profile shall support OGC 09 026R2 Temporal Filter conformance class.

Requirement 11: In addition, a WFS server that claims to be conformant with the DGIWG WFS Basic profile shall support at least After, Before.

7.4. Joins

A server that claims conformance with the DGIWG WFS Basic profile should implement the following OGC 09-025r2 conformance classes.

฀ OGC 09-025R2 Standard joins

฀ OGC 09-025R2 Spatial joins

฀ OGC 09-025R2 Temporal joins

The requirement for joins is strongly dependent on the underlying architecture of the WFS. If the WFS server is set up on a spatial database sophisticated joins are possible. The WFS request will be mapped to a SQL statement, which will then be processed by the database. Joining of features from same or different feature-types requires server side processing and caching.

If the WFS server operates on a file based structure the possibility of joins is much more complicated. Additionally joins are currently not widely supported by WFS implementations.

(30)

spatial or temporal operators. The response generates a valid response using the wfs:Tuple element to contain each feature tuple

Recommendation 3: A WFS server that claims to be conformant with the DGIWG WFS Basic profile should support OGC 09 2 Standard joins

Spatial joins allow executing a query that fetches data from at least two feature types (this is also true for self-joins with aliases) and includes a join predicate that uses a spatial operator. The response generates a valid response using the wfs:Tuple element to contain each feature tuple.

Recommendation 4: A WFS server that claims to be conformant with the DGIWG WFS Basic profile should support OGC 09 2 Spatial joins.

Temporal joins allow for executing a query that fetches data from at least two feature types (this is also true for self-joins with aliases) and includes a join predicate that uses a temporal operator. The response generates a valid response using the wfs:Tuple element to contain each feature tuple.

Recommendation : A WFS server that claims to be conformant with the DGIWG WFS Basic profile should support OGC 09 2 Temporal joins.

The following example shows a GetFeature request that uses a self-join with aliases to find all road segments that cross within some specified area of interest.

<GetFeature service="WFS" version="2.0.2" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd http://www.opengis.net/gml/3.2

http://schemas.opengis.net/gml/3.2.1/gml.xsd">

<Query typeNames="myns:RoadSegments myns:RoadSegments" aliases="RS1 RS2"> <fes:Filter>

<fes:And>

<fes:BBOX>

<fes:ValueReference>/RS1/geometry</fes:ValueReference> <gml:Envelope srsName="urn:ogc:def:crs:EPSG::1234">

<gml:lowerCorner>10 10</gml:lowerCorner> <gml:upperCorner>20 20</gml:upperCorner>

</gml:Envelope>

</fes:BBOX>

<fes:BBOX>

<fes:ValueReference>/RS2/geometry</fes:ValueReference> <gml:Envelope srsName="urn:ogc:def:crs:EPSG::1234">

<gml:lowerCorner>10 10</gml:lowerCorner> <gml:upperCorner>20 20</gml:upperCorner>

</gml:Envelope>

</fes:BBOX>

<fes:Crosses>

<fes:ValueReference>/RS1/geometry</fes:ValueReference> <fes:ValueReference>/RS2/geometry</fes:ValueReference>

</fes:Crosses>

</fes:And>

</fes:Filter>

</Query>

(31)

7.5. Bindings

Conformance classes HTTP GET and HTTP POST require the support of requests according to these two bindings.

Requirement 12: A WFS server that claims to be conformant with the DGIWG WFS Basic profile shall implement HTTP G T conformance class.

Requirement 13: A WFS server that claims to be conformant with the DGIWG WFS Basic profile shall implement HTTP POST conformance class.

According to the previous binding requirements, a service that claims to be compliant with the DGIWG WFS Basic profile shall implement the following bindings for WFS operations.

Operation Request Encoding

GetCapabilities XML & KVP DescribeFeatureType XML & KVP GetPropertyValue XML & KVP GetFeature XML & KVP ListStoredQueries XML & KVP DescribeStoredQueries XML & KVP

Table 7: Supported bindings for DGIWG WFS Basic profile

7.6. Response paging

Response paging is the ability of a client to scroll through a set of response features or values, N-features or values at-a-time much like one scrolls through the response from a search engine one page at a time. For example, a server that supports response paging responds with a wfs:FeatureCollection element containing the first 100 records in the result set. The next attribute is set so that the client can retrieve the next 100 features. This can continue until all features are retrieved. Response paging is likely to provide for faster response time and more consistent client functions.

However, response paging is currently not widely supported by implementations of WFS. Therefore DGIWG nations should consider the benefit of response paging versus the additional implementation cost.

(32)

8. DGIWG Locking (Transactional) WFS Profile (normative)

This section is normative and defines the DGIWG WFS Transactional profile.

8.1. Introduction

The DGIWG Transactional (Locking) WFS DGIWG Transactional (Locking) WFS Profile is based on the DGIWG Basic profile and also implements transactional and locking functionalities.

The DGIWG Locking (Transactional) WFS is based on the OGC 09-025R2 Locking WFS conformance class.

Requirement 14: A WFS server that claims to be conformant with the DGIWG Locking Transactional FS shall implement the OGC 09 2 Locking WFS conformance class.

NOTE: The Locking WFS conformance class contains all capabilities of the Basic WFS.

In the following the relevant operations and parameters for the DGIWG Transactional (Locking) WFS profile are discussed.

8.2. Supported operations

The DGIWG WFS 2.0 Locking (Transactional) profile requires the following operations: GetCapabilities, DescribeFeatureType, ListStoredQueries, DescribeStoredQueries, GetFeature, GetPropertyValue, Transaction and at least one of the GetFeatureWithLock or LockFeature operations. The sections below provide additional information on operations supported.

8.2.1.

Common operations

All operations 7.2.1 through 7.2.5.3 are applicable to DGIWG WFS Locking (Transactional) profile.

Requirement : A WFS server that claims to be conformant with the DGIWG Locking Transactional WFS profile shall satisfy following requirements : Requirement 1,

Requirement 3, Requirement 4, Requirement and Requirement 6.

Requirement 16: A WFS server that claims to be conformant with the DGIWG Locking WFS profile shall clearly identify the profile used by the WFS server by including at least the following statement : <Abstract>This server implements the DGIWG LOCKING WFS profile of WFS 2.0</Abstract>.

Recommendation 7: A WFS server that claims to be conformant with the DGIWG Locking WFS profile should provide one of the following URN/URL designations:

<ows:Profile>http://www.dgiwg.org/service/wfs/1.0/profile/locking</ows:Profile> <ows:Profile>urn:dgiwg:service:wfs:1.0:profile:locking</ows:Profile>

8.2.2.

Transaction

(33)

8.2.3.

Locking operations

Locking can be supported by two types of servers:

- Servers that support automatic data locking, i.e. the transaction operation automatically locks data in order to maintain consistency thus alleviating the client from having to use the LockFeature or GetFeatureWithLock operations to lock the features to be modified. This is advertised with AutomaticDataLocking constraint = TRUE.

- Servers that do not support automatic data locking are required to lock features prior to operating on them. Locking can be done through LockFeature or GetFeatureWithLock operations.

It is recommended to implement the DGIWG Locking (Transactional) profile with automatic data locking servers.

Requirement 17: A WFS server that claims to be conformant with the DGIWG Locking Transactional WFS profile shall implement at least the LockFeature operation.

8.3. Supported filters

A server that claims conformance with the DGIWG WFS Locking profile does not have any further requirement than for the DGIWG WFS Basic profile.

Requirement 18: A WFS server that claims to be conformant with the DGIWG Locking Transactional WFS profile shall satisfy the requirements in 7.3.

8.4. Bindings

A server that claims conformance with the DGIWG WFS Locking (Transactional) profile does not have any further requirement than for the DGIWG WFS Basic profile. It then implements HTTP GET and HTTP POST.

Requirement 19: A WFS server that claims to be conformant with the DGIWG Locking Transactional WFS profile shall satisfy the requirements in 7. .

According to the previous binding requirements, a service that claims to be compliant with the DGIWG WFS Locking profile shall implement the following bindings for WFS operations.

Operation Request Encoding

GetCapabilities XML & KVP

DescribeFeatureType XML & KVP

(34)

Transaction XML

LockFeature XML & KVP

GetFeatureWithLock1 XML & KVP

1NOTE GetFeatureWithLock operation is optional.

8.5. Response paging

A server that claims conformance with the DGIWG WFS Locking (Transactional) profile does not have any further requirement than for the DGIWG WFS Basic profile. It then implements Response Paging.

(35)

9. Common requirements (normative)

9.1. Output formats

OGC 09-025R2 requires GML 3.2 as output format for DescribeFeatureType, GetFeature (GetFeatureWIthLock) and GetPropertyValue operations. This requirement is just a minimum; this means that additional output formats may be supported by the server, e.g. previous version of GML, KML or Shape.

9.2. CRS

There is no requirement to support a specific CRS in OGC 09-025R2. But within the goal to be more interoperable (more interoperable between WFS servers and clients and more interoperable between the different types of OGC/DGIWG services), a service implementing the DGIWG WFS profiles shall provide their data at a minimum in the following CRSs

Requirement 21: A service implementing the DGIWG WFS profiles shall provide their data in

CRS:84 WGS84 geographic longitude, then latitude, expressed in decimal degrees

PSG:4326 WGS84 geographic latitude, then longitude, expressed in decimal degrees

Optionally data may be provided in additional CRSs, depending on national requirements.

If the internal storage CRS is different from EPSG:4326, then the WFS shall support a transformation between the internal storage CRS and EPSG:4326. The effects of such a transformation shall be considered when determining and declaring the guaranteed data accuracy.

Recommendation 8: The followings CRSs should be supported as well:

World Mercator projection, known as PSG:

All projections for which validity zone overlaps data published by the service

o UTM projections over WGS84 north zon , PSG:32601 to PSG:32660 o UTM projections over WGS84 south zones , PSG:32701 to PSG:32760 o UPS projection over WGS84 north zon , PSG:32661

o UPS projection over WGS84 south zon , PSG:32761 NOTE The CRSs above are mandatory in the DGWIG WMS 1.3 profile.

(36)

Before: srsName="urn:ogc:def:crs:EPSG::4326"

After: srsName="http://www.opengis.net/def/crs/epsg/0/4326"

This CR specified is related to the OGC Policy for moving from :urn" specifications to http uri (URL) specifications for coordinate reference systems.

9.3. Operation constraints

According to OGC 09-025r2 (Table 14), a server may optionally specify one or more of the constraints defined in its capabilities document.

Table 8 below defines the capabilities document requirements for DGIWG as well as provides recommendations on default values constraints.

(37)

Table 8: Operation constraints

source (OGC 09-025r2- Table 14 — Operation Constraint)

Constraint Name Possible Values and/or Value

Types

Default Value OGC

09-025R2

DGIWG

M/R/O

DGIWG values constraints

WFS Operation

Description

AutomaticDataLocking Boolean value; either "TRUE" or "FALSE"

FALSE M TRUE

(recommended)

Transaction Indicates that the transaction operation automatically locks data in order to maintain consistency thus alleviating the client from having to use the LockFeature or GetFeatureWithLock operations to lock the features to be modified.

PreservesSiblingOrder Boolean value; either "TRUE" or "FALSE".

FALSE O Transaction Specifies whether the server

preserves sibling order for properties with cardinality greater than 1. If the value is true, the server shall preserve sibling order. Otherwise sibling order is not guaranteed to be preserved.

PagingIsTransactionSafe Boolean value; either "TRUE" or "FALSE"

(38)

Constraint Name Possible Values and/or Value

of the data that a client sees while paging through the response set shall be consistent with respect to the time that the originating request was executed.

See NOTE 2, below the table.

CountDefault Integer value greater than or

equal to zero.

Specifies the default value for the count parameter.

Servers shall advertise a value for CountDefault as a means of self-defence, so that a request may not clog a server

ResolveTimeoutDefault Integer greater than zero. M 300s

(default)

Defines the maximum number of seconds a server shall wait before receiving a response while resolving resource references.

If the constraint is not specified the server shall wait indefinitely in order to resolves a remote reference.

SortLevelLimit Integer value greater than zero. O GetFeature

GetFeature WithLock

(39)

Constraint Name Possible Values and/or Value

exceeds the SortLevelLimit constraint), the service shall respond with an exception as specified in 7.5.

If the constraint is not specified then there is no limit to the number of sort properties that may be specified.

ResolveLocalScope Integer greater than zero OR the character "*".

M 1..3(min/max)

Defines the minimum and maximum number of levels, when resolving references to resources that are part of the server's local data store. The value * means to as many as all levels. If the constraint is not specified the default value of "*" shall be assumed.

ResolveRemoteScope Integer greater than zero OR the character "*"

* M

(40)

Constraint Name Possible Values and/or Value Types

Default Value OGC

09-025R2

DGIWG

M/R/O

DGIWG values constraints

WFS Operation

Description

Value If the constraint is not specified then the response cache never times out.

QueryExpressions QName; one of wfs:Query of wfs:StoredQuery

O GetFeature

GetFeature WithLock GetProperty Value LockFeature

The names of the supported query expression elements.

NOTE 1: The constraints may be specified on the indicated operation. If more than one operation is listed, the constraint may be specified on each operation individually (perhaps with different values for each operation) or at the service level indicating that the constraint applies for all listed operations.

NOTE 2: Transaction safety mechanism can require a lot of resources on the server side, because all requested data are cached at the time of the request until all these data being distributed to the client. It prevents from inconsistencies between data received by the client within different pages. A use case for supporting this mechanism is when you have a GetFeature request with paging and a transaction on the same features (or linked features) at the same time. For example if a user requests a “powerline” feature and the server executes an update

transaction on pylons at the same time, this could bring some inconsistencies (missing, pylons, wrong references, …) in the result downloaded

(41)

9.4. Remote resolve

Resolve is the retrieval of a referenced resource and its insertion into a server-generated response document. The insertion may be accomplished by either replacing the reference in-line with a copy of the resource or by relocating the reference to point to a copy of the resource that has been placed in the response document.

Local resolve allows retrieving only features/properties that are stored in the same data base via their reference.

To be consistent with the requirements stated in OGC 09-025R2, servers that are compliant with the DGIWG WFS profiles shall implement the mandatory ability to resolve local resource references.

Support for resolving remote resources is not recommended as at this time there is limited commercial software support and therefore optional.

9.5. Inheritance

When the feature content that a WFS offers is encoded using XML, a WFS shall use XPath (see W3C XML Path Language) expressions for referencing the properties and components of the value of properties of a feature. The minimum mandatory subset of XPath that servers shall support is described in (1).

A WFS server can support additional XPath operators and/or functions such as the schema-element(). The support of this function is defined in the inheritance conformance class. If the schema-element() XPath function (see (1)- XPath schema-element() ) is implemented, it can be used to trigger a sequence of queries on a specified resource type and any resource type whose object elements are in the substitution group of this specified resource type.

Example (1):

Consider the examples XPath expression:

/Person/mailAddress/USAddress/streetName

Person is the feature type name, mailAddress is a property of the type Person, USAddress is the property type of the mailAddress, streetName is a property of the Address type. Now consider the XPath expression:

/Person/mailAddress/schema-element(Address)/streetName

In this case, the WFS shall consider the property streetName of all subtypes of Address, i.e. USAddress, EUAddress, AUAddress.

(42)

Annex A – Abstract Test Suite (normative)

A.1

Conformance classes

A.1.1

DGIWG Basic WFS

a) Test Purpose: Verify that the server implements the DGIWG Basic WFS profile (Requirement 1, Requirement 7, Requirement 8, Requirement 10, Requirement 12 and Requirement 13).

b) Test Method: Verify that the server implements the followings conformance classes from OGC 09-025r2: Basic, HTTP Get, HTTP Post, Standard Filter, Spatial Filter and Temporal Filter. Verify A.2 conformance tests.

c) References: Clauses 6 and 8

d) Test Type: Capability

A.1.2

DGIWG Locking WFS

a) Test Purpose: Verify that the server implements the DGIWG Locking (Transactional) WFS profile.

b) Test Method: Verify that the server implements the followings conformance classes from OGC 09-025r2: Locking, HTTP Get, HTTP Post, Standard Filter, Spatial Filter and Temporal Filter. Verify A.2.2, A.2.3, A.2.4, A.2.5, A.3 conformance tests.

c) References: Clauses 7 and 8

d) Test Type: Capability

A.2

Basic tests for DGIWG profiles

This section describes additional basic tests for DGIWG profiles.

A.2.1

GetCapabilities for DGIWG Basic WFS

a) Test Purpose: Verify that the server implements the DGIWG additional requirements ( Requirement 2 and Requirement 5).

b) Test Method: verify that the XML response to a valid GetCapabilities request contains required elements as in Table 4.

c) References:

฀ Requirement 2: A WFS server that claims to be conformant with the DGIWG Basic WFS profile shall clearly identify the profile used by the WFS server by including at least the following statement : <Abstract>This server implements the DGIWG BASIC WFS profile of WFS 2.0</Abstract>.

฀ Requirement 5: A WFS server that claims to be conformant with the DGIWG Basic WFS profile shall provide wfs:FeatureTypeList elements from a successful GetCapabilities request according to Table 4.

(43)

A.2.2

Stored queries

a) Test Purpose: Verify that the server implements the DGIWG additional Requirement 6.

b) Test Method: verify that all stored queries available on the server (described by a successful DescribeStoredQueries request) contain elements required by Table 6.

c) References: Requirement 6.

d) Test Type: Capability

A.2.3

Filters

a) Test Purpose: Verify that the server implements the DGIWG additional requirements for filters (Requirement 9 and Requirement 11).

b) Test Method: verify that all standard, spatial and temporal operators required are supported by the server. They shall be advertised in the GetCapabilities document and shall generate a successful response when used with a GetFeature request.

c) References: Requirement 9 and Requirement 11.

d) Test Type: Capability

A.2.4

CRS

a) Test Purpose: Verify that the server implements the DGIWG additional Requirement 21.

b) Test Method: verify that CRS EPSG:4326 is advertised for all available data in the XML response (Capabilities document) to a valid GetCapabilities request. Check that data in a successful GetFeature response with EPSG:4326 are well georeferenced.

c) References: Requirement 21.

d) Test Type: Capability

A.2.5

Operations constraints

a) Test Purpose: Verify that the server implements the DGIWG additional Requirement 22.

b) Test Method: verify that a WFS server advertises and satisfies all constraints listed in Table 8.

c) References: Requirement 22

(44)

A.3

Locking tests for DGIWG profiles

A.3.1

GetCapabilities for DGIWG Locking WFS

e) Test Purpose: Verify that the server implements the DGIWG additional requirements (Requirement 16 and Requirement 5).

f) Test Method: verify that the XML response to a valid GetCapabilities request contains required elements as in Table 4.

g) References:

฀ Requirement 16: A WFS server that claims to be conformant with the DGIWG Locking WFS profile shall clearly identify the profile used by the WFS server by including at least the following statement : <Abstract>This server implements the DGIWG LOCKING WFS profile of WFS 2.0</Abstract>.

฀ Requirement 5: A WFS server that claims to be conformant with the DGIWG Basic WFS profile shall provide wfs:FeatureTypeList elements from a successful GetCapabilities request according to Table 4.

Figur

Table 1: DGIWG WFS profiles overview

Table 1.

DGIWG WFS profiles overview . View in document p.10
Table 2: DGIWG WFS profiles – Conformance Classes

Table 2.

DGIWG WFS profiles Conformance Classes . View in document p.13
Figure 1: OGC WFS Conformance Classes for general implementations

Figure 1.

OGC WFS Conformance Classes for general implementations . View in document p.16
Figure 2: WFS Conformance Classes Overview

Figure 2.

WFS Conformance Classes Overview . View in document p.18
Table 3: Links between OGC 09

Table 3.

Links between OGC 09. View in document p.21
Table 4: lements to describe feature types in a GetCapabilities document
Table 4 lements to describe feature types in a GetCapabilities document . View in document p.25
Table : DescribeFeatureType
Table DescribeFeatureType . View in document p.26
Table 6: StoredQuery definition

Table 6.

StoredQuery definition . View in document p.28
Table 7: Supported bindings for DGIWG WFS Basic profile

Table 7.

Supported bindings for DGIWG WFS Basic profile . View in document p.31
Table 8: Operation constraints

Table 8.

Operation constraints . View in document p.37
Table 10
Table 10 . View in document p.67

Referensi

Memperbarui...