= Proposal title = || '''Date''' || 2010/09/07 || || '''Contact(s)''' || Simon Pigot || || '''Last edited''' || || || '''Status''' || in progress || || '''Assigned to release''' || 2.7.x || || '''Resources''' || Available || == Overview == Metadata Schemas (including profiles) should be pluggable in GeoNetwork. 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 changes to 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 === Backwards Compatibility Issues === === New libraries added === Explain which and why new libraries are required for that proposal ... == Risks == == Participants == * List of participants and role (if necessary) in current GIP