Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
Just nitpicking, but could we call it ExampleFO2PDF-SAXParser instead of just SAX, because the transformer solution relies on SAX, too? I don't have a problem with long names. :-) On 16.07.2004 21:14:18 Simon Pepping wrote: Perhaps it is a good idea to illustrate the transformer solution in ExampleFO2PDF, and the outlying SAX parser solution in ExampleFO2PDF-SAX. Jeremias Maerki
Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
I renamed it yesterday. Glen --- Jeremias Maerki [EMAIL PROTECTED] wrote: Just nitpicking, but could we call it ExampleFO2PDF-SAXParser instead of just SAX, because the transformer solution relies on SAX, too? I don't have a problem with long names. :-) On 16.07.2004 21:14:18 Simon Pepping wrote: Perhaps it is a good idea to illustrate the transformer solution in ExampleFO2PDF, and the outlying SAX parser solution in ExampleFO2PDF-SAX. Jeremias Maerki
Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
Great. Sorry for the noise. On 20.07.2004 22:34:28 Glen Mazza wrote: I renamed it yesterday. Glen --- Jeremias Maerki [EMAIL PROTECTED] wrote: Just nitpicking, but could we call it ExampleFO2PDF-SAXParser instead of just SAX, because the transformer solution relies on SAX, too? I don't have a problem with long names. :-) On 16.07.2004 21:14:18 Simon Pepping wrote: Perhaps it is a good idea to illustrate the transformer solution in ExampleFO2PDF, and the outlying SAX parser solution in ExampleFO2PDF-SAX. Jeremias Maerki
Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
Good idea...this way those who prefer the SAXParserFactory method can see how FOP would work this way. (I tried to show both cases in one example, but it just made a mess of things.) If you could take care of this for us, it would be appreciated--else I'll (probably) get to it eventually. Glen --- Simon Pepping [EMAIL PROTECTED] wrote: Perhaps it is a good idea to illustrate the transformer solution in ExampleFO2PDF, and the outlying SAX parser solution in ExampleFO2PDF-SAX. Regards, Simon
Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
Glen, I can see Jeremias' argument for a single pattern to deal with all situations, but I am pleased to see the SAX solution illustrated by an example in this simplest case of all. Perhaps it is a good idea to illustrate the transformer solution in ExampleFO2PDF, and the outlying SAX parser solution in ExampleFO2PDF-SAX. Regards, Simon On Thu, Jul 15, 2004 at 08:59:21PM -0700, Glen Mazza wrote: Thanks, Simon--I didn't think of this way of solving the problem--I just modified Jeremias' previous DOM example. However, I placed the method below temporarily in the example and committed it before returning to the Transformer version. This way, we have a working example should we ever need to document this style (perhaps on a web page, so users are at least aware of it) in the future. Glen -- Simon Pepping home page: http://www.leverkruid.nl
Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
Because, IMO, it allows the user to use the same pattern for virtually everything: 1. Create a TransformerFactory 2. Create a Transformer and optionally use a stylesheet 3. Specify the Source (DOM, stream, file, SAX) 4. Specify the Result (DOM, stream, file, SAX) 5. Start the transformation. I use the JAXP part for XML parsing almost never because I can do most with this pattern. During my work I realized that most people don't even know about this pattern. They save the FO as a file or as a DOM and then send it to FOP. Very inefficient. Using the one API approach we can teach our users a few handy things with which they can do whatever they need: - Serializing a DOM to a file - Transforming an XML file to HTML - Creating a PDF from a Java object - you name it. Of course, in some situation you will need to learn a few additional things like using the TransformerHandler for pipelining multiple XSL transformations. But most of the things can be done using the Transformer. On 15.07.2004 20:52:23 Simon Pepping wrote: On Wed, Jul 14, 2004 at 10:42:29PM -, [EMAIL PROTECTED] wrote: gmazza 2004/07/14 15:42:29 Modified:examples/embedding/java/embedding ExampleFO2PDF.java Log: Updated FO-PDF example to use JAXP. +// Setup JAXP using identity transformer +TransformerFactory factory = TransformerFactory.newInstance(); +Transformer transformer = factory.newTransformer(); // identity transformer + +// Setup input for XSLT transformation +Source src = new StreamSource(fo); +// Resulting SAX events (the generated FO) must be piped through to FOP +Result res = new SAXResult(driver.getContentHandler()); + +// Start XSLT transformation and FOP processing +transformer.transform(src, res); This is as much JAXP: Driver.run: render(FOFileHandler.createParser(), source); FOFileHandler.createParser: SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); return factory.newSAXParser().getXMLReader(); Why is having a transformer object in between better? Jeremias Maerki
Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
Thanks, Simon--I didn't think of this way of solving the problem--I just modified Jeremias' previous DOM example. However, I placed the method below temporarily in the example and committed it before returning to the Transformer version. This way, we have a working example should we ever need to document this style (perhaps on a web page, so users are at least aware of it) in the future. Glen --- Simon Pepping [EMAIL PROTECTED] wrote: This is as much JAXP: Driver.run: render(FOFileHandler.createParser(), source); FOFileHandler.createParser: SAXParserFactory factory = SAXParserFactory.newInstance(); factory.setNamespaceAware(true); return factory.newSAXParser().getXMLReader(); Why is having a transformer object in between better? Regards, Simon -- Simon Pepping home page: http://www.leverkruid.nl
Re: cvs commit: xml-fop/examples/embedding/java/embedding ExampleFO2PDF.java
Sounds good. --- Jeremias Maerki [EMAIL PROTECTED] wrote: Because, IMO, it allows the user to use the same pattern for virtually everything: 1. Create a TransformerFactory 2. Create a Transformer and optionally use a stylesheet 3. Specify the Source (DOM, stream, file, SAX) 4. Specify the Result (DOM, stream, file, SAX) 5. Start the transformation. snip/ Using the one API approach we can teach our users a few handy things with which they can do whatever they need: - Serializing a DOM to a file - Transforming an XML file to HTML - Creating a PDF from a Java object - you name it. snip/