Skip to content

capitalization in apiso common queryables #1235

Description

@maudetes

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.) ?

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions