> From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] > > > > 1. Include Object as String: > > > > > > > > > <xsp:page > > > language="java" > > > xmlns:xsp="http://apache.org/xsp" > > > xmlns:cinclude="http://apache.org/cocoon/include/1.0" > > > xmlns:util="http://apache.org/xsp/util/2.0" > > > > > > > <some-items anAttr="aVal"> > > > <util:include-expr> > > > > > <xsp:expr>model.getAnItemAsString()</xsp:expr> > > > </util:include-expr> > > > </some-items> > > > </some-items> > > > </xsp:page> > > > > > > The page does not compile. The method .getAnItemAsString is not even > > > executed. > > > > This will compile if you put everything on one line, no text nodes in > > the util:include-expr element: > > > > <util:include-expr><xsp:expr>model.getAnItemAsString()</xsp:expr></util: > > include-expr> > > > > Also, I would not recommend you this anyway because of re-parsing > > performance penalty. > > As follows I include my original sources and the corresponding output: > (They slightly differ formally from the above mentioned example) > > > Table.xsp: > > <?xml version="1.0" encoding="ISO-8859-1"?> > <xsp:page > language="java" > xmlns:xsp="http://apache.org/xsp" > xmlns:cinclude="http://apache.org/cocoon/include/1.0" > xmlns:util="http://apache.org/xsp/util/2.0" > > > > <xsp:structure> > <xsp:include>web.ModelManager</xsp:include> > </xsp:structure> > > > <simple-items edit="true" curSel="2"> > <xsp:logic> > ModelManager mm = new > ModelManager(); > <util:include- > expr><util:expr>mm.marshal(mm.getSimpleItems())</util:expr></util:includ e- > expr>
You need <xsp:expr>mm.marshal(mm.getSimpleItems())</xsp:expr> here to treat Java as Java but not as text. (See above!!!) (not sure about util:expr, try with it and without it, but xsp:expr is must) Vadim > </xsp:logic> > </simple-items> > </xsp:page> > > resulting web-page: > > > org.apache.cocoon.ProcessingException: Language Exception: > org.apache.cocoon.components.language.LanguageException: Error compiling > Table_xsp: Line 136, > column 111: ')' expected. Line 0, column 0: 1 error > > > created Table_xsp.java: > > try { > newParser = (org.apache.cocoon.components.parser.Parser) > this.manager.lookup( > org.apache.cocoon.components.parser.Parser.ROLE); > InputSource __is = new InputSource( > new > StringReader(String.valueOf(this.characters("mm.marshal(mm.getSimpleItem s())") > ;))); > > > XSPUtil.include(__is, this.contentHandler, newParser); > } catch (Exception e) { > getLogger().error("Could not include page", e); > } > finally { if (newParser != null) > this.manager.release((Component) newParser); > } } > As you can see there is a ";" in between a java statement: '...s())");)));' > > Is there any other error in my page? > > > > > 2. > > > Use Castor's marshalling capabilities: > > > > > > <some-items anAttr="aVal"> > > > <xsp:logic> > > > model.marshal(this.contentHandler); > > > </xsp:logic> > > > </some-items> > > > > This sounds perfect. > > > > > > > Within the method I pass the contentHandler (wrapped into > > > DocumentHandlerAdapter) to castor's marshaller before I perfom > > mashal(obj). > > > > > > As A result the cinclude transformer (which I need) complains about a > > > Nullpointer exception. > > > > Make sure that model.marshal() does not call startDocument() and > > endDocument() on the contentHandler. If it does, you should strip these > > calls by wrapping contentHandler into the IncludeXMLConsumer. > > > > This should work. Or we have a bug. > > I include fragments of the original sources: > > Table.xsp: > ... > <simple-items edit="true" curSel="2"> > <xsp:logic> > ModelManager mm = new ModelManager(); > mm.chmarshal(mm.getSimpleItems(), this.contentHandler); > </xsp:logic> > </simple-items> > .. > > ModelManager.java: > ... > public void chmarshal (Collection col, org.xml.sax.ContentHandler > _docHandler){ > Marshaller marshaller = marshaller = new Marshaller(new > org.apache.cocoon.xml.DocumentHandlerAdapter(_docHandler)); > Iterator it = col.iterator(); > while (it.hasNext()){ > Object obj = it.next(); > marshaller.marshal(obj); > } > } > ... > > I include two distinct possibilities to call the page once only processing > the xsp the other one including transformation with a stylesheet. > > > a) only processing the xsp > > Sitemap entry: > > <map:match pattern="ti" > > <map:generate type="serverpages" src="Table.xsp"/> > <map:transform type="cinclude"/> > <map:serialize type="xml"/> > </map:match> > > Result in web browser: > > <?xml version="1.0" encoding="UTF-8"?> > <simple-items edit="true" curSel="2" xmlns:xsp="http://apache.org/xsp" > xmlns:util="http://apache.org/xsp/util/2.0" > xmlns:cinclude="http://apache.org/cocoon/include/1.0"> > <?xml version="1.0" encoding="UTF-8"?> > <simple-item weight="111" > id="1"><name>one</name><weight-msg/><id-msg/><name-msg/></simple-item> > <?xml version="1.0" encoding="UTF-8"?> > <simple-item weight="22" > id="2"><name>two</name><weight-msg/><id-msg/><name-msg/></simple-item> > <?xml version="1.0" encoding="UTF-8"?> > <simple-item weight="33" > id="3"><name>three</name><weight-msg/><id-msg/><name-msg/></simple-item> > > Note that "<?xml version="1.0" encoding="UTF-8"?>" is inserted before each > marshalled object. If I include the output statically to an xml page my > Stylesheet complains about that and refuses transformation. > > b)including transformation with a stylesheet > > Site map entry: > > <map:match pattern="tbl.htm"> > <map:generate type="serverpages" src="Table.xsp"/> > <map:transform type="cinclude"/> > <map:transform src="Table.xsl"/> > <map:serialize type="html"/> > </map:match> > > output from cocoon's logfile: > > ERROR (2002-04-10) 22:04.38:129 [sitemap.generator.velocity] (/pcsb/) > HttpProcessor[8080][0]/VelocityGenerator: ResourceManager : unable to find > resource 'VM_global_library.vm' in any resource loader. > ERROR (2002-04-10) 22:04.38:189 [sitemap.generator.velocity] (/pcsb/) > HttpProcessor[8080][0]/VelocityGenerator: ResourceManager : unable to find > resource 'VM_global_library.vm' in any resource loader. > ERROR (2002-04-10) 22:04.38:239 [sitemap.generator.xmldb] (/pcsb/) > HttpProcessor[8080][0]/XMLDBGenerator: There was a problem setting up the > connection > ERROR (2002-04-10) 22:04.38:239 [sitemap.generator.xmldb] (/pcsb/) > HttpProcessor[8080][0]/XMLDBGenerator: Make sure that your driver is available > ERROR (2002-04-10) 22:04.38:249 [sitemap.generator.xmldb] (/pcsb/) > HttpProcessor[8080][0]/XMLDBGenerator: There was a problem setting up the > connection > ERROR (2002-04-10) 22:04.38:249 [sitemap.generator.xmldb] (/pcsb/) > HttpProcessor[8080][0]/XMLDBGenerator: Make sure that your driver is available > ERROR (2002-04-10) 22:04.38:270 [sitemap.generator.xmldbcollection] > (/pcsb/) HttpProcessor[8080][0]/XMLDBCollectionGenerator: There was a problem > setting up the connection > ERROR (2002-04-10) 22:04.38:270 [sitemap.generator.xmldbcollection] > (/pcsb/) HttpProcessor[8080][0]/XMLDBCollectionGenerator: Make sure that your > driver is available > ERROR (2002-04-10) 22:04.38:280 [sitemap.generator.xmldbcollection] > (/pcsb/) HttpProcessor[8080][0]/XMLDBCollectionGenerator: There was a problem > setting up the connection > ERROR (2002-04-10) 22:04.38:280 [sitemap.generator.xmldbcollection] > (/pcsb/) HttpProcessor[8080][0]/XMLDBCollectionGenerator: Make sure that your > driver is available > FATAL_E (2002-04-10) 22:05.26:960 [core.xslt-processor] > (/pcsb/table/tbl.htm) HttpProcessor[8080][0]/TraxErrorHandler: Error in > TraxTransformer: > javax.xml.transform.TransformerException: java.lang.NullPointerException > javax.xml.transform.TransformerException: java.lang.NullPointerException > at > org.apache.xalan.transformer.TransformerImpl.transformNode(TransformerIm pl.jav > a:1230) > at > org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:31 39) > at java.lang.Thread.run(Thread.java:484) > > Note: without cinclude there is no exception. Unfortunately I need cinclude > for a more complex dynamic stylesheet. > > In both cases (with or without cinclude) the stylestheed doesn't process any > of the marshalled items. > > Any ideas? > > Harald > > -- > GMX - Die Kommunikationsplattform im Internet. > http://www.gmx.net > > > --------------------------------------------------------------------- > Please check that your question has not already been answered in the > FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> > > To unsubscribe, e-mail: <[EMAIL PROTECTED]> > For additional commands, e-mail: <[EMAIL PROTECTED]> --------------------------------------------------------------------- Please check that your question has not already been answered in the FAQ before posting. <http://xml.apache.org/cocoon/faqs.html> To unsubscribe, e-mail: <[EMAIL PROTECTED]> For additional commands, e-mail: <[EMAIL PROTECTED]>