You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by Abid Ali Teepo <ab...@mogul.com> on 2001/02/08 11:47:04 UTC
Several logicsheet taglibs acessed from one page
Hi !
I am trying to acess more then one taglib from my XML-page, but i get an
error message doing so.
If the enclosed files isn't the proper way, can anyone advise me of the
correct way ?
By the way is it also possible to pipeline one xml-document through
several logisheets with processing
done one the output from the previous logicsheet ?
------------------------------------------------------------------------
--
My xml page looks like this :
------------------------------------------------------------------------
--
<?xml version="1.0"?>
<?cocoon-process type="xsp"?>
<?xml-logicsheet href="count.xsl" type="text/xsl"?>
<?xml-logicsheet href="dbacess.xsl" type="text/xsl"?>
<page>
<title>Tag-lib example</title>
<p>This is a tag-lib example</p>
<p>Denne siden er vist <count/> ganger.</p>
<p>Dette er en lesing fra databasen : <db/></p>
</page>
------------------------------------------------------------------------
----
My count.xsl looks like this :
------------------------------------------------------------------------
----
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsp="http://www.apache.org/1999/XSP/Core">
<xsl:template match="page">
<xsl:processing-instruction
name="cocoon-process">type="xsp"</xsl:processing-instruction>
<xsl:processing-instruction
name="cocoon-process">type="xslt"</xsl:processing-instruction>
<xsl:processing-instruction
name="xml-stylesheet">href="page-html.xsl"
type="text/xsl"</xsl:processing-instruction>
<xsp:page language="java"
xmlns:xsp="http://www.apache.org/1999/XSP/Core">
<xsp:logic>
static private int counter = 0;
private synchronized int count() {
return counter++;
}
</xsp:logic>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsp:page>
</xsl:template>
<xsl:template match="title">
<xsl:copy-of select="."/>
</xsl:template>
<xsl:template match="p">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="count">
<xsp:expr>count()</xsp:expr>
</xsl:template>
</xsl:stylesheet>
------------------------------------------------------------------------
-----------------
And my dbacess looks like this :
------------------------------------------------------------------------
-----------------
<?xml version="1.0"?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:xsp="http://www.apache.org/1999/XSP/Core">
<xsl:template match="page">
<xsl:processing-instruction
name="cocoon-process">type="xsp"</xsl:processing-instruction>
<xsl:processing-instruction
name="cocoon-process">type="xslt"</xsl:processing-instruction>
<xsl:processing-instruction
name="xml-stylesheet">href="page-html.xsl"
type="text/xsl"</xsl:processing-instruction>
<xsp:page language="java"
xmlns:xsp="http://www.apache.org/1999/XSP/Core">
<xsp:logic>
private String ReadNamesFromDB() {
return "Abid Ali Teepo;
}
</xsp:logic>
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsp:page>
</xsl:template>
<xsl:template match="title">
<xsl:copy-of select="."/>
</xsl:template>
<xsl:template match="p">
<xsl:copy>
<xsl:apply-templates/>
</xsl:copy>
</xsl:template>
<xsl:template match="db">
<xsp:expr>ReadNamesFromDB()</xsp:expr>
</xsl:template>
</xsl:stylesheet>
------------------------------------------------------------------------
-------------------------
ERROR MESSAGE I GET :
------------------------------------------------------------------------
-------------------------
Error found handling the request.
org.apache.xalan.xslt.XSLProcessorException: Warning: can't
output text before document element! Ignoring...
at
org.apache.xalan.xslt.XSLTEngineImpl.error(XSLTEngineImpl.java:1710)
at
org.apache.xalan.xslt.XSLTEngineImpl.error(XSLTEngineImpl.java:1674)
at
org.apache.xalan.xslt.XSLTEngineImpl.process(XSLTEngineImpl.java:703)
at
org.apache.cocoon.transformer.XalanTransformer.transform(XalanTransforme
r.java:107)
at
org.apache.cocoon.processor.xsp.XSPLogicsheet.apply(XSPLogicsheet.java:1
02)
at
org.apache.cocoon.processor.xsp.XSPProcessor.process(XSPProcessor.java:4
22)
at org.apache.cocoon.Engine.handle(Engine.java:384)
at org.apache.cocoon.Cocoon.service(Cocoon.java:183)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.
java:208)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl
etContext.java:1127)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.
java:1529)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
---------
org.xml.sax.SAXException: Warning: can't output text before
document element! Ignoring...
at
org.apache.xalan.xpath.xml.FormatterToDOM.append(FormatterToDOM.java:147
)
at
org.apache.xalan.xpath.xml.FormatterToDOM.characters(FormatterToDOM.java
:331)
at
org.apache.xalan.xslt.XSLTEngineImpl$ResultTreeHandler.characters(XSLTEn
gineImpl.java:4021)
at
org.apache.xalan.xslt.XSLTEngineImpl.cloneToResultTree(XSLTEngineImpl.ja
va:2078)
at
org.apache.xalan.xslt.ElemTemplateElement.transformChild(ElemTemplateEle
ment.java:1177)
at
org.apache.xalan.xslt.ElemTemplateElement.processLocatedNode(ElemTemplat
eElement.java:1061)
at
org.apache.xalan.xpath.SimpleNodeLocator.findChildren(SimpleNodeLocator.
java:773)
at
org.apache.xalan.xpath.SimpleNodeLocator.step(SimpleNodeLocator.java:428
)
at
org.apache.xalan.xpath.SimpleNodeLocator.locationPath(SimpleNodeLocator.
java:321)
at
org.apache.xalan.xpath.XPath.locationPath(XPath.java:964)
at org.apache.xalan.xpath.XPath.execute(XPath.java:1385)
at org.apache.xalan.xpath.XPath.execute(XPath.java:1354)
at org.apache.xalan.xpath.XPath.execute(XPath.java:311)
at
org.apache.xalan.xslt.ElemTemplateElement.transformSelectedChildren(Elem
TemplateElement.java:896)
at
org.apache.xalan.xslt.ElemApplyTemplates.execute(ElemApplyTemplates.java
:176)
at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateEl
ement.java:661)
at
org.apache.xalan.xslt.ElemTemplateElement.transformChild(ElemTemplateEle
ment.java:1199)
at
org.apache.xalan.xslt.ElemTemplateElement.processLocatedNode(ElemTemplat
eElement.java:1061)
at
org.apache.xalan.xpath.SimpleNodeLocator.findChildren(SimpleNodeLocator.
java:773)
at
org.apache.xalan.xpath.SimpleNodeLocator.step(SimpleNodeLocator.java:428
)
at
org.apache.xalan.xpath.SimpleNodeLocator.locationPath(SimpleNodeLocator.
java:321)
at
org.apache.xalan.xpath.XPath.locationPath(XPath.java:964)
at org.apache.xalan.xpath.XPath.execute(XPath.java:1385)
at org.apache.xalan.xpath.XPath.execute(XPath.java:1354)
at org.apache.xalan.xpath.XPath.execute(XPath.java:311)
at
org.apache.xalan.xslt.ElemTemplateElement.transformSelectedChildren(Elem
TemplateElement.java:896)
at
org.apache.xalan.xslt.ElemApplyTemplates.execute(ElemApplyTemplates.java
:176)
at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateEl
ement.java:661)
at
org.apache.xalan.xslt.ElemTemplateElement.transformChild(ElemTemplateEle
ment.java:1199)
at
org.apache.xalan.xslt.ElemTemplateElement.processLocatedNode(ElemTemplat
eElement.java:1061)
at
org.apache.xalan.xpath.SimpleNodeLocator.findChildren(SimpleNodeLocator.
java:773)
at
org.apache.xalan.xpath.SimpleNodeLocator.step(SimpleNodeLocator.java:428
)
at
org.apache.xalan.xpath.SimpleNodeLocator.locationPath(SimpleNodeLocator.
java:321)
at
org.apache.xalan.xpath.XPath.locationPath(XPath.java:964)
at org.apache.xalan.xpath.XPath.execute(XPath.java:1385)
at org.apache.xalan.xpath.XPath.execute(XPath.java:1354)
at org.apache.xalan.xpath.XPath.execute(XPath.java:311)
at
org.apache.xalan.xslt.ElemTemplateElement.transformSelectedChildren(Elem
TemplateElement.java:896)
at
org.apache.xalan.xslt.ElemApplyTemplates.execute(ElemApplyTemplates.java
:176)
at
org.apache.xalan.xslt.ElemTemplateElement.executeChildren(ElemTemplateEl
ement.java:661)
at
org.apache.xalan.xslt.ElemTemplate.execute(ElemTemplate.java:145)
at
org.apache.xalan.xslt.StylesheetRoot.process(StylesheetRoot.java:444)
at
org.apache.xalan.xslt.XSLTEngineImpl.process(XSLTEngineImpl.java:679)
at
org.apache.cocoon.transformer.XalanTransformer.transform(XalanTransforme
r.java:107)
at
org.apache.cocoon.processor.xsp.XSPLogicsheet.apply(XSPLogicsheet.java:1
02)
at
org.apache.cocoon.processor.xsp.XSPProcessor.process(XSPProcessor.java:4
22)
at org.apache.cocoon.Engine.handle(Engine.java:384)
at org.apache.cocoon.Cocoon.service(Cocoon.java:183)
at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.
java:208)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServl
etContext.java:1127)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.
java:1529)
at
weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at
weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
Re: Several logicsheet taglibs acessed from one page
Posted by Donald Ball <ba...@webslingerZ.com>.
On Thu, 8 Feb 2001, Abid Ali Teepo wrote:
> I am trying to acess more then one taglib from my XML-page, but i get
> an error message doing so. If the enclosed files isn't the proper way,
> can anyone advise me of the correct way ?
>
> By the way is it also possible to pipeline one xml-document through
> several logisheets with processing done one the output from the
> previous logicsheet ?
>
> <?xml version="1.0"?>
>
> <?cocoon-process type="xsp"?>
> <?xml-logicsheet href="count.xsl" type="text/xsl"?>
> <?xml-logicsheet href="dbacess.xsl" type="text/xsl"?>
>
> <page>
> <title>Tag-lib example</title>
>
> <p>This is a tag-lib example</p>
>
> <p>Denne siden er vist <count/> ganger.</p>
>
> <p>Dette er en lesing fra databasen : <db/></p>
>
> </page>
>
> ------------------------------------------------------------------------
> ----
> My count.xsl looks like this :
> ------------------------------------------------------------------------
> ----
> <?xml version="1.0"?>
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xsp="http://www.apache.org/1999/XSP/Core">
> <xsl:template match="page">
> <xsl:processing-instruction
> name="cocoon-process">type="xsp"</xsl:processing-instruction>
> <xsl:processing-instruction
> name="cocoon-process">type="xslt"</xsl:processing-instruction>
> <xsl:processing-instruction
> name="xml-stylesheet">href="page-html.xsl"
> type="text/xsl"</xsl:processing-instruction>
. . .
> <?xml version="1.0"?>
>
> <xsl:stylesheet version="1.0"
> xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
> xmlns:xsp="http://www.apache.org/1999/XSP/Core">
> <xsl:template match="page">
> <xsl:processing-instruction
> name="cocoon-process">type="xsp"</xsl:processing-instruction>
> <xsl:processing-instruction
> name="cocoon-process">type="xslt"</xsl:processing-instruction>
> <xsl:processing-instruction
> name="xml-stylesheet">href="page-html.xsl"
> type="text/xsl"</xsl:processing-instruction>
look at what you're going to end up with after the first xsp process pass:
<?cocoon-process type="xsp"?>
<?cocoon-process type="xslt"?>
<?cocoon-process type="xsp"?>
<?cocoon-process type="xslt"?>
<?xml-stylesheet href="page-html.xsl"?>
<?xml-stylesheet href="page-html.xsl"?>
that's not what you want to happen, is it? nuke the
xsl:processing-instructions from your logicsheets.
- donald