Me he encontrado con este problema: La petición WFS POST que OpenLayers realiza no contiene los siguientes namespaces:
xmlns:wfs="hxxp://www.opengis.net/wfs"
xmlns:ogc="hxxp://www.opengis.net/ogc"
xmlns:gml="hxxp://www.opengis.net/gml"
xmlns:xsi="hxxp://www.w3.org/2001/XMLSchema-instance"
Lo extraño es que estos espacios de nombres se mencionan en la prueba valor esperado en OpenLayers \tests\Format\WFST\v1_1_0.html
... <!--
<wfs:GetFeature service="WFS" version="1.1.0" resultType="hits"
xmlns:topp="hxxp://www.openplans.org/topp"
xmlns:wfs="hxxp://www.opengis.net/wfs"
xmlns:ogc="hxxp://www.opengis.net/ogc"
xmlns:xsi="hxxp://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="hxxp://www.opengis.net/wfs
hxxp://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Query xmlns:wfs="hxxp://www.opengis.net/wfs"
typeName="topp:states" xmlns:topp="hxxp://www.openplans.org/topp">
<wfs:PropertyName>STATE_NAME</wfs:PropertyName>
<wfs:PropertyName>STATE_FIPS</wfs:PropertyName>
<wfs:PropertyName>STATE_ABBR</wfs:PropertyName>
</wfs:Query>
</wfs:GetFeature>
--> ...
He analizado esta prueba con FireBug y obtengo lo siguiente:
valor esperado (exp) es:
<wfs:GetFeature service="WFS" version="1.1.0" resultType="hits"
xmlns:topp="hxxp://www.openplans.org/topp"
xmlns:wfs="hxxp://www.opengis.net/wfs"
xmlns:ogc="hxxp://www.opengis.net/ogc"
xmlns:xsi="hxxp://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="hxxp://www.opengis.net/wfs
hxxp://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Query xmlns:wfs="hxxp://www.opengis.net/wfs"
typeName="topp:states" xmlns:topp="hxxp://www.openplans.org/topp">
<wfs:PropertyName>STATE_NAME</wfs:PropertyName>
<wfs:PropertyName>STATE_FIPS</wfs:PropertyName>
<wfs:PropertyName>STATE_ABBR</wfs:PropertyName>
</wfs:Query>
</wfs:GetFeature>
Y valor real (got) es:
<wfs:GetFeature service="WFS" version="1.1.0" resultType="hits"
xsi:schemaLocation="hxxp://www.opengis.net/wfs
hxxp://schemas.opengis.net/wfs/1.1.0/wfs.xsd">
<wfs:Query xmlns:wfs="hxxp://www.opengis.net/wfs"
typeName="topp:states" xmlns:topp="hxxp://www.openplans.org/topp">
<wfs:PropertyName>STATE_NAME</wfs:PropertyName>
<wfs:PropertyName>STATE_FIPS</wfs:PropertyName>
<wfs:PropertyName>STATE_ABBR</wfs:PropertyName>
</wfs:Query>
</wfs:GetFeature>
Como se puede ver no hay topp, wfs, ogc, xsi namespaces pero la prueba es resultado como PASSED.
El hecho de que se omitieran los espacios de nombres mencionados causó el siguiente problema con el GeoServer:
<ows:ExceptionReport version="1.0.0"
xsi:schemaLocation="hxxp://www.opengis.net/ows
hxxp://services.local:80/geoserver/schemas/ows/1.0.0/owsExceptionReport.xsd">
<ows:Exception exceptionCode="NoApplicableCode">
<ows:ExceptionText>
org.xmlpull.v1.XmlPullParserException: could not determine
namespace bound to element prefix wfs (position: START_DOCUMENT seen
...www.opengis.net/wfs
hxxp://schemas.opengis.net/wfs/1.1.0/wfs.xsd">... @1:139)
could not determine namespace bound to element prefix wfs
(position: START_DOCUMENT seen ...www.opengis.net/wfs
hxxp://schemas.opengis.net/wfs/1.1.0/wfs.xsd">... @1:139)
</ows:ExceptionText>
</ows:Exception>
</ows:ExceptionReport>
He informado de este problema en la lista de correo de usuarios de GeoServer, pero aún no he recibido respuesta.
Por favor, si alguien tiene alguna idea sobre este tema que me ayude. He buscado por todo internet sin suerte. Tal vez me he perdido algo?