KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > sax > ReaderTest


1 /*--
2
3  Copyright (C) 2000 Brett McLaughlin & Jason Hunter.
4  All rights reserved.
5  
6  Redistribution and use in source and binary forms, with or without
7  modification, are permitted provided that the following conditions
8  are met:
9  
10  1. Redistributions of source code must retain the above copyright
11     notice, this list of conditions, and the following disclaimer.
12  
13  2. Redistributions in binary form must reproduce the above copyright
14     notice, this list of conditions, and the disclaimer that follows
15     these conditions in the documentation and/or other materials
16     provided with the distribution.
17
18  3. The name "JDOM" must not be used to endorse or promote products
19     derived from this software without prior written permission. For
20     written permission, please contact license@jdom.org.
21  
22  4. Products derived from this software may not be called "JDOM", nor
23     may "JDOM" appear in their name, without prior written permission
24     from the JDOM Project Management (pm@jdom.org).
25  
26  In addition, we request (but do not require) that you include in the
27  end-user documentation provided with the redistribution and/or in the
28  software itself an acknowledgement equivalent to the following:
29      "This product includes software developed by the
30       JDOM Project (http://www.jdom.org/)."
31  Alternatively, the acknowledgment may be graphical using the logos
32  available at http://www.jdom.org/images/logos.
33
34  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
35  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
36  OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
37  DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
38  CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
39  SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
40  LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
41  USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
42  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
43  OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
44  OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
45  SUCH DAMAGE.
46
47  This software consists of voluntary contributions made by many
48  individuals on behalf of the JDOM Project and was originally
49  created by Brett McLaughlin <brett@jdom.org> and
50  Jason Hunter <jhunter@jdom.org>. For more information on the
51  JDOM Project, please see <http://www.jdom.org/>.
52  
53  */

54 package sax;
55
56 import java.io.InputStream JavaDoc;
57 import java.io.StringReader JavaDoc;
58 import java.io.StringWriter JavaDoc;
59
60 import org.xml.sax.InputSource JavaDoc;
61 import org.xml.sax.XMLReader JavaDoc;
62
63 import org.jdom.Document;
64 import org.jdom.input.SAXBuilder;
65 import org.jdom.output.XMLOutputter;
66
67 /**
68  * Tests DocumentReader
69  *
70  * @author joe.bowbeer
71  */

72 public class ReaderTest {
73
74     /** Creates new ReaderTest */
75     public ReaderTest() {
76     }
77
78     /**
79     * @param args the command line arguments
80     */

81     public static void main (String JavaDoc args[]) throws Exception JavaDoc {
82
83         /* XMLWriter for viewing SAX events. */
84         
85         XMLWriter echo = new XMLWriter();
86         
87         /* Build document from xml file. */
88         
89         SAXBuilder builder = new SAXBuilder();
90         builder.setXMLFilter(echo);
91         InputStream JavaDoc in = FilterTest.class.getResourceAsStream("test2.xml");
92
93         System.out.println(" -- SAXBuilder(test2.xml), echo by XMLWriter -- \n");
94         Document doc = builder.build(in);
95
96         System.out.println(" -- DocumentReader(doc) output by XMLWriter --\n");
97         XMLReader JavaDoc parser = new DocumentReader(doc);
98         echo.setParent(parser);
99         StringWriter JavaDoc writer = new StringWriter JavaDoc();
100         parser = new XMLWriter(echo, writer);
101         parser.parse((InputSource JavaDoc)null);
102
103         /* Reconstitute document from regurgitated string. */
104         
105         builder = new SAXBuilder();
106         builder.setXMLFilter(echo);
107         String JavaDoc xml = writer.toString();
108
109         System.out.println(" -- xml string--\n");
110         doc = builder.build(new StringReader JavaDoc(xml));
111
112         System.out.println(" -- SAXBuilder(xml) output by XMLOutputter --\n");
113         XMLOutputter outputter = new XMLOutputter();
114         outputter.output(doc, System.out);
115
116         System.out.println("\n");
117     }
118
119 }
120
Popular Tags