I have posted a very similar message in the GeoServer forums as this is as much a GeoServer problem as ArcGIS. I'm hoping someone here has experience connecting ArcMap to a GeoServer WFS.
I am connecting ArcGIS (v10, SP3) to a GeoServer (2.1.3) WFS through its Data Interoperability Extension. The extension is unlicensed, but a license isn't required for basic WFS data retrieval.
The DIE has two ways of retrieving data - simple GML features and WFS. Simple GML will always cache the data (24 hours?) but WFS gives the option of always getting live data from GeoServer - this is what I need.
I set up the connection and added a GeoServer WFS resource to the ArcMap table of contents, but when I open the attribute table every single attribute is listed as null. I did some digging and found that ArcMap is making a GetFeature request for every visible row in the attribute table and is using the Filter structure in request parameters. Filters look like this:
<ogc:Filter><ogc:PropertyIsEqualTo><ogc:PropertyName>local:ID</ogc:PropertyName><ogc:Literal>149</ogc:Literal></ogc:PropertyIsEqualTo></ogc:Filter>
GeoServer errors with a parsing exception - it doesn't understand the ogc: prefix because "The prefix "ogc" for element "ogc:Filter" is not bound". If I send the same request but without the ogc: prefix the response is as expected.
So to see live GeoServer WFS data in ArcMap I need to either
1) configure ArcMap to not use the ogc: prefix on Filter, or
2) configure GeoServer to not complain when the ogc: prefix is provided.
Given that ArcMap and GeoServer are both quite common I was hoping this issue had come up before, but so far I've found nothing.
Any suggestions are very welcome.