pycsw | Home | Demos | Docs | Issue Tracker | FAQ | Download |
pycsw allows for the implementation of profiles to the core standard. Profiles allow specification of additional metadata format types (i.e. ISO 19139:2007, NASA DIF, INSPIRE, etc.) to the repository, which can be queried and presented to the client. pycsw supports a plugin architecture which allows for runtime loading of Python code.
All profiles must be placed in the server/plugins/profiles directory.
pycsw/
server/
plugins/
__init__.py # empty
profiles/ # directory to store profiles
__init__.py # empty
profile.py # defines abstract profile object (properties and methods) and functions to load plugins
apiso/ # profile directory
__init__.py # empty
apiso.py # profile code
... # supporting files, etc.
All profile code must be instantiated as a subclass of profile.Profile. Below is an example to add a Foo profile:
from server.plugins.profiles import profile
class FooProfile(profile.Profile):
profile.Profile.__init__(self,
name='foo',
version='1.0.3',
title='My Foo Profile',
url='http://example.org/fooprofile/docs',
namespace='http://example.org/foons',
typename='foo:RootElement',
outputschema=http://example.org/foons',
prefixes=['foo'],
model=model,
core_namespaces=namespaces,
added_namespaces={'foo': 'http://example.org/foons'}
repository=REPOSITORY['foo:RootElement'])
Your profile plugin class (FooProfile) must implement all methods as per profile.Profile. Profile methods must always return lxml.etree.Element types, or None.
All profiles are disabled by default. To specify profiles at runtime, set the server.profiles value in the Configuration to the name of the package (in the server/plugins/profiles directory). To enable multiple profiles, specify as a comma separated value (see Configuration).
The ISO Metadata Application Profile (APISO) is a profile of CSW 2.0.2 which enables discovery of geospatial metadata following ISO 19139:2007 and ISO 19119:2005/PDAM 1.
No extra configuration is required.
- typename: gmd:MD_Metadata
- outputschema: http://www.isotc211.org/2005/gmd
To enable APISO support, add apiso to server.profiles as specified in Configuration.
APISO includes an extension for enabling INSPIRE Discovery Services 3.0 support. To enable the INSPIRE extension to APISO, create a [metadata:inspire] section in the main configuration with enabled set to true.
[metadata:inspire]
The Directory Interchange Format (DIF) is a metadata format supported by the NASA Global Change Master Directory.
No additional configuration is required.
- typename: dif:DIF
- outputschema: http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/
To enable DIF support, add dif to server.profiles.
The FGDC CSDGM Application Profile is a profile of CSW 2.0.2 which enables discovery of geospatial metadata following FGDC:CSDGM 1998 metadata.
No additional extra configuration is required.
- typename: fgdc:metadata
- outputschema: http://www.opengis.net/cat/csw/csdgm
To enable fgdc support, add fgdc to server.profiles.
The CSW-ebRIM Registry Service is a profile of CSW 2.0.2 which enables discovery of geospatial metadata following the ebXML information model.
No extra configuration is required.
- typename: rim:RegistryObject
- outputschema: urn:oasis:names:tc:ebxml-regrep:xsd:rim:3.0
To enable ebRIM support, add ebrim to server.profiles as specified in Configuration.
The Atom Syndication Format is used in RSS feeds as well as OpenSearch.
No additional configuration is required.
- typename: atom:entry
- outputschema: http://www.w3.org/2005/Atom
To enable Atom support, add atom to server.profiles.