After searching the created "Java" file (apologies for my earlier
mistake), the request helper is the only place it could be trying to set
the variable.
For example the following XSP (entire file) :

+---------------------------------------------------------+
<?xml version="1.0"?>

<xsp:page
  xmlns:xsp="http://apache.org/xsp";
  xmlns:xsp-session="http://apache.org/xsp/session/2.0";
  create-session="true">

  <page>
    <xsp-session:set-attribute
name="fruit">Apple</xsp-session:set-attribute>
    <fruit><xsp-session:get-attribute name="fruit"/></fruit>
  </page>

</xsp:page> 
+---------------------------------------------------------+

Generates the following Java

+---------------------------------------------------------+
public class test_xsp extends XSPGenerator {

  static {
    dateCreated = 1037088922427L;
    dependencies = new File[]{
                   };
  }

  /* Built-in parameters available for use */
  // context    - ServletContext
  // request    - HttpServletRequest
  // response   - HttpServletResponse
  // parameters - parameters defined in the sitemap

  /* User Class Declarations */


  /**
  * Generate XML data.
  */
  public void generate() throws SAXException, IOException,
  ProcessingException {



    this.contentHandler.startDocument();
    AttributesImpl xspAttr = new AttributesImpl();



    this.contentHandler.startPrefixMapping("xml",
"http://www.w3.org/XML/1998/namespace";);

    this.contentHandler.startPrefixMapping("xsp",
"http://apache.org/xsp";);

    this.contentHandler.startPrefixMapping("xsp-session",
"http://apache.org/xsp/session/2.0";);


    this.contentHandler.startElement("", "page", "page", xspAttr);

    xspAttr.clear();


    this.characters("\n    ");

    XSPRequestHelper.setSessionAttribute(objectModel,
                                         String.valueOf("fruit"),
                                         this.characters("Apple");
                                        );

    this.characters("\n    ");


    this.contentHandler.startElement("", "fruit", "fruit", xspAttr);

    xspAttr.clear();



    XSPObjectHelper.xspExpr(contentHandler,
 
XSPRequestHelper.getSessionAttribute(objectModel,
 
String.valueOf("fruit"), ""));


    this.contentHandler.endElement("", "fruit", "fruit");


    this.characters("\n  ");


    this.contentHandler.endElement("", "page", "page");


    this.contentHandler.endPrefixMapping("xml");

    this.contentHandler.endPrefixMapping("xsp");

    this.contentHandler.endPrefixMapping("xsp-session");


    this.contentHandler.endDocument();
  }
}

+---------------------------------------------------------+

So as you can see from the above the only place it is possible creating
the session variable is 
XSPRequestHelper.setSessionAttribute(objectModel,
                                         String.valueOf("fruit"),
                                         this.characters("Apple");
                                        );
And this is where the rogue semicolon appears.

I can remove the rogue semicolon by creating the String "Apple" and
reverencing that string through <xsp:expr> tags. But this leads to a
nullPointerException.

I think that either I am being really dim with this or some powers that
I can't control are at work here!

Thanks for everyone's help so far

Tom Place


---------------------------------------------------------------------
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:     <[EMAIL PROTECTED]>
For additional commands, e-mail:   <[EMAIL PROTECTED]>

Reply via email to