Skip to content

As a data user, I want to search and filter on XML attribute values from PDS4 labels #789

Description

@jordanpadams

Summary

As a data user searching the PDS Registry API, I want to be able to query and filter on XML attribute values from PDS4 labels (e.g., xsi:nil="true", nilReason, unit, and other PDS4-defined attributes), so that search results can make use of all metadata present in a label — not just element text content.

Motivation

PDS4 labels encode metadata in both element text content and XML attributes. Harvest currently drops all XML attributes during indexing, so no attribute-based metadata is searchable. Examples of metadata lost today:

  1. xsi:nil="true" / nilReason — no way to find products with nil field values or filter by nil reason.
  2. unit on measurement elements — no way to search or filter by unit of measure.
  3. Any other PDS4 discipline or mission dictionary attributes on elements.

This gap affects data discoverability and correctness for search clients and downstream pipelines. It is directly relevant to the PDS4 CCB discussion in NASA-PDS/PDS4-CCB#95, but applies broadly beyond nil alone.

Proposed Solution

Once Harvest indexes XML attributes as companion fields (see companion issue NASA-PDS/registry-loader#92), the registry-api should:

  1. Expose XML attribute fields in the API response payload so clients can see them alongside element values.
  2. Support querying and filtering on attribute fields using the existing query syntax.
  3. Ensure nil state is clearly represented so clients can distinguish "nil by declaration" from "not present" or "empty".

The exact API query syntax and response representation should be determined during design.

Additional Context

🦄 Related requirements

NASA-PDS/registry-loader#92


For Internal Dev Team To Complete

⚙️ Engineering Details

To be completed by engineering team

🎉 Integration & Test

To be completed by engineering team

Metadata

Metadata

Assignees

Labels

Projects

Status
ToDo

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions