180 likes | 302 Views
DSpace UI. Alexey Maslov. DSpace in general. A digital library tool useful for storage, maintenance, and retrieval of digital documents Two types of interaction: Command line for administrative use Automatically generated user interface. The original DSpace Interface.
E N D
DSpace UI Alexey Maslov
DSpace in general • A digital library tool useful for storage, maintenance, and retrieval of digital documents • Two types of interaction: • Command line for administrative use • Automatically generated user interface
The original DSpace Interface • http://txspace.tamu.edu/dev/ • Automatically created upon installation and deployment • Fully functional from the onset • Dynamically generated through an interaction between Java Servlets and Java Server Pages
HTTP Request Tomcat identifies the Java servlet Java Servlets Processes form data Determines flow control Invokes the JSP Manager JSP Manager Calls and applies the JSP pages JSP Pages Create the HTML HTTP Response Transmits HTML to the user The original DSpace Interface (cont.) HTTP Request Java Servlets DSpace JSP Manager JSP Pages HTTP Response
Editing The JSPs • The JSPs are stored in the DSpace source directory under the /jsp subdirectory • They can be edited by • Copying the .jsp file to be edited into the /jsp/local subdirectory • Modifying it as needed • The changed JSP will override the one that came with the installation
Issues with the JSP DSpace Interface • JSP pages create the HTML directly, in most cases complete with the styling information • There is one JSP page for each DSpace page, so changes to all of DSpace require modification of most JSP’s • http://txspace.tamu.edu/
The XML based DSpace Interface • http://txspace.tamu.edu/dev-xml2/ • DSpace XML UI is generated through an interaction between Java Servlets, XML Objects, XSLT styling language and Cascading Style Sheets • Java Servlets and XML Objects create an XML document describing a DSpace page • XSLT transforms the XML into HTML • The HTML is rendered using styling rules provided by CSS
XML Based DSpace Interface (cont.) • The end result of JSP based UI is the HTML that will be sent to the browser • The end result of XML based UI is an XML document that contains all the information necessary to build a DSpace page, but none of the visual formatting • The themes are then used to convert the XML into HTML and apply styling rules to it
HTTP Request Tomcat identifies the Java servlet Java Servlets Processes form data Determines flow control Instantiates the XML Object XML Manager Creates the XML Document Calls the XML Object XML Object Inserts content into the document Theme Manager Determines the theme Applies the theme HTTP Response Outputs the resulting XML document XML Based DSpace Interface (cont.) HTTP Request Java Servlets DSpace themes.xml XML Manager XML Objects Theme Manager HTTP Response
Modifying the DSpace XML UI • You do not edit the Java side of DSpace • Modifications are instead performed on the XSLT and CSS. HTML Document XML Document Final Output HTTP Response XSLT Templates CSS Rules
The XML • XML, or eXtensible Markup Language, is a data storage format • The XML Document generated by the Java Servlets doesn’t do anything on its own • Since it serves as a base for a DSpace page, it is also the same between all themes • http://txspace.tamu.edu/dev-xml2/?theme=intro&XML • http://txspace.tamu.edu/dev-xml2/?theme=sapphire&XML • http://txspace.tamu.edu/dev-xml2/?theme=ruby&XML • http://txspace.tamu.edu/dev-xml2/?theme=space&XML
DSpace XML UI Schema Legend Gray Language element 1 Must be one 0,1 May be one λ May be one group * None or many page 1 1 1 meta body options λ 1 1 title search browse * * * section tabular form 1 trail item * λ λ λ label label label item * 1 actions 0,1 0,1 image pagination pagination * 1 userAgent item * * list emptyText division * * 1 browserVersion 0,1 administrative λ item columns * * label 1 browserType item * para column * * fieldGroup * 1 contextPath 0,1 context λ label λ label 1 user item * * row * 0,1 * field 1 lang id language cell * 0,1 0,1 1 lastName email params item * λ λ 0,1 0,1 firstName logoutUrl label help * * * λ * emphasize image link option value
The XSL • XSL, or the eXtensible Stylesheet Language, is used to transform the XML data into HTML • It does so through template matching, which applies rules to and generates HTML for matching XML tags • A base library exists to convert XML into HTML that be used or extended by each theme http://txspace.tamu.edu/dev-xml2/themes/
The CSS • The output of XSL transformations is HTML that can be output and rendered in a browser • It still, however, lacks any visual styling http://txspace.tamu.edu/dev-xml2/?theme=space • Cascading Style Sheet rules can be applied to the HTML to render it graphically http://txspace.tamu.edu/dev-xml2/?theme=intro http://txspace.tamu.edu/dev-xml2/themes/intro/main.css
Overall • Most of the visual changes are done in CSS • XSLT templates can also be overridden to make structural modifications • Finally, the theme manager can be configured to apply certain themes to specific DSpace components HTML Document XML Document Final Output HTTP Response XSLT Templates CSS Rules
To recap… • All DSpace pages are boiled down to single XML format • Themes, which are combinations of a CSS style sheet and XSLT templates, convert the XML to styled HTML • Different themes can be applied to different subset of DSpace • http://di.tamu.edu/dspace-xmlui/
References • XML Tutorial http://www.w3schools.com/xml/default.asp • HTML Tutorial http://www.w3schools.com/html/default.asp • CSS Tutorial http://www.w3schools.com/css/default.asp • XSLT Tutorial http://www.w3schools.com/xsl/default.asp