Opened 14 years ago
Last modified 14 years ago
#3414 reopened defect
WFS client: add ogc: namspace to filter generated by Mapserver
Reported by: | assefa | Owned by: | assefa |
---|---|---|---|
Priority: | normal | Milestone: | 5.6.4 release |
Component: | WFS Client | Version: | unspecified |
Severity: | normal | Keywords: | |
Cc: | miloslav.kmet@… |
Description
Filter generated by Mapserver does not include the ogc namespace.
reprorted through mapserver list (miloslav.kmet@…)
Hello.
I need to find a solution how to filter ArcGIS wfs service in mapserver WFS client. I read this document: http://mapserver.org/ogc/filter_encoding.html and there is no topic about xml ns prefixes in filter.
It seems, that esri's wfs services need xml namespace ogc: in every filter element.
I tried id with get from browser and this works as expected: <ogc:Filter><ogc:PropertyIsEqualTo><ogc:PropertyName>eia_eia:IDAKCIA</ogc:PropertyName><ogc:Literal>1833</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter> ?service=wfs&version=1.1.0&request=getFeature&typename=eia_eia:EIA_Locality&filter=%3Cogc:Filter%3E%3Cogc:PropertyIsEqualTo%3E%3Cogc:PropertyName%3Eeia_eia:IDAKCIA%3C/ogc:PropertyName%3E%3Cogc:Literal%3E1833%3C/ogc:Literal%3E%3C/ogc:PropertyIsEqualTo%3E%3C/ogc:Filter%3E (tinyurlized: http://tinyurl.com/yanqfry)
But this won't filter anything and gives me all features: <Filter><PropertyIsEqualTo><PropertyName>eia_eia:IDAKCIA</PropertyName><Literal>1833</Literal></PropertyIsEqualTo></Filter> ?service=wfs&version=1.1.0&request=getFeature&typename=eia_eia:EIA_Locality&filter=%3CFilter%3E%3CPropertyIsEqualTo%3E%3CPropertyName%3Eeia_eia:IDAKCIA%3C/PropertyName%3E%3CLiteral%3E1833%3C/Literal%3E%3C/PropertyIsEqualTo%3E%3C/Filter%3E (tinyurlized: http://tinyurl.com/y9t3rld)
I doubt, that I can get some response from Esri on this topic, because of this thread: http://forums.esri.com/Thread.asp?c=158&f=2276&t=273488 where folks
So the question is - how to add the ogc: namespace prefix into wfs_filter?
This is how I have configured the WFS in my mapfile:
CONNECTIONTYPE WFS CONNECTION
"http://globus.sazp.sk/arcgis/services/eia/eia/mapserver/wfsserver"
METADATA
"wfs_version" "1.0.0" "wfs_service" "WFS" "wfs_request_method" "GET" "wfs_srs" "EPSG:4326" "wfs_typename" "eia_eia:EIA_locality" "wfs_filter"
"<PropertyIsEqualTo><PropertyName>eia_eia:IDAKCIA</PropertyName><Literal>1833</Literal></PropertyIsEqualTo>"
"wfs_maxfeatures" "1000"
END
Thank you.
Change History (6)
comment:1 by , 14 years ago
Resolution: | → fixed |
---|---|
Status: | new → closed |
comment:3 by , 14 years ago
Resolution: | fixed |
---|---|
Status: | closed → reopened |
comment:4 by , 14 years ago
add also the name spaces.
Miloslav, would something like this should work? Please take the time to update this bug to confirm or not the fixes since I do not have Arc to test it.
<?xml version="1.0" ?><wfs:GetFeature service="WFS" version="1.0.0" maxFeatures="10000" outputFormat="GML2"
xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.opengis.net/wfs http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd">
<wfs:Query typeName="nps:MCHU"> <ogc:Filter> <ogc:BBOX> <ogc:PropertyName>Geometry</ogc:PropertyName> <gml:Box> <gml:coordinates>-613875.000000,-1351366.235392 -143625.000000,-1116633.764608</gml:coordinates> </gml:Box> </ogc:BBOX> </ogc:Filter></wfs:Query> </wfs:GetFeature>
comment:5 by , 14 years ago
Hi, sorry for a later response, caused by our ESRI supplier. The solution you proposed above won't work for me.
However after some bothering, I got two working XML.
POST /arcgis/services/nipi/protected_sites/MapServer/WFSServer?SERVICE=WFS HTTP/1.1 User-Agent: MapServer/5.6.3 libcurl/7.19.7 Host: globus.sazp.sk Accept: */* Content-Type: application/xml Connection: close Content-Length: 506 <wfs:GetFeature xmlns:wfs="http://www.opengis.net/wfs" xmlns:ogc="http://www.opengis.net/ogc" xmlns:gml="http://www.opengis.net/gml" xmlns:cgf="http://www.opengis.net/cite/geometry" outputFormat="GML2" version="1.0.0" maxFeatures="2" service="WFS"> <wfs:Query typeName="esri:mchu"> <gml:boundedBy> <gml:Box srsName='EPSG:102067'> <gml:coordinates>-590983.8238170041,-1332953.64061642 -165436.87993268299,-1139523.52818027</gml:coordinates> </gml:Box> </gml:boundedBy> </wfs:Query> </wfs:GetFeature>
POST /arcgis/services/nipi/protected_sites/MapServer/WFSServer?SERVICE=WFS HTTP/1.1 User-Agent: MapServer/5.6.3 libcurl/7.19.7 Host: globus.sazp.sk Accept: */* Content-Type: application/xml Connection: close Content-Length: 749 <?xml version="1.0" encoding="utf-8"?> <wfs:GetFeature service="WFS" version="1.0.0" maxFeatures="10000" outputFormat="GML2" xmlns:wfs="http://www.opengis.net/wfs" xmlns:gml="http://www.opengis.net/gml" xmlns:ogc="http://www.opengis.net/ogc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:nps="http://globus.sazp.sk/arcgis/services/nipi/protected_sites/MapServer/WFSServer" xsi:schemaLocation="http://www.opengis.net/wfshttp://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd"> <wfs:Query typeName="nps:MCHU"> <ogc:PropertyName>Geometry</ogc:PropertyName> <gml:Box> <gml:coordinates>-613875.000000,-1351366.235392 -143625.000000,-1116633.764608</gml:coordinates> </gml:Box> </wfs:Query> </wfs:GetFeature>
The difference is in the missing <ogc:Filter|BBOX>
in <wfs:Query
.
Don't hesitate to play with our WFS service
Thank you!
comment:6 by , 14 years ago
I am not sure, but I do not believe that the 2 xmls are valid. What schema is used to validate the xml? Mapserver generate wfs 1.0.0 type request and the xml I described earlier in this bug validates against the http://schemas.opengis.net/wfs/1.0.0/WFS-basic.xsd
committed in trunk r10040 in 5.6.x branch r10041