This package contains the interfaces for a full-featured Metadata Catalog.

There are three fundamental concepts to understand the interfaces in this package.

The functionality is spread in three different interfaces.

MetadataBase

Two sets of operations are offered.

MetadataCatalog

The necessary operations for managing entries in the catalog. Includes functionality for creating and deleting items.

MetadataSchema

The necessary operations for handling schemas inside the catalog.

An implementation of a Metadata Catalog can choose not to have all the functionality defined in the three interfaces. A concrete example is a File Catalog that also wants to offer file metadata. Functionality for managing entries/items in the catalog is already provided as part of the File Catalog, so the MetadataCatalog interface described above is not needed. The MetadataBase interface would be enough to have POSIX xattrs functionality, and it could be extended with the MetadataSchema interface if desired.