I am new to Apache Cocoon 2 and try to generate dynamic queries based on
user's parameters. My idea looks like this:
In sitemap.xmap, my pipeline will be:
<map:pipeline match="cocoon/myquery">
<map:generate type="mygenerator"/>
<map:transform type="sql"/>
<map:serialize type="xml"/>
</map:pipeline>
mygenerator is a Java class following the examples in Cocoon 2:
public class SQLGenerator extends AbstractGenerator
implements Disposable, Configurable {
...
public void generate() throws SAXException
{
contentHandler.startDocument();
contentHandler.startElement("", "document", "document",
emptyAttr);
contentHandler.startPrefixMapping("sql",
"http://apache.org/cocoon/SQL/2.0");
contentHandler.startElement("sql", "execute-query",
"sql:execute-query", emptyAttr);
contentHandler.startElement("sql", "use-connection",
"sql:use-connection", emptyAttr);
contentHandler.characters("mycon".toCharArray(), 0,
"mycon".length());
contentHandler.endElement("sql", "use-connection",
"sql:use-connection");
contentHandler.startElement("sql", "query", "sql:query",
emptyAttr);
contentHandler.characters("SELECT * FROM
Products".toCharArray(),0,
"SELECT * FROM Products".length());
contentHandler.endElement("sql", "query", "sql:query");
contentHandler.endElement("sql", "execute-query",
"sql:execute-query");
contentHandler.endPrefixMapping("sql");
...
}
...
}
Open IE, point it to http://localhost:8080/cocoon/myquery, I got the
following:
<?xml version="1.0" encoding="UTF-8" ?>
- <document>
- <sql:execute-query xmlns:sql="http://apache.org/cocoon/SQL/2.0">
<sql:use-connection>mycon</sql:use-connection>
<sql:query>SELECT * FROM Product</sql:query>
</sql:execute-query>
</document>
My question is: Why SQL tranformer is not invoked? However, if I create
a separate pipeline for above xml file, sql tranform is invoked and
executed.
The thing I am not sure is about startElement. The way I use is:
contentHandler.startElement("sql", "execute-query", "sql:execute-query",
emptyAttr);
Is this the correct way to start an element?
Thank you for reading and your suggestion will be highly appreciated.
Juping
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]