Okay, I take back what I said about the OGC Filter specifications not
mentioning multiple values *gasp*.
It is all in the "matchAction" parameter:
7.7.3.3
matchAction parameter
The matchAction attribute can be used to specify how the comparison
predicate shall be evaluated for a
collection of values (e.g. in XML, properties having maxOccurs > 1) and
not including some additional context
to identify a specific value from the collection to be tested. Possible
values for the attribute are: All, Any or
One. A value of All means that all values in the collection shall
satisfy the predicate. A value of Any means
that any of the value in the collection can satisfy the predicate.
Finally, a value of One means that only one of
the values in the collection shall satisfy the predicate.
If the value of the matchAction attribute is One, additional context
(e.g. XPath index) can be included to
indicate which value in the collection should satisfy the predicate.
EXAMPLE
The following example illustrates the use of the matchAction attribute.
Consider the following XML
fragment, which is an instance of a GML (see ISO 19136) feature:
<ex:Building gml:id="b123">
<gml:name>175 Fifth Ave.</gml:name>
<gml:name>Flatiron</gml:name>
<gml:name>Acme Building</gml:name>
<!-- ... -->
</ex:Building>
and consider the following filter expression:
<fes:Filter>
<fes:PropertyIsEqualTo matchAction="...">
<fes:ValueReference>gml:name</fes:ValueReference>
<fes:Literal>Flatiron</fes:Literal>
</fes:PropertyIsEqualTo>
</fes:Filter>
If the value of the matchAction attribute is set to Any, this predicate
will evaluate to true since there is at least
one gml:name value that satisfied the predicate. If the value of the
matchAction attribute is All, this predicate
will evaluate to false since not all gml:name values are Flatiron.
Finally, if the matchAction attribute is set to
One then the expression will evaluate to true since only one gml:name
value is Flatiron.
If the value of the matchAction attribute is Any or All, the
ValueReference XPath expression shall not include
an index predicate. If the matchAction attribute is One an XPath index
predicate may be specified and the
predicate shall only evaluate to true if not only one value matches the
predicate but the specific value
indicates by the index matches the value.
Also, in the XSD schema for Filters it says that the default value of
"matchAction" is "any".
It is therefore correct of me to say that "any" (meaning aggregated
'or') is the default response.
As I understand there is currently no support for the setting
"matchAction". At least supporting "any" is better than not supporting
multiple values at all. Do you think we should actually extend the
filter system to support matchAction? Or will be supporting "any" be
sufficient?
Regards
Niels
On 11/05/11 17:26, Jody Garnett wrote:
Follow up to the email list.
On IRC we went over the
(http://docs.codehaus.org/display/GEOTDOC/02+GML+Example) to explain
what I was talking about with WFS handling multiple values.
We also short listed a bunch of standards to review (since whatever we
do needs to match these at the end of the day or we will produce *bad*
Filter / CQL / Style / Query statements).
- WFS
- SLD
- Filter
- CAT
- CQL (http://www.loc.gov/standards/sru/specs/cql.html)
In particular WFS 2.0 has join predicates that exactly cover the
comparison of multiple values vs multiple values so I am hopeful we
can see the end of this topic.
--
Jody Garnett
On Wednesday, 11 May 2011 at 5:23 PM, Niels wrote:
I'm not following you here...
On 11/05/11 15:21, Jody Garnett wrote:
I was thinking; the normal use of Filter (in a WFS request) is
actually to process an xpath of all the "members" of a feature
collection right? If you think of the filter being applied to a raw
GML document this is the effect we are getting at the end of the day.
In this case they are avoiding the problems we are discussing (ie
how to merge to a single true/false) by giving us a true/false for
each "member".
--
Jody Garnett
On Wednesday, 11 May 2011 at 4:17 PM, Niels wrote:
Does the GML, FIlter or WFS 2.0 specification have any guidance
for us in these matters?
To reply to that question, I looked in to the Filter and WFS 2.0
specifications, but couldn't find anything.
--
*Niels Charlier*
Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914
Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151
--
*Niels Charlier*
Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914
Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151
--
*Niels Charlier*
Software Engineer
CSIRO Earth Science and Resource Engineering
Phone: +61 8 6436 8914
Australian Resources Research Centre
26 Dick Perry Avenue, Kensington WA 6151
------------------------------------------------------------------------------
Achieve unprecedented app performance and reliability
What every C/C++ and Fortran developer should know.
Learn how Intel has extended the reach of its next-generation tools
to help boost performance applications - inlcuding clusters.
http://p.sf.net/sfu/intel-dev2devmay
_______________________________________________
Geotools-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/geotools-devel