I've been doing some test queries using complex features and the GeoSciML v3.0 
(www.geosciml.org) application schemas which are based on GML 3.2.1.

I couldn't test with 2.3-beta1 because of 
http://jira.codehaus.org/browse/GEOS-5496 so I've used a later nightly build; 
namely 
http://gridlock.opengeo.org/geoserver/2.3.x/geoserver-2.3.x-2013-02-14-war.zip 
and 
http://gridlock.opengeo.org/geoserver/2.3.x/ext-2013-02-14/geoserver-2.3-SNAPSHOT-app-schema-plugin.zip
 running in Apache Tomcat 6.

I'm using a PostGIS backend with the data loaded from the scripts at 
https://www.seegrid.csiro.au/subversion/GeoSciML/cgi-reference-dataset/tags/2013-02-20/data/database/cgi-reference-postgis.sql
 and the GeoServer data directory at 
https://www.seegrid.csiro.au/subversion/GeoSciML/cgi-reference-dataset/tags/2013-02-20/services/geoserver/postgis/data/
 .

I have tested a number of queries which give errors as follows:

Example 1
---------
A simple GetFeature request with no filtering criteria:

http://ogcdev.bgs.ac.uk:8082/geoserver-2.3.x-2013-02-14/ows?service=WFS&version=2.0.0&request=GetFeature&typename=gsmlgu:GeologicUnit&count=100&;

or WFS 1.1.0 equivalent:

http://ogcdev.bgs.ac.uk:8082/geoserver-2.3.x-2013-02-14/ows?service=WFS&version=1.1.0&request=GetFeature&typename=gsmlgu:GeologicUnit&maxfeatures=100&outputFormat=gml32&;

both give the same results with all 35 gsmlgu:GeologicUnit's in the database 
but also two extra spurious empty gsmlgu:GeologicUnit elements:

<wfs:member 
xlink:href="#gsmlgu.geologicunit.ref-16777549126931119"><gsmlgu:GeologicUnit/></wfs:member>

and

<wfs:member 
xlink:href="#gsmlgu.geologicunit.ref-16777549126932875"><gsmlgu:GeologicUnit/></wfs:member>


Example 2
---------
A filter query  on a simple property works correctly,

E.g. POSTing the query below to 
http://ogcdev.bgs.ac.uk:8082/geoserver-2.3.x-2013-02-14/ows retrieves the 
correct single gsmlgu:GeologicUnit feature:

---
<?xml version="1.0" encoding="UTF-8"?>
<GetFeature version="2.0.0" service="WFS" xmlns="http://www.opengis.net/wfs/2.0";
    xmlns:fes="http://www.opengis.net/fes/2.0"; 
xmlns:xlink="http://www.w3.org/1999/xlink";
    xmlns:gml="http://www.opengis.net/gml/3.2"; 
xmlns:swe="http://www.opengis.net/swe/2.0";
    xmlns:gsml="http://xmlns.geosciml.org/GeoSciML-Core/3.0";
    xmlns:gsmlgu="http://xmlns.geosciml.org/GeologicUnit/3.0";
    xmlns:gsmlga="http://xmlns.geosciml.org/GeologicAge/3.0";
    count="100">
    <Query typeNames="gsmlgu:GeologicUnit">
        <fes:Filter>
            <fes:PropertyIsEqualTo>
                <fes:ValueReference>gml:name</fes:ValueReference>
                <fes:Literal>mullock heaps (Qhm)</fes:Literal>
            </fes:PropertyIsEqualTo>
        </fes:Filter>
    </Query>
</GetFeature>
---

but a query on a nested complex property such as below incorrectly retrieves 
all 35 features in the database rather than the 2 matching ones (and also 
includes the two extra spurious empty gsmlgu:GeologicUnit elements as with the 
unfiltered query in Example 1).

---
<?xml version="1.0" encoding="UTF-8"?>
<GetFeature version="2.0.0" service="WFS" xmlns="http://www.opengis.net/wfs/2.0";
    xmlns:fes="http://www.opengis.net/fes/2.0"; 
xmlns:xlink="http://www.w3.org/1999/xlink";
    xmlns:gml="http://www.opengis.net/gml/3.2"; 
xmlns:swe="http://www.opengis.net/swe/2.0";
    xmlns:gsml="http://xmlns.geosciml.org/GeoSciML-Core/3.0";
    xmlns:gsmlgu="http://xmlns.geosciml.org/GeologicUnit/3.0";
    xmlns:gsmlga="http://xmlns.geosciml.org/GeologicAge/3.0";
    count="100">
    <Query typeNames="gsmlgu:GeologicUnit">
        <fes:Filter>
            <fes:PropertyIsEqualTo>
                
<fes:ValueReference>gsml:relatedFeature/gsmlga:GeologicHistory/gsml:relatedFeature/gsmlga:GeologicEvent/gsmlga:eventEnvironment/swe:Category/swe:label</fes:ValueReference>
                <fes:Literal>terrestrial setting</fes:Literal>
            </fes:PropertyIsEqualTo>
        </fes:Filter>
    </Query>
</GetFeature>
---

Should I file bug reports about these results?

Marcus Sen

This message (and any attachments) is for the recipient only. NERC is subject 
to the Freedom of Information Act 2000 and the contents of this email and any 
reply you make may be disclosed by NERC unless it is exempt from release under 
the Act. Any material supplied to NERC may be stored in an electronic records 
management system.
------------------------------------------------------------------------------
Everyone hates slow websites. So do we.
Make your web apps faster with AppDynamics
Download AppDynamics Lite for free today:
http://p.sf.net/sfu/appdyn_d2d_feb
_______________________________________________
Geoserver-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geoserver-users

Reply via email to