Transcript XML Framer
DSpace XML UI Project
Texas A&M University
Digital Initiatives, Research and Technology
Scott Phillips, Cody Green, Alexey Maslov, Adam Mikeal, Brian Surratt, John Leggett
Agenda
What & Why
Design goals
Architectural Overview
Schema Overview
Themes
Future Work
Questions
What is the “XML UI”?
The XML UI is a new front-end for DSpace that:
Enables communities and collections to customize
their interface
Improves support for internationalization
Removes stylistic logic from the core DSpace
business logic
Why?
Why is this good?
Branding
University level
Community level
Institutional credibility
Community ownership & buy in
Increase adoption of DSpace?
Design Goals
Enable each community & collection to maintain a
distinct look and feel
Separate business logic from stylistic controls
Increase ease of adaptability
Languages
Other formats
Provide an alternative user interface
With no API or DB changes
Architectural Overview
1.
HTTP Request
HTTP
Request
2.
Java Servlets
Java Servlets
3.
themes.xml
4.
XML Framers
5.
6.
Determines the theme
Applies the theme
HTTP Response
HTTP
Response
Inserts content into the document
Theme Manager
Theme
Manager
Creates the XML Document
Calls the XML Object
XML Framer
XML
Manager
Processes form data
Determines flow control
Instantiates the XML Object
XML Manager
DSpace
Tomcat identifies the Java servlet
Serializes the document into a
stream for transmission.
HTTP Request
Tomcat receives the HTTP Request
Directs request to a Java Servlet
No difference from the current “webui” (except a different
implementation of the servlet is used)
Future plug-in architecture?
Java Servlets
Processes the form data
Determines flow control
Instantiates the XML Framer
Servlet & XML Object ( JSP ) coupling made more
explicit
XML Manager
Creates the XML Document
Interfaces with:
XML Framework
XML Framer
Theme Manager
Roughly equivalent to the “webui”s JSPManager
XML Framework
Document Object Model (DOM) based
Objects vs streams or events
Easier manipulation
XML Framework
Used by the XML Manager & XML Framers
Manipulate the DOM
Specific to the DSpace XML UI Schema
(described later in the presentation)
XML Framer
Inserts the desired content into the
document
Uses the XML Framework
Equivalent in purpose to JSP pages.
“Pure java”
No <% some java code here %> tags!
XML Framer (Example)
XML Framer (Example)
Theme Manager
Determines the theme based on:
1.
2.
3.
4.
user supplied theme parameter
url path
regex expression
collection or community
Themes are configured by an XML file, themes.xml
There is no equivalent of the theme manager in the
existing implementation
Theme Manager (themes.xml)
HTTP Response
Finally the XML Manager:
Serialize the DOM into a stream
Transmit to the user
Schema Overview
Examining an existing DSpace page we found
three main parts:
Meta information about the page
Available navigational options
The main body
Schema Overview
Three major parts:
page
meta
options
body
meta
body
options
section
tabular
form
Display types:
sections
tables
forms
Schema & Languages
Problems
Themes generating content
Partial page translations
Multiple languages?
Display formats other than plain XHTML
Applets, JavaScript
Caching
Simplicity
Keep theme writing easy & simple
Schema & Languages
Two language models:
Simple Model
May mostly ignore
language issues.
Complex Model
More control given to
the theme.
Themes
Transform the DSpace XML into a display format
Themes are implemented in XSL
May filter content
For XHTML interfaces:
“css_base”
A set of templates to transform the DSpace XML UI
schema into XHTML
Themes are able to use what they like and override
what they don’t.
Future Work
Plug-in architecture
User selected themes
Shared library of common themes
Cocoon Integration?
Summary
XML UI is a new front end for DSpace:
Architectural Overview
XML Framers, XML Manager, Theme Manager
XML UI Schema
Customize look & feel for communities & collections
Increase community adoption of DSpace
Three parts
Three display types
Two language models
Themes
Base libraries for easy development
Questions?