[QGIS-Developer] WFS and NULL values
Even Rouault
even.rouault at spatialys.com
Wed Jan 23 02:02:57 PST 2019
Recent versions of OGR make a difference between :
- a missing XML element, that will be represented in OGR as a "unset field")
(allowed if the schema has minOccurs="0")
- and a XML element set to <foo xsi:nil="true"/>, that will be represented in
OGR as a NULL field value (allowed if the schema has nillable="true")
( see https://trac.osgeo.org/gdal/wiki/rfc67_nullfieldvalues )
The same for JSon actually, between a property that doesn't appear at all, or
which is set to null.
Example, given foo.json with
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature", "properties": { "a": 1, "null_prop": null },
"geometry": null },
{ "type": "Feature", "properties": { "b": 2 }, "geometry": null }
]
}
$ ogr2ogr foo.gml foo.json -f gml
$ cat foo.gml
<?xml version="1.0" encoding="utf-8" ?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ogr.maptools.org/ foo.xsd"
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
<gml:boundedBy><gml:null>missing</gml:null></gml:boundedBy>
<gml:featureMember>
<ogr:foo fid="foo.0">
<ogr:a>1</ogr:a>
<ogr:null_prop xsi:nil="true"/>
</ogr:foo>
</gml:featureMember>
<gml:featureMember>
<ogr:foo fid="foo.1">
<ogr:b>2</ogr:b>
</ogr:foo>
</gml:featureMember>
</ogr:FeatureCollection>
$ ogr2ogr out.json foo.gml
$ ogrinfo foo.gml -al
INFO: Open of `foo.gml'
using driver `GML' successful.
Layer name: foo
Geometry: Unknown (any)
Feature Count: 2
Layer SRS WKT:
(unknown)
Geometry Column = geometryProperty
fid: String (0.0) NOT NULL
a: Integer (16.0)
null_prop: String (0.0)
b: Integer (16.0)
OGRFeature(foo):0
fid (String) = foo.0
a (Integer) = 1
null_prop (String) = (null)
OGRFeature(foo):1
fid (String) = foo.1
b (Integer) = 2
And yes this is not WFS or GML specific, but XML + XML-Schema generic.
--
Spatialys - Geospatial professional services
http://www.spatialys.com
More information about the QGIS-Developer
mailing list