You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@cocoon.apache.org by MORÁVEK Peter <mo...@pobox.sk> on 2000/02/29 17:18:38 UTC

XSP problem

Configuration: WinNT4.0, Apache1.3.9, Apache JServ1.1, Cocoon1.7
(xalan_0_19_3D03.jar).

Hello, 

I'm going to rewrite my CDPProducer to XSP. But I can't get my tag library
to work.
Here are my files:
----------------------------------------------------------------------------
----------
-----------
my.xml
-----------
<?xml version="1.0"?>
<?cocoon-process type="xsp"?>
<xsp:page 
  language="java"
  xmlns:prefix="http://www.foo.sk/2000/XSP/prefix"
  xmlns:xsp="http://www.apache.org/1999/XSP/Core"
>
  <page>
    <p><prefix:open/></p>
    <p><prefix:close/></p>
  </page>
</xsp:page>

-----------
prefix.xsl
-----------
<?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"
  xmlns:prefix="http://www.foo.sk/2000/XSP/prefix"
>

<xsl:template match="xsp:page">
  <xsp:page>
    <xsl:apply-templates/>
  </xsp:page>
</xsl:template>

<xsl:template match="prefix:open">
  <xsp:expr>in open</xsp:expr>
</xsl:template>

<xsl:template match="prefix:close">
  <xsp:expr>in close</xsp:expr>
</xsl:template>

<xsl:template match="@*|node()" priority="-1">
  <xsl:copy>
    <xsl:apply-templates select="@*|node()"/>
  </xsl:copy>
</xsl:template>

</xsl:stylesheet>

-----------
generated _my.java
-----------
    package _D_._users._web._samples._xsp;

    import java.io.*;
    import java.util.*;
    import org.w3c.dom.*;
    import org.xml.sax.*;
    import javax.servlet.*;
    import javax.servlet.http.*;
    import org.apache.cocoon.parser.*;
    import org.apache.cocoon.producer.*;
    import org.apache.cocoon.framework.*;
    import org.apache.cocoon.processor.xsp.*;
    import org.apache.cocoon.processor.xsp.library.*;
    /* User Imports */
    public class _my extends XSPPage {
      /* User Class Declarations */
      public void populateDocument(
        HttpServletRequest request,
        HttpServletResponse response,
        Document document
      )
        throws Exception
      {
	// Node stack logic variables
        Node xspParentNode = null;
        Node xspCurrentNode = document;
        Stack xspNodeStack = new Stack();

	// Make session object readily available
        HttpSession session = request.getSession(false);

        
    xspParentNode = xspCurrentNode;
    xspNodeStack.push(xspParentNode);
    xspCurrentNode =
      document.createElement("page");
    xspParentNode.appendChild(xspCurrentNode);

    
    xspCurrentNode.appendChild(
      document.createTextNode("\n 		")
    );
  
    xspParentNode = xspCurrentNode;
    xspNodeStack.push(xspParentNode);
    xspCurrentNode =
      document.createElement("p");
    xspParentNode.appendChild(xspCurrentNode);

    
    xspParentNode = xspCurrentNode;
    xspNodeStack.push(xspParentNode);
    xspCurrentNode =
      document.createElement("prefix:open");
    xspParentNode.appendChild(xspCurrentNode);

  

    ((Element) xspCurrentNode).normalize();
    xspCurrentNode = (Node) xspNodeStack.pop();
  

    ((Element) xspCurrentNode).normalize();
    xspCurrentNode = (Node) xspNodeStack.pop();
  
    xspCurrentNode.appendChild(
      document.createTextNode("\n 		")
    );
  
    xspParentNode = xspCurrentNode;
    xspNodeStack.push(xspParentNode);
    xspCurrentNode =
      document.createElement("p");
    xspParentNode.appendChild(xspCurrentNode);

    
    xspParentNode = xspCurrentNode;
    xspNodeStack.push(xspParentNode);
    xspCurrentNode =
      document.createElement("prefix:close");
    xspParentNode.appendChild(xspCurrentNode);

    

    ((Element) xspCurrentNode).normalize();
    xspCurrentNode = (Node) xspNodeStack.pop();
  

    ((Element) xspCurrentNode).normalize();
    xspCurrentNode = (Node) xspNodeStack.pop();
  
    xspCurrentNode.appendChild(
      document.createTextNode("\n	")
    );
  

    ((Element) xspCurrentNode).normalize();
    xspCurrentNode = (Node) xspNodeStack.pop();
  
      }
    }

-----------
real output
-----------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
                      "http://www.w3.org/TR/REC-html40/strict.dtd">
<page>
 		<p><prefix:open></prefix:open></p>
 		<p><prefix:close></prefix:close></p>
	</page>

<!-- This page was served in 8562 milliseconds by Cocoon 1.7 -->

-----------
output that I want to gain
-----------
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN"
                      "http://www.w3.org/TR/REC-html40/strict.dtd">
<page>
 		<p>in open</p>
 		<p>in close</p>
	</page>

<!-- This page was served in 8562 milliseconds by Cocoon 1.7 -->

------------------------------------------------------


I think I have something wrong with my namespace "prefix", because when I
remove 
my namespace from the names of the tags (and matching templates), everything
works fine.

Please help

Peter