FDO RFC 51 - Update WFS provider to support 1.1.0
This page contains an change request (RFC) for the FDO Open Source project. More FDO RFCs can be found on the RFCs page.
|RFC Template Version||(1.0)|
|Submission Date||July. 28, 2010|
|Last Modified||Leo Dai - 07/28/16:30:00|
|Author||Leo Dai, Leaf Li|
|Assigned PSC guide(s)||Orest Halustchak, Greg Boone|
|Voting History||August 16, 2010|
|+1||Greg, Orest, Jackie, Jason|
The purpose of this RFC is to enhance FDO WFS provider to support the WFS latest 1.1.0 version. It outlines changes that are required in the FDO.
The OGC upgrades the WFS specification from 1.0.0 to 1.1.0, and also changes some definitions in it. Currently, WFS FDO provider is hard-coded to 1.0.0 version related in its code. So we need to enhance it to support both versions.
WFS spec changes a lot while upgrading from 1.0.0 to 1.1.0. For example: The service schema’s structure changed, and it now uses GML 3 instead of GML 2. Accordingly, we need to enhance the provider in the following areas in order to make sure it can consume both versions:
- Support WFS 1.1.0 capability schema
The WFS spec defines new capability schema while upgrading from 1.0.0 to 1.1.0, so we must enhance the parsing process in WFS FDO provider also to support both versions.
The following diagram shows capability schema in 1.0.0.
And this is the new capability schema in 1.1.0:
From the XML schema diagram above, we can see the 1.1.0 version used the ows:CapabilitiesBaseType instead of wfs:ServiceType exists in 1.0.0. So the OWS related elements parsing process will be put into OWS component. WFS 1.1.0 spec has also defined some new operations, like LockFeature, !GetGMLObject... We are not going to support these commands yet in this updates. In this enhancement, we will focus on the elements and operations which already existed in 1.0.0 version but changed in 1.1.0 version.
- Handle GML 3
WFS1.1.0 uses GML 3 instead of GML 2 as default format for GetFeature and DescribeFeatureType request. Currently FDO can only handle GML 2 correctly and have some problem with GML 3, we need to enhance it to support both versions well. This includes two aspects:
GML 3 to FDO
- GML 3 schema to FDO schema
- GML 3 feature to FDO feature (FDO only has a reader API, used by the WFS provider, which exposes GML features as FDO features. This API should be updated to handle GML 3)
FDO to GML 3
- FDO schema to GML 3 schema
- FDO feature to GML 3 feature
Note: Those transform functions are implemented in the FDO component.
- Handle different version request
Currently, the WFS FDO provider uses version 1.0.0 (hard-coded) while sending the request to server. So first, we need to accept version information while open connection, and also set the correct version in the request parameters. Similar with WMS FDO provider, the design solution is to store the version information in the Feature server connecting property. And parse it in the provider, a default version will be provided if user doesn’t set.
The change just enhances the WFS provider to support 1.1.0 version, it will not cause any side-effects.
Add specific unit tests to WFS FDO provider to test the WFS 1.1.0 server consumption. Also Existing unit tests related with GML in FDO will be expanded to test the proposed enhancements defined above.
Autodesk to provide resources / funding