Imago Design Notes 

Imago was designed with the following goals:

Goal:
Implementation:
To implement a servlet that will execute XSL transformations.
The Imago class extends javax.servlet.http.HttpServlet
To utilize the XSLT extension element capabilities to extend a base functionality of XSLT.
Imago is built using the Xalan XSLT processor. Any extension matching the signature for Xalan extensions may be executed as part of an Imago-based XSL transform.
To provide access to the servlet environment from within an XSLT extension element.
Each time a transformer is constructed 2 parameters are set. The org.xenei.imago.framework.Defaults.IMAGO_DATA contains the ImagoData object. The Imago data object contains all the servlet environment objects and many of the Imago environment objects. The org.xenei.imago.framework.Defaults.IMAGO_FILTER contains the current XMLFilter.
To provide caching of transforms where possible.
Imago is implemented using XML transform pipelining. At each step in the chain Imago checks the cache to see if the requested object is already available. If not the transform is made and the result cached if applicable. This is transparent to the user and content creator.
To provide a mechanism to determine the specific XSLT transforms to be executed at runtime, based on the type of client making the request.
Imago uses a client map, see ClientMap.xml, to determine what client type is making the request to the system and a process map, see ProcessMap.xml, to determine how to handle the request. Both of these files may be edited while the system is running. The changes will take effect shortly after editing is complete. The actual time between editing and when the changes take affect is controlled by the timedwatchable.timecheck entry in the imago.properties file, and when the next timed watchable check occurs.


 Other Design Notes 


All trademarks and copyrights are the property of their respective owners.
Copyright © 2002-2003 by Xenei.com, All Rights Reserved

Go to home page.