cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Sylvain Wallez <sylvain.wal...@anyware-tech.com>
Subject Re: AW: [RT] Merging ServerPages and File Generators
Date Wed, 11 Jul 2001 17:00:48 GMT


Berin Loritsch a écrit :
> 
> Carsten Ziegeler wrote:
> >
> > How would this new component detect if is an xml document
> > or an xsp page?
> 
> On first access, it would catch the very first startElement()
> event.  If it is not:
> 
> // raw parameter may vary
> startElement("http://apache.org/xsp", "page", "xsp:page", a);
> 
> then execution happens as normal.  If it is, it loads the XSP,
> caches the information that it is an XSP page, and fires the
> rest of the page through the IncludeXMLConsumer.  All subsequent
> requests use the XSP page directly because we have that
> information cached.
> 
> FileGenerator     ProgramGenerator    IncludeXMLConsumer
> -------------     ----------------    ------------------
> |
> +--| isXSP()             |
> |  +-------------------->|
> |<-|                     |
> |
> +--|
> |  | startElement()
> |  |
> |  +--| isXSP()          |
> |  |  +----------------->|
> |  |  |                  |                    |
> |  |  +-------------------------------------->|
> |<-+--| (yes)                                 |
> |  |
> |  | (no)
> |  |
> |  +--------->startElement()
> |<-|
> |
> 
<snip/>

What if there is no <xsp:page>, i.e. you have a clean page where all XSP
markup is inserted by logicsheets ?

IMO, having separate extensions for passive content (.xml files) and
active content (.xsp files) is a good thing. Too much magic kills the
confidence users have in the tool. I speak by experience, because we are
currently redesigning some of our logicsheets so they offer a lower
level of abstraction to their users : they were afraid to use features
that did too much work automagically.

In order to have a single transformation pipeline for both active and
passive sources, a SuffixSelector could do the job :

<map:match pattern="*.html">
  <map:select type="suffix">
    <!-- base name of the file to search for -->
    <map:parameter name="base" value="{1}"/>
    <!-- ordered list of suffixes to search for -->
    <map:parameter name="suffixes" value="xsp, xml"/>
    <map:when test="xsp">
      <map:generate type="serverpages" src="{1}.xsp/>
    </map:when>
    <map:when test="xml">
      <map:generate src="{1}.xml"/>
    </map:when>
  </map:select>
  <map:transform ...

Using this, just change the file extension from xml to xsp to change it
from static to dynamic while keeping the same transformation process.

My .02 euro...
-- 
Sylvain Wallez
Anyware Technologies - http://www.anyware-tech.com

---------------------------------------------------------------------
To unsubscribe, e-mail: cocoon-dev-unsubscribe@xml.apache.org
For additional commands, email: cocoon-dev-help@xml.apache.org


Mime
View raw message