I have been looking at making a cocoon2 generator and would be interested in advice or criticism about my strategy.
I have standalone sax2 test programs that implement a 'fake parser' like michal kay's gedcom parser reading a text file, emitting sax events written to an xml file that is (possibly) transformed. I am breaking up a text file into <line><word>. another, similar parser reads comma delimited files from (for example) excel. -------------- Looking at the ../generation sources, I chose the HTML generator as a model. It, however, uses DOM and then converts it into SAX events. The 'PoemtxtParser' emits sax events & I expect to hook it into the {pipeline?} that is defined in the sitemap by <map:generator name="poemtxt" src="org.apache.cocoon.generation.PoemtxtGenerator" label="content"/> in the generator section and <map:match pattern="poemtxt"> <map:generate type="poemtxt" src="poemtxt/**.txt"/> <map:transform type="xslt" src="stylesheets/poemtxt/xpoem-html.xsl"/> <map:serialize type="html"/> </map:match> --------------------------------------- --------------------------------------- The main program of my existing code writes to system.out and I need, I believe to replace this output source with a connection to the cocoon2 pipeline. Here is the main excerpt: String poemtxtFileName = args[0]; String xsltFileName = (args.length > 1) ? args[1] : null; TransformerFactory transFact = TransformerFactory.newInstance(); if (transFact.getFeature(SAXTransformerFactory.FEATURE)) { SAXTransformerFactory saxTransFact = (SAXTransformerFactory) transFact; TransformerHandler transHand = null; if (xsltFileName == null) { transHand = saxTransFact.newTransformerHandler(); } else { transHand = saxTransFact.newTransformerHandler(new StreamSource(new File(xsltFileName))); } // set the desitnation for the xslt transformation transHand.setResult(new StreamResult(System.out)); //hook the poemtxtParser to the poemtxtFile PoemtxtParser poemtxtReader = new PoemtxtParser(); InputSource poemtxtInputSrc = new InputSource(new FileReader(poemtxtFileName)); // attach the XSLT processor to the poemtxtParser poemtxtReader.setContentHandler(transHand); poemtxtReader.parse(poemtxtInputSrc); -------------------------- -------------------------- The PoemtxtParser.parse implements XMLReader and Locator and emits calls to contentHandler.startDocument and .StartElement (and so on). ------------------------- Does this make sense or am I missing something already existing in Cocoon2 that would accomplish my goal/ regards Bob Phillips --------------------------------------------------------------------- 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]>