BAG GetFeature request met wildcard en haakjes in de waarde voor status levert onterecht geen resultaat

Er gaat iets niet goed bij het zoeken via GetFeature met een wildcard in combinatie met een ( en ) in de waarde:
b.v. ik zoek op een waarde in status die “(niet ingemeten)” moet bevatten.
Dat levert geen resultaat.
Als ik zoek op een waarde in status die “niet ingemeten” moet bevatten dan levert dat wel resultaat.

URL: https://service.pdok.nl/lv/bag/wfs/v2_0

<GetFeature xmlns="http://www.opengis.net/wfs/2.0" service="WFS" version="2.0.0" outputFormat="application/json" startIndex="0" count="1000"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs/2.0 http://schemas.opengis.net/wfs/2.0/wfs.xsd">
    <Query typeNames="bag:pand" srsName="EPSG:28992">
        <Filter xmlns="http://www.opengis.net/fes/2.0">
            <And>
                <PropertyIsLike escape="&quot; singleChar="_" wildCard="%" matchCase="true">
                    <ValueReference>status</ValueReference>
                    <Literal>%(niet ingemeten)%</Literal>
                </PropertyIsLike>
                <Intersects>
                    <ValueReference>geom</ValueReference>
                    <Polygon xmlns="http://www.opengis.net/gml/3.2" srsName="EPSG:28992">
                        <exterior>
                            <LinearRing srsName="EPSG:28992">
                                <posList srsDimension="2">143594.8315 465577.94999999995 143594.8315 465775.35 143813.0215 465775.35 143813.0215 465577.94999999995 143594.8315 465577.94999999995</posList>
                            </LinearRing>
                        </exterior>
                    </Polygon>
                </Intersects>
            </And>
        </Filter>
    </Query>
</GetFeature>

Hoi Ron,

Tip: Als je xml code in je bericht zet, dan werkt dat het beste als je dat markeert als “Vooraf opgemaakte tekst” (zie screenshot hieronder). Anders worden de tags geinterpreteerd als html, en verdwijnen ze. Nu blijft dus alleen de tekst van je filter over in je bericht.

aangepast

2 likes

Hoi @rli ,

Ik heb de oorzaak nog niet gevonden, maar wil even laten weten dat we er naar aan het kijken zijn.

Oke, mogelijk dat er iets mis gaat met het samenstellen van de where-clause door de haakjes?

Hoi @rli,

De haakjes lijken inderdaad door mapserver verkeerd verwerkt te worden. (De haakjes worden in de sql query escaped, hierdoor gaat de filter mis.)
Dit lijkt ons een bug, dus ik heb hiervoor een issue aangemaakt bij het mapserver project:

In het specifieke geval van de bag panden kan je natuurlijk ook zonder haakjes filteren met %niet ingemeten_. Bag panden hebben maar een beperkt aantal (10) statussen, zie:
Praktijkhandleiding BAG: Welke statussen kent de BAG en wat betekenen deze statussen? > Pand

Maargoed, dat neemt niet weg dat het wel mogelijk zou moeten zijn.
Bedankt voor het melden!

Het is geen usecase die in de praktijk zal voorkomen maar een testgeval met wildcard waar we toevallig tegenaan liepen. Misschien zijn er in de toekomst wel usecases waarin met wildcard en haakjes wordt gezocht. Het zou dan fijn zijn dat het wordt opgelost in Mapserver. Mapserver lijkt voor dat soort dingen minder ontwikkeld dan Geoserver, zie ook het nested query probleem (andere melding van mij).