001: /*--
002:
003: Copyright (C) 2000 Brett McLaughlin & Jason Hunter.
004: All rights reserved.
005:
006: Redistribution and use in source and binary forms, with or without
007: modification, are permitted provided that the following conditions
008: are met:
009:
010: 1. Redistributions of source code must retain the above copyright
011: notice, this list of conditions, and the following disclaimer.
012:
013: 2. Redistributions in binary form must reproduce the above copyright
014: notice, this list of conditions, and the disclaimer that follows
015: these conditions in the documentation and/or other materials
016: provided with the distribution.
017:
018: 3. The name "JDOM" must not be used to endorse or promote products
019: derived from this software without prior written permission. For
020: written permission, please contact license@jdom.org.
021:
022: 4. Products derived from this software may not be called "JDOM", nor
023: may "JDOM" appear in their name, without prior written permission
024: from the JDOM Project Management (pm@jdom.org).
025:
026: In addition, we request (but do not require) that you include in the
027: end-user documentation provided with the redistribution and/or in the
028: software itself an acknowledgement equivalent to the following:
029: "This product includes software developed by the
030: JDOM Project (http://www.jdom.org/)."
031: Alternatively, the acknowledgment may be graphical using the logos
032: available at http://www.jdom.org/images/logos.
033:
034: THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
035: WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
036: OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
037: DISCLAIMED. IN NO EVENT SHALL THE JDOM AUTHORS OR THE PROJECT
038: CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
039: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
040: LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
041: USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
042: ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
043: OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
044: OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
045: SUCH DAMAGE.
046:
047: This software consists of voluntary contributions made by many
048: individuals on behalf of the JDOM Project and was originally
049: created by Brett McLaughlin <brett@jdom.org> and
050: Jason Hunter <jhunter@jdom.org>. For more information on the
051: JDOM Project, please see <http://www.jdom.org/>.
052:
053: */
054: package sax;
055:
056: import java.io.InputStream;
057:
058: import org.jdom.Document;
059: import org.jdom.input.SAXBuilder;
060: import org.jdom.output.XMLOutputter;
061:
062: /**
063: * Tests SAXBuilder's XMLFilter feature
064: *
065: * @author joe.bowbeer
066: */
067: public class FilterTest {
068:
069: /** Creates new FilterTest */
070: public FilterTest() {
071: }
072:
073: /**
074: * @param args the command line arguments
075: */
076: public static void main(String args[]) throws Exception {
077:
078: /* XMLWriter for viewing unfiltered input. */
079:
080: XMLWriter echo = new XMLWriter();
081:
082: /* Add pretty formatting to unformatted xml file. */
083:
084: SAXBuilder builder = new SAXBuilder();
085: DataFormatFilter format = new DataFormatFilter(echo);
086: format.setIndentStep(4);
087: builder.setXMLFilter(format);
088: InputStream in = FilterTest.class
089: .getResourceAsStream("test1.xml");
090:
091: System.out.println(" -- test1.xml unfiltered -- \n");
092: Document doc = builder.build(in);
093:
094: System.out
095: .println(" -- test1.xml filtered by DataFormatFilter --\n");
096: XMLOutputter outputter = new XMLOutputter();
097: outputter.output(doc, System.out);
098:
099: System.out.println("\n");
100:
101: /* Remove pretty formatting from formatted xml file. */
102:
103: builder = new SAXBuilder();
104: builder.setXMLFilter(new DataUnformatFilter(echo));
105: in = FilterTest.class.getResourceAsStream("test2.xml");
106:
107: System.out.println(" -- test2.xml unfiltered --\n");
108: doc = builder.build(in);
109:
110: System.out
111: .println(" -- test2.xml filtered by DataUnformatFilter --\n");
112: outputter = new XMLOutputter();
113: outputter.output(doc, System.out);
114:
115: System.out.println("\n");
116: }
117:
118: }
|