]> source.dussan.org Git - xmlgraphics-fop.git/commitdiff
update to SAX 2 parser
authorfotis <fotis@unknown>
Sat, 15 Jul 2000 20:41:07 +0000 (20:41 +0000)
committerfotis <fotis@unknown>
Sat, 15 Jul 2000 20:41:07 +0000 (20:41 +0000)
git-svn-id: https://svn.apache.org/repos/asf/xmlgraphics/fop/trunk@193511 13f79535-47bb-0310-9956-ffa450edef68

lib/Fop.class
lib/Fop.java

index b4c5951168d0b51ab91198fe4be0512bd6e5aa72..9fd7c437d41031593b4ebeae558b776af6b07178 100644 (file)
Binary files a/lib/Fop.class and b/lib/Fop.class differ
index aa342945c20c458948094c09c6d7c0b26bb4d852..03d7debf6ed3b86fed0ee0d0e9cd10cc62480238 100644 (file)
@@ -1,10 +1,61 @@
+/*
+
+ ============================================================================
+                   The Apache Software License, Version 1.1
+ ============================================================================
+    Copyright (C) 1999 The Apache Software Foundation. All rights reserved.
+ Redistribution and use in source and binary forms, with or without modifica-
+ tion, are permitted provided that the following conditions are met:
+ 1. Redistributions of  source code must  retain the above copyright  notice,
+    this list of conditions and the following disclaimer.
+ 2. Redistributions in binary form must reproduce the above copyright notice,
+    this list of conditions and the following disclaimer in the documentation
+    and/or other materials provided with the distribution.
+ 3. The end-user documentation included with the redistribution, if any, must
+    include  the following  acknowledgment:  "This product includes  software
+    developed  by the  Apache Software Foundation  (http://www.apache.org/)."
+    Alternately, this  acknowledgment may  appear in the software itself,  if
+    and wherever such third-party acknowledgments normally appear.
+ 4. The names "Fop" and  "Apache Software Foundation"  must not be used to
+    endorse  or promote  products derived  from this  software without  prior
+    written permission. For written permission, please contact
+    apache@apache.org.
+ 5. Products  derived from this software may not  be called "Apache", nor may
+    "Apache" appear  in their name,  without prior written permission  of the
+    Apache Software Foundation.
+ THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES,
+ INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ FITNESS  FOR A PARTICULAR  PURPOSE ARE  DISCLAIMED.  IN NO  EVENT SHALL  THE
+ APACHE SOFTWARE  FOUNDATION  OR ITS CONTRIBUTORS  BE LIABLE FOR  ANY DIRECT,
+ INDIRECT, INCIDENTAL, SPECIAL,  EXEMPLARY, OR CONSEQUENTIAL  DAMAGES (INCLU-
+ DING, BUT NOT LIMITED TO, PROCUREMENT  OF SUBSTITUTE GOODS OR SERVICES; LOSS
+ OF USE, DATA, OR  PROFITS; OR BUSINESS  INTERRUPTION)  HOWEVER CAUSED AND ON
+ ANY  THEORY OF LIABILITY,  WHETHER  IN CONTRACT,  STRICT LIABILITY,  OR TORT
+ (INCLUDING  NEGLIGENCE OR  OTHERWISE) ARISING IN  ANY WAY OUT OF THE  USE OF
+ THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ This software  consists of voluntary contributions made  by many individuals
+ on  behalf of the Apache Software  Foundation and was  originally created by
+ James Tauber <jtauber@jtauber.com>. For more  information on the Apache 
+ Software Foundation, please see <http://www.apache.org/>.
+ */
+
 // Ant
 import org.apache.tools.ant.Task;
 import org.apache.tools.ant.BuildException;
 import org.apache.fop.apps.*;
 
 // SAX
-import org.xml.sax.Parser;
+import org.xml.sax.XMLReader;
 import org.xml.sax.InputSource;
 import org.xml.sax.SAXException;
 import org.xml.sax.SAXParseException;
@@ -18,14 +69,30 @@ import java.io.IOException;
 import java.io.FileNotFoundException;
 import java.net.URL;
 
