You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xerces.apache.org by je...@locus.apache.org on 2000/06/23 01:58:22 UTC

cvs commit: xml-xerces/java/samples/sax SAX2Writer.java SAXWriter.java

jeffreyr    00/06/22 16:58:20

  Modified:    java/samples/sax SAX2Writer.java SAXWriter.java
  Log:
  SAXWriter and SAX2Writer with stdopt
  
  Revision  Changes    Path
  1.3       +91 -57    xml-xerces/java/samples/sax/SAX2Writer.java
  
  Index: SAX2Writer.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/samples/sax/SAX2Writer.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SAX2Writer.java	2000/05/10 00:38:34	1.2
  +++ SAX2Writer.java	2000/06/22 23:58:16	1.3
  @@ -57,6 +57,7 @@
   
   package sax;                    
                       
  +import util.Arguments;
   import java.io.OutputStreamWriter;
   import java.io.PrintWriter;
   import java.io.UnsupportedEncodingException;
  @@ -74,7 +75,7 @@
    * register a SAX2 ContentHandler and receive the callbacks in
    * order to print a document that is parsed.
    *
  - * @version $Id: SAX2Writer.java,v 1.2 2000/05/10 00:38:34 lehors Exp $
  + * @version $Id: SAX2Writer.java,v 1.3 2000/06/22 23:58:16 jeffreyr Exp $
    */
   public class SAX2Writer 
       extends DefaultHandler {
  @@ -87,6 +88,12 @@
       private static final String 
           DEFAULT_PARSER_NAME = "org.apache.xerces.parsers.SAXParser";
   
  +
  +    private static boolean setValidation    = false; //defaults
  +    private static boolean setNameSpaces    = true;
  +    private static boolean setSchemaSupport = true;
  +
  +
       //
       // Data
       //
  @@ -128,6 +135,15 @@
               DefaultHandler handler = new SAX2Writer(canonical);
   
               XMLReader parser = (XMLReader)Class.forName(parserName).newInstance();
  +
  +            parser.setFeature( "http://xml.org/sax/features/validation", 
  +                                                setValidation);
  +            parser.setFeature( "http://xml.org/sax/features/namespaces",
  +                                                setNameSpaces );
  +            parser.setFeature( "http://apache.org/xml/features/validation/schema",
  +                                                setSchemaSupport );
  +
  +
               parser.setContentHandler(handler);
               parser.setErrorHandler(handler);
               parser.parse(uri);
  @@ -338,62 +354,80 @@
   
       /** Main program entry point. */
       public static void main(String argv[]) {
  +       Arguments argopt = new Arguments();
  +       argopt.setUsage( new String[] 
  +                        { "usage: java sax.SAX2Writer (options) uri ...","",
  +                            "options:",
  +                            "  -p name  Specify SAX parser by name.",
  +                            "           Default parser: "+DEFAULT_PARSER_NAME,
  +                            "  -c       Canonical XML output.",
  +                            "  -v       Turn on validation.",
  +                            "  -w       Warmup the parser before timing.",
  +                            "  -n turn on  Namespace  - default",
  +                            "  -s turn on  Schema support - default",
  +                            "  -N turn off Namespace",
  +                            "  -V turn off Validation",
  +                            "  -h       This help screen."}  );
  +
  +
  +       // is there anything to do?
  +       if (argv.length == 0) {
  +           argopt.printUsage();
  +           System.exit(1);
  +       }
  +
  +       // vars
  +       boolean canonical  = false;
  +       String  parserName = DEFAULT_PARSER_NAME;
  +
  +
  +       argopt.parseArgumentTokens(argv);
  +
  +       int   c;
  +       while ( (c =  argopt.getArguments()) != -1 ){
  +           switch (c) {
  +           case 'c':
  +               canonical     = true;
  +               break;
  +           case 'C':
  +               canonical     = false;
  +               break;
  +           case 'v':
  +               setValidation = true;
  +               break;
  +           case 'V':
  +               setValidation = false;
  +               break;
  +           case 'N':
  +               setNameSpaces = false;
  +               break;
  +           case 'n':
  +               setNameSpaces = true;
  +               break;
  +           case 'p':
  +               parserName = argopt.getStringParameter();
  +               break;
  +           case 's':
  +               setSchemaSupport = true;
  +               break;
  +           case 'S':
  +               setSchemaSupport = false;
  +               break;
  +           case '?':
  +           case 'h':
  +           case '-':
  +               argopt.printUsage();
  +               System.exit(1);
  +               break;
  +           default:
  +               break;
  +           }
  +       }
  +
  +       // print 
  +      String arg = argopt.getStringParameter();
  +      System.err.println(arg+':');
  +      print(parserName, arg, canonical);
   
  -        // is there anything to do?
  -        if (argv.length == 0) {
  -            printUsage();
  -            System.exit(1);
  -        }
  -
  -        // vars
  -        String  parserName = DEFAULT_PARSER_NAME;
  -        boolean canonical  = false;
  -
  -        // check parameters
  -        for (int i = 0; i < argv.length; i++) {
  -            String arg = argv[i];
  -
  -            // options
  -            if (arg.startsWith("-")) {
  -                if (arg.equals("-p")) {
  -                    if (i == argv.length - 1) {
  -                        System.err.println("error: missing parser name");
  -                        System.exit(1);
  -                    }
  -                    parserName = argv[++i];
  -                    continue;
  -                }
  -
  -                if (arg.equals("-c")) {
  -                    canonical = true;
  -                    continue;
  -                }
  -
  -                if (arg.equals("-h")) {
  -                    printUsage();
  -                    System.exit(1);
  -                }
  -            }
  -
  -            // print uri
  -            System.err.println(arg+':');
  -            print(parserName, arg, canonical);
  -            System.out.println();
  -        }
  -
       } // main(String[])
  -
  -    /** Prints the usage. */
  -    private static void printUsage() {
  -
  -        System.err.println("usage: java sax.SAX2Writer (options) uri ...");
  -        System.err.println();
  -        System.err.println("options:");
  -        System.err.println("  -p name  Specify SAX parser by name.");
  -        System.err.println("           Default parser: "+DEFAULT_PARSER_NAME);
  -        System.err.println("  -c       Canonical XML output.");
  -        System.err.println("  -h       This help screen.");
  -
  -    } // printUsage()
  -
   } // class SAX2Writer
  
  
  
  1.3       +12 -4     xml-xerces/java/samples/sax/SAXWriter.java
  
  Index: SAXWriter.java
  ===================================================================
  RCS file: /home/cvs/xml-xerces/java/samples/sax/SAXWriter.java,v
  retrieving revision 1.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- SAXWriter.java	2000/06/22 22:14:53	1.2
  +++ SAXWriter.java	2000/06/22 23:58:17	1.3
  @@ -370,6 +370,7 @@
                                "options:",
                                "  -p name  Specify SAX parser by name.",
                                "           Default parser: "+DEFAULT_PARSER_NAME,
  +                             "  -c       Canonical XML output.",
                                "  -v       Turn on validation.",
                                "  -w       Warmup the parser before timing.",
                                "  -n turn on  Namespace  - default",
  @@ -386,13 +387,21 @@
           }
   
           // vars
  +        boolean canonical  = false;
           String  parserName = DEFAULT_PARSER_NAME;
   
  +
           argopt.parseArgumentTokens(argv);
   
           int   c;
           while ( (c =  argopt.getArguments()) != -1 ){
               switch (c) {
  +            case 'c':
  +                canonical     = true;
  +                break;
  +            case 'C':
  +                canonical     = false;
  +                break;
               case 'v':
                   setValidation = true;
                   break;
  @@ -426,10 +435,9 @@
           }
   
           // print 
  -        for ( int j = 0; j<argopt.stringParameterLeft(); j++){
  -            print(parserName, argopt.getStringParameter(), setValidation);
  -        }
  -
  +       String arg = argopt.getStringParameter();
  +       System.err.println(arg+':');
  +       print(parserName, arg, canonical);
   
           ///