[CITE-Forum] Is an empty "returnFeatureTypes" attribute valid in stored query creation?

Richard Martell rmartell at arbitechnics.com
Tue Mar 20 10:53:33 EDT 2018


It does look like a bug according to the last sentence in the clause you 
cited. Perhaps an error trying to set the attribute value from the 
FeatureTypeList in the capabilities document or the child queries. I 
didn't see any hints about an empty string being interpreted as "any 
supported feature type" (although gml:AbstractFeature could play this 
role I suppose).

However, the attribute seems redundant here since the constituent 
queries already specify the return types. What if inconsistencies occur? 
Perhaps as a fallback the server could fill in an empty value on receipt 
(i.e. concatenate Query/@typeNames).


On 2018-03-19 07:33, Andrea Aime via CITE-Forum wrote:
> Hi,
> I'm looking at a failing test that issues the following request:
> <CreateStoredQuery xmlns="http://www.opengis.net/wfs/2.0"
> service="WFS" version="2.0.0">
>   <StoredQueryDefinition xmlns:xsd="http://www.w3.org/2001/XMLSchema"
> id="urn:example:wfs2-query:GetFeatureByName">
>       <Title>GetFeatureByName</Title>
>       <Abstract>Returns feature representations by name. The name
> value must occur in a gml:name property.</Abstract>
>       <Parameter name="name" type="xsd:string">
>          <Abstract>Name of feature instance (required)</Abstract>
>       </Parameter>
>       <QueryExpressionText xmlns:fes="http://www.opengis.net/fes/2.0"
>                            xmlns:gml="http://www.opengis.net/gml/3.2"
>                            isPrivate="false"
> language="urn:ogc:def:queryLanguage:OGC-WFS::WFSQueryExpression"
>                            RETURNFEATURETYPES="">
>          <Query xmlns:ns42="http://cite.opengeospatial.org/gmlsf"
>                 typeNames="ns42:EntitéGénérique">
>             <fes:Filter>
>                <fes:PropertyIsLike escapeChar="\" singleChar="?"
> wildCard="*">
>                   <fes:ValueReference>gml:name</fes:ValueReference>
>                   <fes:Literal>*${name}*</fes:Literal>
>                </fes:PropertyIsLike>
>             </fes:Filter>
>          </Query>
>       </QueryExpressionText>
>   </StoredQueryDefinition>
> </CreateStoredQuery>
> GeoServer complains about returnFeatureTypes, in particular:
> "StoredQuery references typeName sf:EntitéGénérique not listed in
> returnFeatureTypes"
> Now, the attribute is mandatory and specifications example has a non
> empty value (also available here:
> http://schemas.opengis.net/wfs/2.0/examples/StoredQuery/CreateStoredQueryExample.xml
> )
> The spec does not address directly the empty value case:
>> Declaring the returned feature types
>> The returnFeatureTypes attribute on the wfs:QueryExpressionText
>> element shall be used to specify the
>> feature type(s) that each component query expression returns.
>> If more than one return feature type is listed, this indicates that
>> the corresponding component query
>> expression returns a join tuple composed of the listed feature
>> types.
>> The returned feature type names shall be from the list of feature
>> type names that a server advertises in its
>> capabilities document (see 8.3.3).
> So... can anyone clarify this situation?

More information about the CITE-Forum mailing list