3 * Copyright © 2014 František Kučera (frantovo.cz)
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.
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.
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/>.
18 package cz.frantovo.alt2xml.cli;
20 import javax.xml.stream.XMLStreamException;
21 import javax.xml.stream.XMLStreamWriter;
22 import org.xml.sax.Attributes;
23 import org.xml.sax.SAXException;
24 import org.xml.sax.helpers.DefaultHandler;
27 * Slouží k převodu právě parsovaného XML zpět na XML.
28 * Určen pro testování a ladění a pro použití s neobvyklými „XML“ parsery,
29 * které nečtou XML ale jiný jazyk (např. JSON, INI atd.), ale používají stejné rozhraní (SAX).
31 * TODO: další typy uzlů a jmenné prostory.
34 public class EchoContentHandler extends DefaultHandler {
36 private XMLStreamWriter w;
39 * @param writer kam se bude vypisovat XML.
41 public EchoContentHandler(XMLStreamWriter writer) {
46 public void startDocument() throws SAXException {
48 w.writeStartDocument();
49 } catch (XMLStreamException e) {
50 throw new SAXException(e);
55 public void endDocument() throws SAXException {
59 } catch (XMLStreamException e) {
60 throw new SAXException(e);
65 public void startElement(String uri, String localName, String qName, Attributes attributes) throws SAXException {
67 w.writeStartElement(qName);
69 if (attributes != null) {
70 for (int i = 0; i < attributes.getLength(); i++) {
71 w.writeAttribute(attributes.getQName(i), attributes.getValue(i));
76 } catch (XMLStreamException e) {
77 throw new SAXException(e);
82 public void endElement(String uri, String localName, String qName) throws SAXException {
86 } catch (XMLStreamException e) {
87 throw new SAXException(e);
92 public void characters(char[] ch, int start, int length) throws SAXException {
94 w.writeCharacters(ch, start, length);
96 } catch (XMLStreamException e) {
97 throw new SAXException(e);