01: /*
02: * Fast Infoset ver. 0.1 software ("Software")
03: *
04: * Copyright, 2004-2005 Sun Microsystems, Inc. All Rights Reserved.
05: *
06: * Software is licensed under the Apache License, Version 2.0 (the "License");
07: * you may not use this file except in compliance with the License. You may
08: * obtain a copy of the License at:
09: *
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: package com.sun.xml.fastinfoset.tools;
40:
41: import com.sun.xml.fastinfoset.stax.StAXDocumentSerializer;
42: import java.io.InputStream;
43: import java.io.OutputStream;
44: import javax.xml.parsers.SAXParser;
45: import javax.xml.parsers.SAXParserFactory;
46: import org.xml.sax.InputSource;
47: import org.xml.sax.XMLReader;
48:
49: public class XML_SAX_StAX_FI extends TransformInputOutput {
50:
51: public XML_SAX_StAX_FI() {
52: }
53:
54: public void parse(InputStream xml, OutputStream finf,
55: String workingDirectory) throws Exception {
56: StAXDocumentSerializer documentSerializer = new StAXDocumentSerializer();
57: documentSerializer.setOutputStream(finf);
58:
59: SAX2StAXWriter saxTostax = new SAX2StAXWriter(
60: documentSerializer);
61:
62: SAXParserFactory saxParserFactory = SAXParserFactory
63: .newInstance();
64: saxParserFactory.setNamespaceAware(true);
65: SAXParser saxParser = saxParserFactory.newSAXParser();
66:
67: XMLReader reader = saxParser.getXMLReader();
68: reader.setProperty(
69: "http://xml.org/sax/properties/lexical-handler",
70: saxTostax);
71: reader.setContentHandler(saxTostax);
72:
73: if (workingDirectory != null) {
74: reader
75: .setEntityResolver(createRelativePathResolver(workingDirectory));
76: }
77: reader.parse(new InputSource(xml));
78:
79: xml.close();
80: finf.close();
81: }
82:
83: public void parse(InputStream xml, OutputStream finf)
84: throws Exception {
85: parse(xml, finf, null);
86: }
87:
88: public static void main(String[] args) throws Exception {
89: XML_SAX_StAX_FI s = new XML_SAX_StAX_FI();
90: s.parse(args);
91: }
92:
93: }
|