[OpenLayers-Users] OpenLayers.Format.WFS question/issue
Stephen Woodbridge
woodbri at swoodbridge.com
Mon Mar 10 15:39:51 EDT 2008
Bart and Christopher,
Thank you for your replies. I think it is probably working as expected.
I need to find and read the spec and hopefully it will make some sense
or at least some more sense.
I am currently trying to write a server in PHP that will work beside
mapserver. So mapserver serves the features and the PHP handles the OL
WFS-T responses.
Other than the fact that I am probably taking a naive approach to the
parsing that will probably break if namespace prefixes change, it is
working pretty well, except PHP4 has horrid XML parsing tools and I
decided to rewrite the PHP code to be more compatible between PHP4 and
PHP5 and deal with the bugfix that in the delete transaction namespace I
reported.
Thank you both, your responses are educational and helpful.
Regards,
-Steve W
Christopher Schmidt wrote:
> On Mon, Mar 10, 2008 at 11:38:46AM -0500, Stephen Woodbridge wrote:
>> Hi all,
>>
>> I admit up front that this inquiry might partly be my ignorance on the
>> subject, but when OpenLayers.Format.WFS serializes a polygon insert
>> request it looks like:
>>
>> <wfs:Insert>
>> <feature:Geofence xmlns:feature="http://mapserver.gis.umn.edu/mapserver">
>> <feature:the_geom>
>> <gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml">
>> <gml:polygonMember>
>> <gml:Polygon>
>> <gml:outerBoundaryIs>
>> <gml:LinearRing>
>> <gml:coordinates decimal="." cs="," ts="
>> ">-105.662109375,40.1591796875 -107.068359375,38.2255859375
>> -103.640625,37.7861328125 -105.662109375,40.1591796875</gml:coordinates>
>> </gml:LinearRing>
>> </gml:outerBoundaryIs>
>> </gml:Polygon>
>> </gml:polygonMember>
>> </gml:MultiPolygon>
>> </feature:the_geom>
>> </feature:Geofence>
>> </wfs:Insert>
>>
>> This appears to be getting done by
>> OpenLayers.Format.WFS.createFeatureXML(feature) and the namespace is
>> hardcoded to "feature:..."
>>
>> My question is why this namespace and not the wfs namespace and XML
>> something more like:
>
> Can you provide some evidence that this is how it's supposed to be done?
> Inserts and Modifys are different in WFS-T: that's just a case of
> OpenLayerse following the spec, as far as I know?
>
> Note that this isn't a case of the difference being the namespace: the
> difference here is that in Insert, you pass a full, GML-serialized
> feature. In Modify, you pass a specific property that you are
> modifying.
>
> Essentially, the WFS-T support is largely cobbled together from examples
> on the web. If you can provide examples of a server which I can post the
> following data to, and see a successful transaction, I'm interested.
>
>> <wfs:Insert typeName="Geofence">
>> <wfs:Property>
>> <wfs:Name>the_geom</wfs:Name>
>> <wfs:Value>
>> <gml:MultiPolygon xmlns:gml="http://www.opengis.net/gml">
>> <gml:polygonMember>
>> <gml:Polygon>
>> <gml:outerBoundaryIs>
>> <gml:LinearRing>
>> <gml:coordinates decimal="." cs="," ts="
>> ">-105.662109375,40.1591796875 -107.068359375,38.2255859375
>> -103.640625,37.7861328125 -105.662109375,40.1591796875</gml:coordinates>
>> </gml:LinearRing>
>> </gml:outerBoundaryIs>
>> </gml:Polygon>
>> </gml:polygonMember>
>> </gml:MultiPolygon>
>> </wfs:Value>
>> </wfs:Property>
>> <wfs:Property>
>> <wfs:Name>name</wfs:Name>
>> <wfs:Value>noname</wfs:Value>
>> </wfs:Property>
>> </wfs:Insert>
>>
>> This would more closely follow the <wfs:Modify> format and namespace.
>
> WFS-T support was built on examples, primarily from GeoServer, with
> support from Cameron Shorter and others who wrote the original vector
> code. The XSDs shipped with the spec are totally useless to me, even
> when they're actually accurate, so I don't have a good backup of why it
> was done this way, other than "I thought it should be done this way.
>
>> So why should anyone care? mostly the later is much easier to parse as
>> the tags are predetermined by the wfs namespace and not consturcted from
>> the arbitrary attributes used in the layer definition.
>
> 'arbitrary attributes'? The Layer Definition ('Schema') For a WFS layer
> is key to all work with WFS, no?
>
>> I am interested in the "why of this" so I better understand how all this
>> works. Reading the code, it looks like this change can be done by
>> overloading createFeatureXML with code that generates the later XML
>> above, so I could make the change myself outside of the OL code base for
>> testing and review.
>>
>> If I did that would it be an appropriate change to svn?
>> A change to svn, would probably break any existing services that depend
>> on the existing format for <wfs:Insert>.
>
> What does the spec say? This matters more than 'existing services', as
> far as I'm concerned, but the existing insert statements work with
> GeoServer, Manifold, and at least some others, and GeoServer is what I was
> working with when I wrote it.
>
> Regards,
More information about the Users
mailing list