Opened 17 years ago

Closed 17 years ago

#2207 closed defect (invalid)

msGeometry Property does not substitute the group gml:_geometryProperty as specified by GML 2.1.2

Reported by: schades Owned by: tomkralidis
Priority: high Milestone: 5.0 release
Component: WFS Server Version: 4.10
Severity: normal Keywords: geometry, geometry property
Cc: tomkralidis, sdlime, assefa

Description

Following the GML specification in version 2.1.2, each geometry property of a feature should inherit from gml:_geometryProperty (see OGC document 02-069, p.57 for examples). This modelling step is not realised by MapServer.

An example GML Application Schema says: <complexType name="MyType">

<complexContent>

<extension base="gml:AbstractFeatureType">

<sequence>

<element name="msGeometry" type="gml:GeometryPropertyType" minOccurs="0" maxOccurs="1"/>

It should be: <complexType name="MyType">

<complexContent>

<extension base="gml:AbstractFeatureType">

<sequence>

<element name="msGeometry" type="gml:GeometryPropertyType" substitutionGroup="gml:_geometryProperty"/>

Interoperability with the MapServer would benefit of fixing this error. Independent of the locally defined name (here: msGeometry), geometric properties of Features could be accessed through the _geometryProperty element.

Change History (5)

comment:1 by dmorissette, 17 years ago

Cc: tomkralidis added
Milestone: 5.0 release
Owner: changed from mapserverbugs to dmorissette

I am not a XML/GML guru, so just to make sure I got this right, can you please confirm that it's just a matter of adding substitutionGroup="gml:_geometryProperty" for geometry properties in the DescribeFeatureType response?

Are there any other implications on GetFeature or other requests, or some versions of GML that don't support substitutionGroups or other exceptions that we should take into account?

comment:2 by tomkralidis, 17 years ago

Cc: sdlime added

Thanks for the info and cc.

Using the following as an example:

http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?service=WFS&version=1.0.0&request=GetFeature&typename=obs

http://devgeo.cciw.ca/cgi-bin/mapserv/ecows?service=WFS&version=1.0.0&request=DescribeFeatureType&typename=obs

Here's an example from listing 6.1 of 02-069:

<complexType name="RoadType">
<complexContent>
<extension base="gml:AbstractFeatureType">
<sequence>
<element name="linearGeometry" type="gml:LineStringPropertyType"/>
<element name="classification" type="string"/>
<element name="number" type="string"/>
</sequence>
</extension>
</complexContent>
</complexType>

We use gml:GeometryPropertyType as a generic means to support those geometries supported by MapServer, without having to test each geometry case to output the XML Schema document. This was agreed upon and implemented for GML2 support.

Are there any concrete examples of what is proposed in this ticket?

comment:3 by dmorissette, 17 years ago

Cc: assefa added

comment:4 by dmorissette, 17 years ago

Owner: changed from dmorissette to tomkralidis

schades, do you have anything to add in response to our questions?

Tom, I reassign this one to you since you are more knowledgeable about the XML schemas than I am. Please make a call on what can/should done and/or update the target milestone if it's too late to fix this in 5.0.

comment:5 by tomkralidis, 17 years ago

Resolution: invalid
Status: newclosed

To verify, comment:2 outlines the examples in the GML 2.1.2 specification. As well, testing DescribeFeatureType output of other WFS server software returns the same structure:

CubeWerx http://ceoware2.ccrs.nrcan.gc.ca/cubewerx/cwwfs/cubeserv.cgi?datastore=CEOWARE2&service=WFS&version=1.0.0&request=DescribeFeatureType&typename=EOS_DATA_GATEWAYS

GeoServer http://zuluviz.sdsu.edu:8080/geoserver/wfs?service=WFS&version=1.0.0&request=DescribeFeatureType&typename=topp:states

Intergraph http://regis.intergraph.com/wfs/dcmetro/request.asp?service=WFS&version=1.0.0&request=DescribeFeatureType&typename=Counties

..that is, noone is applying gml:substitutionGroup to the geometry element, just defining as a gml type.

I think this is enough justification at this time, so I am closing this as invalid, until/unless concrete examples of what is proposed in ticket are exemplified.

Note: See TracTickets for help on using tickets.