java/alt2xml-cli/src/cz/frantovo/alt2xml/cli/CLI.java
author František Kučera <franta-hg@frantovo.cz>
Sat, 07 Jun 2014 11:23:58 +0200
changeset 17 64358dd0999f
parent 16 b2fbb3570ae1
child 18 3f90b37898f6
permissions -rw-r--r--
AbstractAlt2XmlReader
     1 /**
     2  * Alt2XML
     3  * Copyright © 2014 František Kučera (frantovo.cz)
     4  *
     5  * This program is free software: you can redistribute it and/or modify
     6  * it under the terms of the GNU General Public License as published by
     7  * the Free Software Foundation, either version 3 of the License, or
     8  * (at your option) any later version.
     9  *
    10  * This program is distributed in the hope that it will be useful,
    11  * but WITHOUT ANY WARRANTY; without even the implied warranty of
    12  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    13  * GNU General Public License for more details.
    14  *
    15  * You should have received a copy of the GNU General Public License
    16  * along with this program. If not, see <http://www.gnu.org/licenses/>.
    17  */
    18 package cz.frantovo.alt2xml.cli;
    19 
    20 import cz.frantovo.alt2xml.ParserFactory;
    21 import java.io.InputStream;
    22 import java.io.OutputStream;
    23 import javax.xml.parsers.SAXParser;
    24 import javax.xml.parsers.SAXParserFactory;
    25 import javax.xml.stream.XMLOutputFactory;
    26 import javax.xml.stream.XMLStreamWriter;
    27 import org.xml.sax.helpers.DefaultHandler;
    28 
    29 /**
    30  *
    31  * @author fiki
    32  */
    33 public class CLI {
    34 
    35 	public static void main(String[] args) throws Exception {
    36 		/**
    37 		 * Použijeme standardní vstup a výstup:
    38 		 */
    39 		InputStream vstup = System.in;
    40 		OutputStream výstup = System.out;
    41 
    42 		/**
    43 		 * Serializujeme data do XML.
    44 		 * To normálně vůbec není potřeba – data se do tvaru proudu obsahujícího ostré závorky
    45 		 * vůbec nedostanou – zpracováváme události (volání javovských metod – začátky a konce
    46 		 * elementů atd.)
    47 		 * a z nich např. deserializujeme nějaké naše objekty, provádíme nějaké akce, nebo třeba
    48 		 * stavíme DOM.
    49 		 */
    50 		XMLOutputFactory xmlOutputFactory = XMLOutputFactory.newFactory();
    51 		XMLStreamWriter w = xmlOutputFactory.createXMLStreamWriter(výstup);
    52 		DefaultHandler h = new EchoContentHandler(w);
    53 
    54 		/**
    55 		 * Parsujeme JSON a děláme z něj XML:
    56 		 */
    57 		SAXParserFactory t = SAXParserFactory.newInstance(ParserFactory.class.getName(), null);
    58 		SAXParser p = t.newSAXParser();
    59 		p.parse(vstup, h);
    60 	}
    61 }