We did not find existing issue or documentation on this topic, sorry if this is the case.
We have encountered an issue when querying a pycsw regarding capitalization on apiso attribute filters.
The following minimal query returns an error Invalid Constraint: Invalid Filter request: Invalid PropertyName: apiso:type. 'apiso:type'
curl -X POST https://demo.pycsw.org/gisdata/csw -d '
<csw:GetRecords xmlns:apiso="http://www.opengis.net/cat/csw/apiso/1.0"
xmlns:csw="http://www.opengis.net/cat/csw/2.0.2"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:gmd="http://www.isotc211.org/2005/gmd"
service="CSW" version="2.0.2" outputFormat="application/xml"
resultType="results" startPosition="1" maxRecords="10"
outputSchema="http://www.isotc211.org/2005/gmd">
<csw:Query typeNames="gmd:MD_Metadata">
<csw:ElementSetName>full</csw:ElementSetName>
<csw:Constraint version="1.1.0">
<ogc:Filter>
<ogc:PropertyIsEqualTo>
<ogc:PropertyName>apiso:type</ogc:PropertyName>
<ogc:Literal>dataset</ogc:Literal>
</ogc:PropertyIsEqualTo>
</ogc:Filter>
</csw:Constraint>
</csw:Query>
</csw:GetRecords>'
Switching to apiso:Type with capitalization is functional.
However, from our understanding, the spec would lead to use apiso:type with lowercase.
From 07-045 specification, section 7.2.4
If the typeNames attribute of a query equals to ‘gmd:MD_Metadata’ (‘gmd’
representing the ‘http://www.isotc211.org/2005/gmd’ namespace) any queryable
that is part of the associated filter must be represented by a qualified name with a
prefix (e.g. ‘apiso’), representing the ‘http://www.opengis.net/cat/csw/apiso/1.0’
namespace. This is true for both application profile queryables as well as for the
OGC common core queryables (which are mapped to the gmd metadata schema
then). Case sensitivity is as follows: For the common queryables use the same
case as defined in the base specification (e.g. ‘apiso:title’), for the additional
queryables use the cases as defined in this profile (tables 9-14), e.g.
‘apiso:RevisionDate’.
In pycsw mapping, the supported queryables are in capital case, even for common queryables, ie apiso:Type.
If we understood the spec correctly, would it be possible to add support for lower case common queryables (apiso:type, apiso:identifier, etc.) ?
We did not find existing issue or documentation on this topic, sorry if this is the case.
We have encountered an issue when querying a pycsw regarding capitalization on apiso attribute filters.
The following minimal query returns an error
Invalid Constraint: Invalid Filter request: Invalid PropertyName: apiso:type. 'apiso:type'Switching to
apiso:Typewith capitalization is functional.However, from our understanding, the spec would lead to use
apiso:typewith lowercase.From 07-045 specification, section 7.2.4
In pycsw mapping, the supported queryables are in capital case, even for common queryables, ie
apiso:Type.If we understood the spec correctly, would it be possible to add support for lower case common queryables (
apiso:type,apiso:identifier, etc.) ?