KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > xml > fastinfoset > tools > XML_SAX_FI


1 /*
2  * Fast Infoset ver. 0.1 software ("Software")
3  *
4  * Copyright, 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
5  *
6  * Software is licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License. You may
8  * obtain a copy of the License at:
9  *
10  * http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
14  * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
15  * License for the specific language governing permissions and limitations.
16  *
17  * Sun supports and benefits from the global community of open source
18  * developers, and thanks the community for its important contributions and
19  * open standards-based technology, which Sun has adopted into many of its
20  * products.
21  *
22  * Please note that portions of Software may be provided with notices and
23  * open source licenses from such communities and third parties that govern the
24  * use of those portions, and any licenses granted hereunder do not alter any
25  * rights and obligations you may have under such open source licenses,
26  * however, the disclaimer of warranty and limitation of liability provisions
27  * in this License will apply to all Software in this distribution.
28  *
29  * You acknowledge that the Software is not designed, licensed or intended
30  * for use in the design, construction, operation or maintenance of any nuclear
31  * facility.
32  *
33  * Apache License
34  * Version 2.0, January 2004
35  * http://www.apache.org/licenses/
36  *
37  */

38
39
40 package com.sun.xml.fastinfoset.tools;
41
42 import com.sun.xml.fastinfoset.sax.SAXDocumentSerializer;
43 import java.io.InputStream JavaDoc;
44 import java.io.OutputStream JavaDoc;
45 import javax.xml.parsers.SAXParser JavaDoc;
46 import javax.xml.parsers.SAXParserFactory JavaDoc;
47 import javax.xml.parsers.ParserConfigurationException JavaDoc;
48 import java.io.Reader JavaDoc;
49 import org.xml.sax.InputSource JavaDoc;
50
51 public class XML_SAX_FI extends TransformInputOutput {
52     
53     public XML_SAX_FI() {
54     }
55
56     public void parse(InputStream JavaDoc xml, OutputStream JavaDoc finf) throws Exception JavaDoc {
57         SAXParser JavaDoc saxParser = getParser();
58         SAXDocumentSerializer documentSerializer = getSerializer(finf);
59         
60         saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", documentSerializer);
61         saxParser.parse(xml, documentSerializer);
62     }
63         
64     public void convert(Reader JavaDoc reader, OutputStream JavaDoc finf) throws Exception JavaDoc {
65         InputSource JavaDoc is = new InputSource JavaDoc(reader);
66         
67         SAXParser JavaDoc saxParser = getParser();
68         SAXDocumentSerializer documentSerializer = getSerializer(finf);
69         
70         saxParser.setProperty("http://xml.org/sax/properties/lexical-handler", documentSerializer);
71         saxParser.parse(is, documentSerializer);
72     }
73     
74     private SAXParser JavaDoc getParser() {
75         SAXParserFactory JavaDoc saxParserFactory = SAXParserFactory.newInstance();
76         saxParserFactory.setNamespaceAware(true);
77         try {
78             return saxParserFactory.newSAXParser();
79         } catch (Exception JavaDoc e)
80         {
81             return null;
82         }
83     }
84     
85     private SAXDocumentSerializer getSerializer(OutputStream JavaDoc finf) {
86         SAXDocumentSerializer documentSerializer = new SAXDocumentSerializer();
87         documentSerializer.setOutputStream(finf);
88         return documentSerializer;
89     }
90     public static void main(String JavaDoc[] args) throws Exception JavaDoc {
91         XML_SAX_FI s = new XML_SAX_FI();
92         s.parse(args);
93     }
94 }
95
Popular Tags