1

GeoServer 2.3 不会为具有空值的列返回空 XML 节点。例如,这是从 WFS 对 CQL 查询的响应中提取的片段:

<gml:featureMember>
<ems:airports fid="airports.3822">
<ems:IKO>KINL</ems:IKO>
<ems:na3>US24271</ems:na3>
<ems:Name>FALLS INTL</ems:Name>
<ems:Type>Civilian/Public</ems:Type>
<ems:the_geom>...</ems:the_geom>
<ems:Mod_time>2011-09-02T20:17:30.831</ems:Mod_time>
</ems:airports>
</gml:featureMember>
<gml:featureMember>
<ems:airports fid="airports.10117">
<ems:IKO>CKV3</ems:IKO>
<ems:Name>DRYDEN BEST WESTERN (Heli)</ems:Name>
<ems:the_geom>
<gml:Point srsName="http://www.opengis.net/gml/srs/epsg.xml#4326">
<gml:coordinates xmlns:gml="http://www.opengis.net/gml" decimal="." cs="," ts=" ">-92.833333,49.783333</gml:coordinates>
</gml:Point>
</ems:the_geom>
<ems:Mod_time>2011-09-08T16:56:07.334</ems:Mod_time>
<ems:Country>Canada</ems:Country>
<ems:Operator>Best Western Motor Inn</ems:Operator>
<ems:Contact>807-223-3201</ems:Contact>
</ems:airports>
</gml:featureMember>

第二个 featureMember 元素缺少 na3 和 Type 节点,因为它们在数据库中为空。

有没有办法将 GeoServer 配置为在遇到具有空值的列时返回空节点?

4

2 回答 2

1

显然这是设计使然,因为它是 WFS 规范。见相关讨论:

http://osgeo-org.1560.x6.nabble.com/Why-the-WFS-does-not-return-the-NULL-value-field-td3802398.html

在该线程中建议改为解析包含所有字段的“DescribeFeatureType”响应。

现在,如果只有一个结合了这种行为的 OpenLayers 控件/插件,我会很高兴,但我认为我将被迫从头开始开发它。

于 2014-08-26T13:38:01.133 回答
0

describefeaturetype 只返回列名。尽管如此,如果一列包含 null,它不会出现在响应中,即使对于某些行它确实有一个值。

于 2015-01-02T13:09:03.200 回答