GeoServer kennis vraag

Even een GeoServer kennis vraag. We gebruiken in mijn geval GeoServer 1.7.5. We willen een WFS request doen. We willen de gegevens uit ‘MyLayer’ waar het veld X 15 is.

Is de volgende request goed?

<GetFeature service="WFS" version="1.1.0" outputFormat="GML2" maxFeatures="5">
   <Query typeName="test:MyLayer">
      <Filter>
         <PropertyEqualsTo>
            <PropertyName>X</PropertyName>
            <Literal>15</Literal>
         </PropertyEqualsTo>
      </Filter>
   </Query>
</GetFeature>

En het antwoord is: Nee. Het request zou moeten zijn:

<GetFeature service="WFS" version="1.1.0" outputFormat="GML2" maxFeatures="5">
   <Query typeName="test:MyLayer">
      <Filter>
         <PropertyIsEqualTo>
            <PropertyName>X</PropertyName>
            <Literal>15</Literal>
         </PropertyIsEqualTo>
      </Filter>
   </Query>
</GetFeature>

En wat is nou precies het verschil? De naam van de filter expressie. De expressie: PropertyEqualsTo moet zijn: PropertyIsEqualTo.

Het gebruik van het element PropertyEqualsTo zorgt er voor dat men een reeks gegevens terug krijgt van de server die nergens op slaan; de filter wordt namelijk compleet genegeerd, zonder foutmelding en of waarschuwing.
Overigens zou je het wel kunnen zien in de logging van GeoServer als deze geconfigureerd is voor software ontwikkeling in plaats van de standaard productie instellingen.