-/* the code is adapted from Fops CommandLine class */
+
+/**
+ * extension to Ant which allows usage of Fop in the 
+ * same way as org.apache.fop.apps.CommandLine (the code is adapted from this class)
+ * Gets input and output filenames from the script file <br/>
+ * needed libraries: Sax 2 parser (defaults to Xerces-J), Jimi for images, w3c.jar 
+ * containing org.w3c.dom.svg etc. for svg support
+ */
+
 public class Fop {
   String fofile, pdffile;
   
+  /**
+   * sets the name of the input file
+   * @param String name of the input fo file 
+   */
   public void setFofile(String fofile) {
     this.fofile = fofile;
   }
   
+  /**
+   * sets the name of the output file
+   * @param String name of the output pdf file 
+   */
   public void setPdffile(String pdffile) {
     this.pdffile = pdffile;
   }
@@ -37,26 +104,29 @@ public class Fop {
    *
    * @return the created SAX parser
    */
-  static Parser createParser() {
-    String parserClassName = System.getProperty("org.xml.sax.parser");
+  static XMLReader createParser() {
+    String parserClassName =
+        System.getProperty("org.xml.sax.parser");
     if (parserClassName == null) {
-      parserClassName = "org.apache.xerces.parsers.SAXParser";
+        parserClassName = "org.apache.xerces.parsers.SAXParser";
     }
-    System.err.println("using SAX parser " + parserClassName);
+    System.out.println("using SAX parser " + parserClassName);
 
     try {
-      return (Parser) Class.forName(parserClassName).newInstance();
+        return (XMLReader)
+          Class.forName(parserClassName).newInstance();
     } catch (ClassNotFoundException e) {
-      System.err.println("Could not find " + parserClassName);
+        System.err.println("Could not find " + parserClassName);
     } catch (InstantiationException e) {
-      System.err.println("Could not instantiate " + parserClassName);
+        System.err.println("Could not instantiate "
+                       + parserClassName);
     } catch (IllegalAccessException e) {
-      System.err.println("Could not access " + parserClassName);
+        System.err.println("Could not access " + parserClassName);
     } catch (ClassCastException e) {
-      System.err.println(parserClassName + " is not a SAX driver"); 
+        System.err.println(parserClassName + " is not a SAX driver"); 
     }
     return null;
-  }
+  }  // end: createParser
 
   /**
    * create an InputSource from a file name
@@ -81,8 +151,12 @@ public class Fop {
     catch (java.net.MalformedURLException e) {
         throw new Error("unexpected MalformedURLException");
     }
-  }
+  }  // end: fileInputSource
 
+  /**
+   * main method, starts execution of this task
+   * 
+   */
   public void execute () throws BuildException {
     boolean errors = false;
     String version = Version.getVersion();
@@ -94,29 +168,38 @@ public class Fop {
       System.err.println("Task Fop - ERROR: Formatting objects file " + fofile + " missing.");
     }
   
-    Parser parser = createParser();
+    XMLReader parser = createParser();
   
     if (parser == null) {
         System.err.println("Task Fop - ERROR: Unable to create SAX parser");
         errors = true;
     }
 
+    // setting the parser features
+    try {
+      parser.setFeature("http://xml.org/sax/features/namespace-prefixes", true);
+    } catch (SAXException e) {
+      System.err.println("Error in setting up parser feature namespace-prefixes");
+      System.err.println("You need a parser which supports SAX version 2");  
+      System.exit(1);  
+    }
+
     if (!errors) {
       try {
-          Driver driver = new Driver();
-          driver.setRenderer("org.apache.fop.render.pdf.PDFRenderer", version);
-          driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");
-          driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");
-          driver.setWriter(new PrintWriter(new FileWriter(pdffile)));
-          driver.buildFOTree(parser, fileInputSource(fofile));
-          driver.format();
-          driver.render();
+        Driver driver = new Driver();
+        driver.setRenderer("org.apache.fop.render.pdf.PDFRenderer", version);
+        driver.addElementMapping("org.apache.fop.fo.StandardElementMapping");
+        driver.addElementMapping("org.apache.fop.svg.SVGElementMapping");
+        driver.setWriter(new PrintWriter(new FileWriter(pdffile)));
+        driver.buildFOTree(parser, fileInputSource(fofile));
+        driver.format();
+        driver.render();
       } catch (Exception e) {
-          System.err.println("Task Fop - FATAL ERROR: " + e.getMessage());
-          System.exit(1);
+        System.err.println("Task Fop - FATAL ERROR: " + e.getMessage());
+        System.exit(1);
       }
     }
     System.out.println("=======================\n");  
-  }
+  } // end: execute
 }