cocoon-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Vadim Gritsenko" <vadim.gritse...@verizon.net>
Subject RE: sitemap design patterns - hybrid selector/matcher?
Date Mon, 10 Jun 2002 14:15:40 GMT
> From: Christian Haul [mailto:haul@dvs1.informatik.tu-darmstadt.de]
> 
> On 09.Jun.2002 -- 07:53 PM, Jonathan Layes wrote:
> > Hi all,
> >
> > I have a recurring theme in a few of my sitemaps and, although I
> > have solved the problem, I'm not particularly happy with the
solution.
> > Here's the problem in pseudo-sitemapese:
> >
> >   <map:match pattern="*.html">
> >     <map:act desc="an action to be applied to all xhtml">
> >
> >       <map:match pattern="a*.html" desc="source A-prefixed xhtml">
> >          <map:generate/>
> >          <map:transform/>
> >       </map:match>
> >
> >       <map:match pattern="b*.html" desc="source B-prefixed xhtml">
> >          <map:generate/>
> >          <map:transform/>
> >       </map:match>
> >
> >       <map:match pattern="*.html" desc="source of all other xhtml">
> >          <map:generate/>
> >          <map:transform/>
> >       </map:match>
> >
> >       <map:transform desc="a common template to apply regardless of
> source"/>
> >       <map:serialize/>
> >     </map:act>
> >   </map:match>
> >
> > The above doesn't work when coded with matchers.  C2 falls through
> > the nested matches, hits the generic case and obviously throws
> > an exception because it tries to call a second generator.
> 
> That sounds like a bug. Although I'm probably not the right person to
> help finding it, it would be important to provide more information,
> like the version of Cocoon you're running and the actual sitemap
> snippet plus sitemap.log for this case.

Nope, this is not a bug. Sitemap works this way, breaking execution on
first serialize.

Vadim


> > There are some obvious solutions to this problem.  One is to copy
> > the common transform and serialize stages into each of the
> > nested matches, forcing C2 to stop processing in the individual
> > nested matches.  Slightly cleaner is to put the final transform/
> > serialize step in a resource and have each of the nested matches
> > call the resource.  I really don't like the finality of resources,
> > however - they feel too much like goto statements.
> >
> > What I think I want to do here is use the "if-then-else" processing
> > model of selectors.  Choose only one of the a*, b* or * patterns,
> > generate the xhtml, and finish by applying the final transform/
> > serialization regardless of source.
> 
> Look for a switch selector. I'm not aware whether it's in 2.0.3 or
> HEAD only. AFAIR it was invented for such a case.
> 
> 	Chris.
> 
> --
> C h r i s t i a n       H a u l
> haul@informatik.tu-darmstadt.de
>     fingerprint: 99B0 1D9D 7919 644A 4837  7D73 FEF9 6856 335A 9E08


---------------------------------------------------------------------
Please check that your question  has not already been answered in the
FAQ before posting.     <http://xml.apache.org/cocoon/faq/index.html>

To unsubscribe, e-mail:     <cocoon-users-unsubscribe@xml.apache.org>
For additional commands, e-mail:   <cocoon-users-help@xml.apache.org>


Mime
View raw message