cocoon-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Nicola Ken Barozzi" <nicola...@supereva.it>
Subject Re: [Cocoon Devel] Re: [C2] UML Class Diagram for SiteMap
Date Mon, 11 Sep 2000 08:27:11 GMT

----- Original Message ----- 
From: "Nicola Ken Barozzi" <nicolaken@supereva.it>
To: <cocoon-dev@xml.apache.org>
Sent: Monday, September 11, 2000 10:08 AM
Subject: Re: [Cocoon Devel] Re: [C2] UML Class Diagram for SiteMap


> From: "Giacomo Pati" <Giacomo.Pati@pwr.ch>
> 
> > Nicola Ken Barozzi wrote:
> > > 
> > > ----- Original Message -----
> > > From: "Giacomo Pati" <pati_giacomo@yahoo.com>
> > > To: <cocoon-dev@xml.apache.org>; "Nicola Ken Barozzi" <nicolaken@supereva.it>
> > > Sent: Thursday, September 07, 2000 10:23 AM
> > > Subject: Re: [Cocoon Devel] Re: [C2] UML Class Diagram for SiteMap
> > > 
> > > >
> > > > --- Nicola Ken Barozzi <nicolaken@supereva.it> wrote:
> > > > > ----- Original Message -----
> > > > > From: "Giacomo Pati" <pati_giacomo@yahoo.com>
> > > > > >
> > > > > > --- Nicola Ken Barozzi <nicolaken@supereva.it> wrote:
> > > > > > >
> > > > > > > ----- Original Message -----
> > > > > > > From: "Giacomo Pati" <pati_giacomo@yahoo.com>
> > > > > > > To: <cocoon-dev@xml.apache.org>
> > > > > > > Sent: Thursday, September 07, 2000 8:48 AM
> > > > > > > Subject: Re: [Cocoon Devel] Re: [C2] UML Class Diagram
for
> > > > > SiteMap
> > > > > > >
> > > > > > > > I've written a stylesheet that presents the sitemap
as a html
> > > > > page.
> > > > > > > > I'll want to write an admin app (using C2 of course)
for the
> > > > > > > sitemap.
> > > > > > > > But have problems with the FileGenerator not passing
Namespaces
> > > > > > > > declaration correctly to the transformer. When you
insert the
> > > > > > > following
> > > > > > > > into the <map:pipeline> of the sitemap.xmap
file
> > > > > > > >
> > > > > > > >   <map:match pattern="sitemap">
> > > > > > > >    <map:generate src="sitemap.xmap"/>
> > > > > > > >    <map:serialize type="xml"/>
> > > > > > > >   </map:match>
> > > > > > > >
> > > > > > > > and request it as
> > > > > > > >
> > > > > > > >   http://localhost:8080/cocoon/sitemap
> > > > > > > >
> > > > > > > > you'll see that the xmlnx:map.... has been removed.
Have no
> > > > > idea
> > > > > > > why?
> > > > > > > > Does someone elso do?
> > > > > > >
> > > > > > > Hmmm... In my Transformer (class) the namespaces are called
> > > > > correctly
> > > > > > > with
> > > > > > > Xerces 1.2 and with 1.1.3 are called but give an exception
at the
> > > > > > > end, so
> > > > > > > I'm not sure it's the FileGenerator, maybe it's the Serializer
> > > > > that
> > > > > > > kicks them off.
> > > > > >
> > > > > > You're right. I've used the LogTransformer now to see what the
> > > > > > FileGenerator outputs. And the output seems to be ok. But why
does
> > > > > the
> > > > > > simple-sitemap2html.xsl not match _any_ template ???
> > > > > Maybe in XalanTransformer this line?
> > > > >
> > > > >  this.setDocumentHandler(this.processor);
> > > > >
> > > > > does a DocumentHandler forward namespace events?
> > > >
> > > > Not as startNamespacePrefix events but as normal attributes. The
> > > > DocumentHandlerAdapter converts those attributes to appropriate SAX2
> > > > calls. Otherwise also XSP would not work which makes heavy use of
> > > > namespaces.
> > > 
> > > There are still problems with the sitemap+stylesheet conversion as I see.
> > > I tried XT and all is well (posted ina in a _wrong_ thread):
> > 
> > Yes, I've seen it and tried it using cocoon. Yes it work well, but
> > still, why the XalanTransformer doesn't?.
> 
> Yeah why?why?why?
> It seams that it works only by calling the process method of the
> stylesheet (compiled) but not with SAX events starting the process.
> 
> > > "
> > > > Regarding the sitemap stylesheet having problems with namespaces, well
> > > > il works all well with XT
> > > >    <map:transformer     name="xt"      src="org.apache.cocoon.transformation.XTTransformer"/>
> > > > instead of Xalan as a Transformer.
> > > "
> > > 
> > > So I asked myself:"why XT and not Xalan?".
> > > So I put the Logger before and after the transformer but from defunct
> > >  xalan came no meaningful event.
> > > Then I went into the Transformer and tried X combinantions with parameters
and
> > > Loggers-notifiers (with x -> infinity ;-) ) ... result: no luck.
> > > So I thought:"Giacomo said that from commandline all is ok...hmmm".
> > > So I downloaded Xalan from my speedy 56k modem al 600 bytes/sec (ok, I know
> > > you don't give a damn about it ;-) ) 
> > 
> > Hey Nicola, why did you downlaod xalan? You already have it in the
> > cocoon cvs ;-)
> 
> Why did I downlOAd it? ;-)
> 'cause there ain't no examples in it, that's why!
> 
> > > and tried an example with the sitemap file
> > > and stylesheet: it doesn't work!
> > > Take away namespaces -> it works!
> > > The example is PureSAX.
> > > I also changed it to use compiled stylesheets as they say in the xalan docs
but
> > > no, it doesn't work. :-(
> > > What's going on?!? ;-)
> > 
> > No, no. I've done it a hundered times on the commandline. You should use
> > the following in the cocoon directory:
> >
> >    java -classpath lib/xerces_1_2.jar:lib/xalan_1_2_D01.jar \
> >         org.apache.xalan.xslt.Process \
> >         -in webapp/sitemap.xmap \
> >         -xsl webapp/stylesheets/sitemap/simple-sitemap2html.xsl \
> >         -out ../a.html
> >         -html 
> > 
> > (or the appropriate if you use a window system) and you'll see it works
> > correctly.
> 
> First of all, the exmple should work too, but it doesn't, so it seems we have
> a bug here.
> If I call the process method in the XalanTransformer to System.out instead of 
> returning the DocumentHandler, it works!
> 
>     processor.process(new XSLTInputSource("foo.xml"),
>                       style,
>                       new XSLTResultTarget(System.out));
> 
> (I called the test sitemap foo.xml)
> 
> So it seems that namespace uri is stripped off if transformation is giuded by
> external sax but not using the process method.

Maybe I have something.
In class StylesheetRoot (xalan) method 
  public void process( XSLTProcessor iprocessor, Node sourceTree,
                       XSLTResultTarget outputTarget)
(called by all other process in same class and processors)
I found this note:

        // Needs work: We have to put the extension namespaces
        // into the liaison's table.  We wouldn't have to do this
        // if the stylesheet handled it's own extensions, which
        // I'll fix on a later date.
        Enumeration keys = m_extensionNamespaces.keys();
        while(keys.hasMoreElements())
        {
          Object key = keys.nextElement();
          // System.out.println("Putting ext namespace: "+key);
          processor.getExecContext().addExtensionNamespace ((String)key,
                                                            (ExtensionFunctionHandler)m_extensionNamespaces.get(key));
        }

Maybe I'm wrong, but it seems that namespaces are truly set-up only by this
method, hence the problem when directly starting it all via SAX.

nicola_ken

Nicola Ken Barozzi - AISA Industries S.p.A
http://www.aisaindustries.it/
Via Leonardo da Vinci,2 Ticengo (CR) Italy
Research Activity:
Politecnico di Milano - Dipartimento di Meccanica
Piazza Leonardo da Vinci, n.32 - 20133 Milano (Italy)


Mime
View raw message