Save This Page
Home » Xerces-J-src.2.9.1 » dom » serialize » [javadoc | source]
    1   /*
    2    * The Apache Software License, Version 1.1
    3    *
    4    *
    5    * Copyright (c) 2000 The Apache Software Foundation.  All rights 
    6    * reserved.
    7    *
    8    * Redistribution and use in source and binary forms, with or without
    9    * modification, are permitted provided that the following conditions
   10    * are met:
   11    *
   12    * 1. Redistributions of source code must retain the above copyright
   13    *    notice, this list of conditions and the following disclaimer. 
   14    *
   15    * 2. Redistributions in binary form must reproduce the above copyright
   16    *    notice, this list of conditions and the following disclaimer in
   17    *    the documentation and/or other materials provided with the
   18    *    distribution.
   19    *
   20    * 3. The end-user documentation included with the redistribution,
   21    *    if any, must include the following acknowledgment:  
   22    *       "This product includes software developed by the
   23    *        Apache Software Foundation (http://www.apache.org/)."
   24    *    Alternately, this acknowledgment may appear in the software itself,
   25    *    if and wherever such third-party acknowledgments normally appear.
   26    *
   27    * 4. The names "Xerces" and "Apache Software Foundation" must
   28    *    not be used to endorse or promote products derived from this
   29    *    software without prior written permission. For written 
   30    *    permission, please contact apache@apache.org.
   31    *
   32    * 5. Products derived from this software may not be called "Apache",
   33    *    nor may "Apache" appear in their name, without prior written
   34    *    permission of the Apache Software Foundation.
   35    *
   36    * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
   37    * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
   38    * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
   39    * DISCLAIMED.  IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
   40    * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   41    * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
   42    * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
   43    * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
   44    * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
   45    * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
   46    * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   47    * SUCH DAMAGE.
   48    * ====================================================================
   49    *
   50    * This software consists of voluntary contributions made by many
   51    * individuals on behalf of the Apache Software Foundation and was
   52    * originally based on software copyright (c) 1999, International
   53    * Business Machines, Inc., http://www.apache.org.  For more
   54    * information on the Apache Software Foundation, please see
   55    * <http://www.apache.org/>.
   56    */
   57   
   58   package dom.serialize;
   59   import java.io.ObjectOutputStream;
   60   import org.apache.xerces.parsers.DOMParser;
   61   import org.apache.xerces.dom.DocumentImpl;
   62   import org.apache.xerces.dom.DeferredDocumentImpl;
   63   import org.w3c.dom.NodeList;
   64   import org.apache.xerces.dom.NodeImpl;
   65   import org.w3c.dom.Document;
   66   import java.io.FileOutputStream;
   67   import org.w3c.dom.Node;
   68   import dom.DOMWriter;
   69   
   70   
   71   /**
   72    * This testcase tests the Java Serialization
   73    * of the DOM.
   74    * I wrote this to test this capability for
   75    * regresion
   76    * 
   77    * @author Jeffrey Rodriguez
   78    * @version $id$
   79    * @see                      TestSerializeDOMOut
   80    */
   81   
   82   
   83   public class TestSerializeDOMOut
   84   {          
   85   
   86       public TestSerializeDOMOut(){
   87       }
   88   
   89         /**
   90        * Deserializes Java DOM Object 
   91        * 
   92        * @param nameSerializeFile
   93        * @return 
   94        */
   95       public void serializeDOM( Document doc, String nameSerializedFile ){
   96           try {
   97               ObjectOutputStream out               =
   98                                 new ObjectOutputStream( new FileOutputStream( nameSerializedFile ) );
   99               out.writeObject(doc);
  100               out.close();
  101   
  102           } catch ( Exception ex ) {
  103               ex.printStackTrace();
  104           }
  105       }
  106   
  107   
  108       public static void main (String[] argv) 
  109       { 
  110   
  111           if ( argv.length != 1 ) {
  112               System.out.println("Error - Usage: java TestOut yourFile.xml" );
  113               System.exit(1);
  114           }
  115   
  116           String    xmlFilename = argv[0];
  117   
  118   
  119           try {
  120               DOMParser parser     = new DOMParser();
  121   
  122               parser.parse( xmlFilename ); 
  123   
  124               DocumentImpl doc     = (DocumentImpl) parser.getDocument();
  125   
  126               int indexOfextension = xmlFilename.indexOf("." );
  127   
  128   
  129   
  130               String nameOfSerializedFile = null;
  131   
  132               if ( indexOfextension == -1 ) {
  133                   nameOfSerializedFile = xmlFilename +".ser" ;
  134               } else {
  135                   nameOfSerializedFile = 
  136                   xmlFilename.substring(0,indexOfextension) + ".ser";
  137               }
  138   
  139               System.out.println( "Writing Serialize DOM  to file = " + nameOfSerializedFile ); 
  140   
  141   
  142               FileOutputStream fileOut =  new FileOutputStream( nameOfSerializedFile );
  143   
  144   
  145               TestSerializeDOMOut  tstOut = new TestSerializeDOMOut();
  146   
  147               tstOut.serializeDOM( doc, nameOfSerializedFile );
  148   
  149   
  150               System.out.println( "Reading Serialize DOM from " + nameOfSerializedFile );
  151   
  152   
  153               TestSerializeDOMIn    tstIn  = new TestSerializeDOMIn();
  154               doc           = tstIn.deserializeDOM( nameOfSerializedFile );
  155   
  156               DOMWriter prettyWriter = new DOMWriter( false );
  157               System.out.println( "Here is the whole Document" );
  158               prettyWriter.print(  doc.getDocumentElement() );
  159           } catch ( Exception ex ){
  160               ex.printStackTrace();
  161           }
  162       } 
  163   }
  164   

Save This Page
Home » Xerces-J-src.2.9.1 » dom » serialize » [javadoc | source]