Version 5 (modified by 14 years ago) ( diff ) | ,
---|
Proposal title
Date | 2010/09/07 |
Contact(s) | Simon Pigot |
Last edited | |
Status | in progress |
Assigned to release | 2.7.x |
Resources | Available |
Overview
It should be possible to plug-in Metadata Schemas (including profiles). This means that a user/admin should be able to use a service to add a profile/schema to their existing GeoNetwork installation without having to make manual changes to config, Java code, xslts and javascript.
Proposal Type
- Type: Core Change
- App: GeoNetwork
- Module: Kernel, Data Manager
Links
- Documents:
- Email discussions:
- Other wiki discussions:
Voting History
- Not yet proposed.
Motivations
To add a schema to GeoNetwork a user currently has to:
- add the schema and ancillaries to web/geonetwork/xml/schemas directory
- add codelists and labels xml files to web/geonetwork/WEB-INF/config.xml
- add presentation xslts to web/geonetwork/xsl and import them into web/geonetwork/xsl/metadata-utils.xsl
- modify web/geonetwork/xsl/{metadata.xsl,metadata-utils.xsl} to switch on schema for full and brief mode processing
- add brief, summary and full presentation xslts to web/geonetwork/xml/csw/schemas
- add schema detection code to the autodetectSchema method in DataManager.java
- add namespaces used for elements to the tooltip javascript (web/geonetwork/scripts/editor/tooltip.js and web/geonetwork/scripts/editor/simpletooltip.js)
- schemas added to GeoNetwork exist inside the web application deployment making it more difficult to manage upgrades and new deployments of GeoNetwork
This is not only tedious but requires a fair bit of knowledge to ensure that the installation is not broken by inappropriate or incorrect changes. In some cases these changes are large enough that communities with national schemas/profiles will create their own branch of GeoNetwork to support their schema/profile. This should not be necessary.
Removing the need to make code changes and consolidating schema information will make adding a schema to GeoNetwork much easier. Having plug in schemas/profiles will also remove the need to create a code branch to support the schema/profile.
Proposal
Make the following changes:
- consolidate presentation xslts into the schema directory
- remove the need for switch on schema type in metadata.xsl and metadata-utils.xsl
- provide the ability to rewrite xslt imports using a URI resolver and oasis catalog file
- allow users to rewrite schemaLocation hints using an oasis catalog file/files
- add a SchemaManager class to encapsulate and provide schema information to other classes in GeoNetwork
- rewrite the Info service so that it no longer requires the namespace URI to be provided by the tooltip requests (will use SchemaManager to get this info instead)
- change schema autodetection code to use information from the SchemaManager (we use some code and ideas from the enhanced schema autodetect approach developed by Dominic Owen of USGIN)
- add a services that accept a zip file (or URL of a zip file) containing a schema, unpacks the schema into the schemaPlugins directory, and adds the schema to the list of schemas that GeoNetwork knows about (no config changes required)
- Move codelist and label xml file caching for schemas from Jeeves guiservices to GeoNetwork guiservices - no longer necessary to add these files to the gui section of web/geonetwork/WEB-INF/config.xml
- Add localized strings support for strings that may be used in the presentation xslts - no longer necessary to add these to the gui section of .....
- move templates and sample-data into schema directory and change gast and other code to use the SchemaManager to obtain paths to these directories
Backwards Compatibility Issues
None known?
New libraries added
xml-commons-resolver 1.2 - Apache lib to support resolving various XML entities and URIs using oasis catalogs
Risks
None known
Participants
- Simon Pigot
- Dominic Owen, USGIN - schema autodetect code
- Other members of the GeoNetwork community. In Australia: Craig Jones - IMOS/eMii, John Hockaday - OSDM, AuScope.
Attachments (4)
-
Screenshot-admin-screen-schema.png
(42.3 KB
) - added by 14 years ago.
Screenshot of admin page
-
Screenshot-adding-a-schema.png
(44.0 KB
) - added by 14 years ago.
Adding a metadata schema
-
Screenshot-profilesasinstallpacks.png
(78.5 KB
) - added by 14 years ago.
Screenshot of installer window with profiles as installer packs
-
GeoNetworkPluginSchemasNew.pdf
(423.7 KB
) - added by 14 years ago.
Brief description of how to add a plugin schema to GeoNetwork
Download all attachments as: .zip