Opened 13 years ago

Closed 13 years ago

Last modified 12 years ago

#491 closed enhancement (fixed)

Custom ElementSet in CSW 2.0.2

Reported by: heikki Owned by: heikki
Priority: minor Milestone: v2.6.4
Component: General Version: v2.6.3
Keywords: csw, getrecords, elementset, elementsetname Cc:

Description

Some users wish to define a customized ElementSet to define what elements to return in response to GetRecords queries.

According to the CSW 2.0.2 specification, named ElementSets are one of 'brief', 'summary' or 'full'. Any other value causes the GetRecords request to be invalid (OGC 07-006).

Of those 3 allowed values, 'full' is the one where we seem to have room to define a customized element set, as it is specified in the CSW/ISO application profile to return *maximally* all elements: It may at a maximum contain all elements defined by [ISO/TS 19139]. (OGC 07-045)

The proposed implementation for customized elementsets is :

  • a page accessible to administrator users from the CSW configuration page, where you can save (add, delete) any number of XPATH expressions. The XPATH expressions are saved in a new table in the database;
  • GetRecords requests with ElementSetName=full are handled thus: if the table with XPATHs is empty, the current, default 'full' response is returned; but if that table is not empty, the request is processed as if, instead of ElementSetName=full it contained ElementName parameters for each of the XPATHs in the table. So the response should contain exactly the elements defined in the custom element set.
  • there is no validation of the user-defined custom element set. It is entirely up to the user to ensure the resulting document is valid, if that is intended. If the user enters incorrect XPATH structures this might break handling of GetRecords requests with ElementSetName=full.

This implementation preserves validity of CSW messages and conformance to the CSW 2.0.2 specification (OGC 07-006) and the CSW/ISO profile (OGC 07-045), it seems to me.

In future we might extend this by introducing custom names for custom element sets, but using those in messages would invalidate them, as stated above.

Change History (3)

comment:1 by heikki, 13 years ago

Status: newassigned

comment:2 by heikki, 13 years ago

Resolution: fixed
Status: assignedclosed

Committed in 2.6.x rev 7564

comment:3 by heikki, 12 years ago

Committed in trunk with rev 8651

Note: See TracTickets for help on using tickets.