| 1 | = Proposal title = |
| 2 | |
| 3 | || '''Date''' || 2010/09/07 || |
| 4 | || '''Contact(s)''' || Simon Pigot || |
| 5 | || '''Last edited''' || || |
| 6 | || '''Status''' || in progress || |
| 7 | || '''Assigned to release''' || 2.7.x || |
| 8 | || '''Resources''' || Available || |
| 9 | |
| 10 | == Overview == |
| 11 | |
| 12 | 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. |
| 13 | |
| 14 | === Proposal Type === |
| 15 | * '''Type''': Core Change |
| 16 | * '''App''': !GeoNetwork |
| 17 | * '''Module''': Kernel, Data Manager |
| 18 | |
| 19 | === Links === |
| 20 | * '''Documents''': |
| 21 | * '''Email discussions''': |
| 22 | * '''Other wiki discussions''': |
| 23 | |
| 24 | === Voting History === |
| 25 | * Not yet proposed. |
| 26 | |
| 27 | ---- |
| 28 | |
| 29 | == Motivations == |
| 30 | To add a schema to GeoNetwork a user currently has to: |
| 31 | |
| 32 | * add the schema and ancillaries to web/geonetwork/xml/schemas directory |
| 33 | * add codelists and labels xml files to web/geonetwork/WEB-INF/config.xml |
| 34 | * add presentation xslts to web/geonetwork/xsl and import them into web/geonetwork/xsl/metadata-utils.xsl |
| 35 | * modify web/geonetwork/xsl/{metadata.xsl,metadata-utils.xsl} to switch on schema for full and brief mode processing |
| 36 | * add brief, summary and full presentation xslts to web/geonetwork/xml/csw/schemas |
| 37 | * add schema detection code to the autodetectSchema method in DataManager.java |
| 38 | * add namespaces used for elements to the tooltip javascript (web/geonetwork/scripts/editor/tooltip.js and web/geonetwork/scripts/editor/simpletooltip.js) |
| 39 | * schemas added to GeoNetwork exist inside the web application deployment making it more difficult to manage upgrades and new deployments of GeoNetwork |
| 40 | |
| 41 | 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. |
| 42 | |
| 43 | 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. |
| 44 | |
| 45 | == Proposal == |
| 46 | |
| 47 | Make the following changes: |
| 48 | |
| 49 | * consolidate presentation xslts into the schema directory |
| 50 | * remove the need for switch on schema type in metadata.xsl and metadata-utils.xsl |
| 51 | * provide the ability to rewrite xslt imports using a URI resolver and oasis catalog file |
| 52 | * allow users to rewrite |
| 53 | === Backwards Compatibility Issues === |
| 54 | |
| 55 | === New libraries added === |
| 56 | Explain which and why new libraries are required for that proposal ... |
| 57 | |
| 58 | == Risks == |
| 59 | |
| 60 | == Participants == |
| 61 | * List of participants and role (if necessary) in current GIP |
| 62 | |