Skip to main content
A Open Source Solution
Home Download Support Configuration Development ImagoX

The SAX process allows chaining of XSL transforms called a pipeline. In order to perform caching Imago must insert custom XSLFilters in the process. The ImagoFilter is, in essence, a "tee"; it captures each SAX event sends a copy to the cache and a copy to the next XSLFilter in the chain. When a request is made it is the ImagoFilter that checks the cache to see if the result is available. Using the request example from the caching discussion:

Requested Item Requested Processes Cacheable State
A.xml Base XML document Cachable
T1.xsl Simple transform Cachable
T2.xsl Simple transform Cachable
T3.xsl Dynamic transform Not Cachable
OutputFormatter HTML output formatter Not Cachable

The following steps would be taken.

Process
On Request
(read bottom to top)
On Receiving Result
(read top to bottom)
Cache State/Action
A.XMLReader Parses the XML file. Is result source Cachable
ImagoFilter Calls parent.parse() Tees SAX events to Cache Stores to Cache
T1.XSLFilter Calls parent.parse() Performs XSL transform Cachable
ImagoFilter Adds Imago data to filter. Calls parent.parse() Tees SAX events to Cache Stores to Cache
T2.XSLFilter Calls parent.parse() Performs XSL transform Cachable
ImagoFilter Adds Imago data to filter. Calls parent.parse() Tees SAX events to Cache Stores to Cache
T3.XSLFilter Calls parent.parse() Performs XSL transform Not Cachable
ImagoFilter Adds Imago data to filter. Calls parent.parse() Tees SAX events to Cache Does not store to cache
OutputFormatter Calls parent.parse() HTML output formatter Not Cachable
Imago Servlet Checks Cache, Builds chain Tees result to cache Does not store to cache
All trademarks and copyrights are the property of their respective owners.
Copyright © 2002-2004 by Xenei.com, All Rights Reserved
OpenSource.org
AnyBrowser.org
Xenei.org - Open Source Solutions