Bug #280
closedprovide support for multiple UI styles in metacat
0%
Description
Metacat currently allows a mapping between one document type to a particular
stylesheet for HTML transformation. We want to be able to use the same metacat
instance for presenting multiple user interface perspecitves, like a KNB
interface, an NRS interface, and a OBFS interface.
Proposed solution: remove all references to XSL stylesheets from the
xml_catalog table, and instead provide this information in a series of metacat
configuration files, which I will call a "style set". Each style set will have a
name, and will specify the mapping between a particular document type and the
stylesheet that should be used to transform that type into HTML. It will also
provide a default style in case there isn't an exact match. The main
metacat.properties file will have a property that indicates which user interface
style is the default. In addition, the semantics of the qformat parameter to
metacat will be extended, so that the name of a style set can be provided in
qformat, and that name will then determine the set of style sheets to use.
This change will allow a single metacat instance to display mutiple user interfaces.
The style set configuration file might be something like this:
<style-set name="knb">
<default-style>file://styles/generic-style.xsl</default-style>
<stylesheet src="file://styles/dataset.xsl">
<doctype>-//NCEAS//eml-dataset-2.0//EN</doctype>
<doctype>-//NCEAS//eml-dataset//EN</doctype>
<doctype>-//NCEAS//eml-resource//EN</doctype>
</stylesheet>
<stylesheet src="file://styles/access.xsl">
<doctype>-//NCEAS//eml-access-2.0//EN</doctype>
</stylesheet>
</style-set>
and would be found in a file named "knb.xml" in xmltodb/lib.