[Devel] reimplementing using visitor pattern
Changing to the visitor pattern will make it easier to implement a SAX reader and writer
This commit is contained in:
parent
3310a8d471
commit
0605dd784f
332
pom.xml
332
pom.xml
|
@ -1,115 +1,73 @@
|
|||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ch.eitchnet</groupId>
|
||||
<artifactId>ch.eitchnet.xmlpers</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<name>ch.eitchnet.xmlpers</name>
|
||||
<url>https://github.com/eitch/ch.eitchnet.xmlpers</url>
|
||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>ch.eitchnet</groupId>
|
||||
<artifactId>ch.eitchnet.xmlpers</artifactId>
|
||||
<packaging>jar</packaging>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
<name>ch.eitchnet.xmlpers</name>
|
||||
<url>https://github.com/eitch/ch.eitchnet.xmlpers</url>
|
||||
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
<properties>
|
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||
</properties>
|
||||
|
||||
<!-- POM Reference: http://maven.apache.org/pom.html#Licenses -->
|
||||
<!-- POM Reference: http://maven.apache.org/pom.html#Licenses -->
|
||||
|
||||
<inceptionYear>2011</inceptionYear>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>GNU Lesser General Public License</name>
|
||||
<url>http://www.gnu.org/licenses/lgpl.html</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
<organization>
|
||||
<name>eitchnet.ch</name>
|
||||
<url>http://blog.eitchnet.ch</url>
|
||||
</organization>
|
||||
<developers>
|
||||
<developer>
|
||||
<id>eitch</id>
|
||||
<name>Robert von Vurg</name>
|
||||
<email>eitch@eitchnet.ch</email>
|
||||
<url>http://blog.eitchnet.ch</url>
|
||||
<organization>eitchnet.ch</organization>
|
||||
<organizationUrl>http://blog.eitchnet.ch</organizationUrl>
|
||||
<roles>
|
||||
<role>architect</role>
|
||||
<role>developer</role>
|
||||
</roles>
|
||||
<timezone>+1</timezone>
|
||||
<properties>
|
||||
<picUrl>http://localhost</picUrl>
|
||||
</properties>
|
||||
</developer>
|
||||
</developers>
|
||||
<inceptionYear>2011</inceptionYear>
|
||||
<licenses>
|
||||
<license>
|
||||
<name>GNU Lesser General Public License</name>
|
||||
<url>http://www.gnu.org/licenses/lgpl.html</url>
|
||||
<distribution>repo</distribution>
|
||||
</license>
|
||||
</licenses>
|
||||
<organization>
|
||||
<name>eitchnet.ch</name>
|
||||
<url>http://blog.eitchnet.ch</url>
|
||||
</organization>
|
||||
<developers>
|
||||
<developer>
|
||||
<id>eitch</id>
|
||||
<name>Robert von Vurg</name>
|
||||
<email>eitch@eitchnet.ch</email>
|
||||
<url>http://blog.eitchnet.ch</url>
|
||||
<organization>eitchnet.ch</organization>
|
||||
<organizationUrl>http://blog.eitchnet.ch</organizationUrl>
|
||||
<roles>
|
||||
<role>architect</role>
|
||||
<role>developer</role>
|
||||
</roles>
|
||||
<timezone>+1</timezone>
|
||||
<properties>
|
||||
<picUrl>http://localhost</picUrl>
|
||||
</properties>
|
||||
</developer>
|
||||
</developers>
|
||||
|
||||
<issueManagement>
|
||||
<system>Github Issues</system>
|
||||
<url>https://github.com/eitch/ch.eitchnet.xmlpers/issues</url>
|
||||
</issueManagement>
|
||||
<issueManagement>
|
||||
<system>Github Issues</system>
|
||||
<url>https://github.com/eitch/ch.eitchnet.xmlpers/issues</url>
|
||||
</issueManagement>
|
||||
|
||||
<!--
|
||||
<ciManagement>
|
||||
<system>continuum</system>
|
||||
<url>http://127.0.0.1:8080/continuum</url>
|
||||
<notifiers>
|
||||
<notifier>
|
||||
<type>mail</type>
|
||||
<sendOnError>true</sendOnError>
|
||||
<sendOnFailure>true</sendOnFailure>
|
||||
<sendOnSuccess>false</sendOnSuccess>
|
||||
<sendOnWarning>false</sendOnWarning>
|
||||
<configuration><address>continuum@127.0.0.1</address></configuration>
|
||||
</notifier>
|
||||
</notifiers>
|
||||
</ciManagement>
|
||||
<!-- <ciManagement> <system>continuum</system> <url>http://127.0.0.1:8080/continuum</url> <notifiers> <notifier> <type>mail</type>
|
||||
<sendOnError>true</sendOnError> <sendOnFailure>true</sendOnFailure> <sendOnSuccess>false</sendOnSuccess> <sendOnWarning>false</sendOnWarning>
|
||||
<configuration><address>continuum@127.0.0.1</address></configuration> </notifier> </notifiers> </ciManagement> <mailingLists>
|
||||
<mailingList> <name>User List</name> <subscribe>user-subscribe@127.0.0.1</subscribe> <unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe>
|
||||
<post>user@127.0.0.1</post> <archive>http://127.0.0.1/user/</archive> <otherArchives> <otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive>
|
||||
</otherArchives> </mailingList> </mailingLists> -->
|
||||
|
||||
<mailingLists>
|
||||
<mailingList>
|
||||
<name>User List</name>
|
||||
<subscribe>user-subscribe@127.0.0.1</subscribe>
|
||||
<unsubscribe>user-unsubscribe@127.0.0.1</unsubscribe>
|
||||
<post>user@127.0.0.1</post>
|
||||
<archive>http://127.0.0.1/user/</archive>
|
||||
<otherArchives>
|
||||
<otherArchive>http://base.google.com/base/1/127.0.0.1</otherArchive>
|
||||
</otherArchives>
|
||||
</mailingList>
|
||||
</mailingLists>
|
||||
-->
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/eitch/ch.eitchnet.xmlpers.git</connection>
|
||||
<developerConnection>scm:git:git@github.com:eitch/ch.eitchnet.xmlpers.git</developerConnection>
|
||||
<url>https://github.com/eitch/ch.eitchnet.xmlpers</url>
|
||||
</scm>
|
||||
|
||||
<scm>
|
||||
<connection>scm:git:https://github.com/eitch/ch.eitchnet.xmlpers.git</connection>
|
||||
<developerConnection>scm:git:git@github.com:eitch/ch.eitchnet.xmlpers.git</developerConnection>
|
||||
<url>https://github.com/eitch/ch.eitchnet.xmlpers</url>
|
||||
</scm>
|
||||
<!-- <repositories> <repository> <releases> <enabled>false</enabled> <updatePolicy>always</updatePolicy> <checksumPolicy>warn</checksumPolicy>
|
||||
</releases> <snapshots> <enabled>true</enabled> <updatePolicy>never</updatePolicy> <checksumPolicy>fail</checksumPolicy>
|
||||
</snapshots> <id>codehausSnapshots</id> <name>Codehaus Snapshots</name> <url>http://snapshots.maven.codehaus.org/maven2</url>
|
||||
<layout>default</layout> </repository> </repositories> <pluginRepositories> ... </pluginRepositories> -->
|
||||
|
||||
<!--
|
||||
<repositories>
|
||||
<repository>
|
||||
<releases>
|
||||
<enabled>false</enabled>
|
||||
<updatePolicy>always</updatePolicy>
|
||||
<checksumPolicy>warn</checksumPolicy>
|
||||
</releases>
|
||||
<snapshots>
|
||||
<enabled>true</enabled>
|
||||
<updatePolicy>never</updatePolicy>
|
||||
<checksumPolicy>fail</checksumPolicy>
|
||||
</snapshots>
|
||||
<id>codehausSnapshots</id>
|
||||
<name>Codehaus Snapshots</name>
|
||||
<url>http://snapshots.maven.codehaus.org/maven2</url>
|
||||
<layout>default</layout>
|
||||
</repository>
|
||||
</repositories>
|
||||
<pluginRepositories>
|
||||
...
|
||||
</pluginRepositories>
|
||||
-->
|
||||
|
||||
<distributionManagement>
|
||||
<repository>
|
||||
<id>deployment</id>
|
||||
|
@ -123,93 +81,93 @@
|
|||
</snapshotRepository>
|
||||
</distributionManagement>
|
||||
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.10</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.eitchnet</groupId>
|
||||
<artifactId>ch.eitchnet.utils</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
<dependencies>
|
||||
<dependency>
|
||||
<groupId>junit</groupId>
|
||||
<artifactId>junit</artifactId>
|
||||
<version>4.10</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>ch.eitchnet</groupId>
|
||||
<artifactId>ch.eitchnet.utils</artifactId>
|
||||
<version>0.1.0-SNAPSHOT</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-api</artifactId>
|
||||
<version>1.7.2</version>
|
||||
</dependency>
|
||||
<dependency>
|
||||
<groupId>org.slf4j</groupId>
|
||||
<artifactId>slf4j-log4j12</artifactId>
|
||||
<version>1.7.2</version>
|
||||
<scope>test</scope>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<version>2.9</version>
|
||||
<configuration>
|
||||
<downloadJavadocs>true</downloadJavadocs>
|
||||
<downloadSources>true</downloadSources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<build>
|
||||
<plugins>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<configuration>
|
||||
<source>1.6</source>
|
||||
<target>1.6</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>2.1.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-eclipse-plugin</artifactId>
|
||||
<version>2.9</version>
|
||||
<configuration>
|
||||
<downloadJavadocs>true</downloadJavadocs>
|
||||
<downloadSources>true</downloadSources>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
||||
<!--mainClass>ch.eitchnet.App</mainClass-->
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-compiler-plugin</artifactId>
|
||||
<version>2.3.2</version>
|
||||
<configuration>
|
||||
<source>1.6</source>
|
||||
<target>1.6</target>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>2.3</version>
|
||||
<configuration>
|
||||
<outputEncoding>UTF-8</outputEncoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-source-plugin</artifactId>
|
||||
<version>2.1.2</version>
|
||||
<executions>
|
||||
<execution>
|
||||
<id>attach-sources</id>
|
||||
<phase>verify</phase>
|
||||
<goals>
|
||||
<goal>jar-no-fork</goal>
|
||||
</goals>
|
||||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-jar-plugin</artifactId>
|
||||
<version>2.4</version>
|
||||
<configuration>
|
||||
<archive>
|
||||
<manifest>
|
||||
<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
|
||||
<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
|
||||
<!--mainClass>ch.eitchnet.App</mainClass -->
|
||||
</manifest>
|
||||
</archive>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-site-plugin</artifactId>
|
||||
<version>2.3</version>
|
||||
<configuration>
|
||||
<outputEncoding>UTF-8</outputEncoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
</plugins>
|
||||
</build>
|
||||
</project>
|
||||
|
|
|
@ -0,0 +1,432 @@
|
|||
/*
|
||||
* Copyright (c) 2012, Robert von Burg
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the XXX.
|
||||
*
|
||||
* XXX is free software: you can redistribute
|
||||
* it and/or modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the License,
|
||||
* or (at your option) any later version.
|
||||
*
|
||||
* XXX is distributed in the hope that it will
|
||||
* be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with XXX. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ch.eitchnet.xmlpers;
|
||||
|
||||
import javax.xml.namespace.NamespaceContext;
|
||||
import javax.xml.stream.XMLStreamException;
|
||||
import javax.xml.stream.XMLStreamWriter;
|
||||
|
||||
/**
|
||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||
*/
|
||||
public class FormattingXmlStreamWriter implements XMLStreamWriter {
|
||||
|
||||
private final XMLStreamWriter writer;
|
||||
|
||||
/**
|
||||
*
|
||||
* @param writer
|
||||
*/
|
||||
public FormattingXmlStreamWriter(XMLStreamWriter writer) {
|
||||
this.writer = writer;
|
||||
}
|
||||
|
||||
//
|
||||
// Start of elements
|
||||
//
|
||||
|
||||
/**
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeStartDocument()
|
||||
*/
|
||||
@Override
|
||||
public void writeStartDocument() throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeStartDocument();
|
||||
postStart();
|
||||
}
|
||||
|
||||
private void preStart() {
|
||||
|
||||
}
|
||||
|
||||
private void postStart() throws XMLStreamException {
|
||||
//this.writer.writeCharacters(new char[] { '\n' }, 0, 1);
|
||||
}
|
||||
|
||||
private void preEnd() {
|
||||
}
|
||||
|
||||
private void postEnd() {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param version
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeStartDocument(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeStartDocument(String version) throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeStartDocument(version);
|
||||
postStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param encoding
|
||||
* @param version
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeStartDocument(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeStartDocument(String encoding, String version) throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeStartDocument(encoding, version);
|
||||
postStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param localName
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeStartElement(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeStartElement(String localName) throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeStartElement(localName);
|
||||
postStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param namespaceURI
|
||||
* @param localName
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeStartElement(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeStartElement(namespaceURI, localName);
|
||||
postStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param prefix
|
||||
* @param localName
|
||||
* @param namespaceURI
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeStartElement(java.lang.String, java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeStartElement(prefix, localName, namespaceURI);
|
||||
postStart();
|
||||
}
|
||||
|
||||
//
|
||||
// End of elements
|
||||
//
|
||||
|
||||
/**
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeEndElement()
|
||||
*/
|
||||
@Override
|
||||
public void writeEndElement() throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeEndElement();
|
||||
postStart();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeEndDocument()
|
||||
*/
|
||||
@Override
|
||||
public void writeEndDocument() throws XMLStreamException {
|
||||
preStart();
|
||||
this.writer.writeEndDocument();
|
||||
postStart();
|
||||
}
|
||||
|
||||
//
|
||||
// Empty elements
|
||||
//
|
||||
|
||||
/**
|
||||
* @param namespaceURI
|
||||
* @param localName
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeEmptyElement(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException {
|
||||
preEnd();
|
||||
this.writer.writeEmptyElement(namespaceURI, localName);
|
||||
postEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param prefix
|
||||
* @param localName
|
||||
* @param namespaceURI
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeEmptyElement(java.lang.String, java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeEmptyElement(String prefix, String localName, String namespaceURI) throws XMLStreamException {
|
||||
preEnd();
|
||||
this.writer.writeEmptyElement(prefix, localName, namespaceURI);
|
||||
postEnd();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param localName
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeEmptyElement(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeEmptyElement(String localName) throws XMLStreamException {
|
||||
this.writer.writeEmptyElement(localName);
|
||||
}
|
||||
|
||||
//
|
||||
// attributes
|
||||
//
|
||||
|
||||
/**
|
||||
* @param localName
|
||||
* @param value
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeAttribute(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeAttribute(String localName, String value) throws XMLStreamException {
|
||||
this.writer.writeAttribute(localName, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param prefix
|
||||
* @param namespaceURI
|
||||
* @param localName
|
||||
* @param value
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeAttribute(java.lang.String, java.lang.String, java.lang.String,
|
||||
* java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeAttribute(String prefix, String namespaceURI, String localName, String value)
|
||||
throws XMLStreamException {
|
||||
this.writer.writeAttribute(prefix, namespaceURI, localName, value);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param namespaceURI
|
||||
* @param localName
|
||||
* @param value
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeAttribute(java.lang.String, java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeAttribute(String namespaceURI, String localName, String value) throws XMLStreamException {
|
||||
this.writer.writeAttribute(namespaceURI, localName, value);
|
||||
}
|
||||
|
||||
//
|
||||
// other
|
||||
//
|
||||
|
||||
/**
|
||||
* @param data
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeComment(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeComment(String data) throws XMLStreamException {
|
||||
this.writer.writeComment(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param target
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeProcessingInstruction(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeProcessingInstruction(String target) throws XMLStreamException {
|
||||
this.writer.writeProcessingInstruction(target);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param target
|
||||
* @param data
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeProcessingInstruction(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeProcessingInstruction(String target, String data) throws XMLStreamException {
|
||||
this.writer.writeProcessingInstruction(target, data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param data
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeCData(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeCData(String data) throws XMLStreamException {
|
||||
this.writer.writeCData(data);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param dtd
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeDTD(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeDTD(String dtd) throws XMLStreamException {
|
||||
this.writer.writeDTD(dtd);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param prefix
|
||||
* @param namespaceURI
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeNamespace(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException {
|
||||
this.writer.writeNamespace(prefix, namespaceURI);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param namespaceURI
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeDefaultNamespace(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException {
|
||||
this.writer.writeDefaultNamespace(namespaceURI);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeEntityRef(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeEntityRef(String name) throws XMLStreamException {
|
||||
this.writer.writeEntityRef(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param text
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeCharacters(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void writeCharacters(String text) throws XMLStreamException {
|
||||
this.writer.writeCharacters(text);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param text
|
||||
* @param start
|
||||
* @param len
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#writeCharacters(char[], int, int)
|
||||
*/
|
||||
@Override
|
||||
public void writeCharacters(char[] text, int start, int len) throws XMLStreamException {
|
||||
this.writer.writeCharacters(text, start, len);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param uri
|
||||
* @return
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#getPrefix(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public String getPrefix(String uri) throws XMLStreamException {
|
||||
return this.writer.getPrefix(uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param prefix
|
||||
* @param uri
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#setPrefix(java.lang.String, java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void setPrefix(String prefix, String uri) throws XMLStreamException {
|
||||
this.writer.setPrefix(prefix, uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param uri
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#setDefaultNamespace(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public void setDefaultNamespace(String uri) throws XMLStreamException {
|
||||
this.writer.setDefaultNamespace(uri);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param context
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#setNamespaceContext(javax.xml.namespace.NamespaceContext)
|
||||
*/
|
||||
@Override
|
||||
public void setNamespaceContext(NamespaceContext context) throws XMLStreamException {
|
||||
this.writer.setNamespaceContext(context);
|
||||
}
|
||||
|
||||
/**
|
||||
* @return
|
||||
* @see javax.xml.stream.XMLStreamWriter#getNamespaceContext()
|
||||
*/
|
||||
@Override
|
||||
public NamespaceContext getNamespaceContext() {
|
||||
return this.writer.getNamespaceContext();
|
||||
}
|
||||
|
||||
/**
|
||||
* @param name
|
||||
* @return
|
||||
* @throws IllegalArgumentException
|
||||
* @see javax.xml.stream.XMLStreamWriter#getProperty(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
public Object getProperty(String name) throws IllegalArgumentException {
|
||||
return this.writer.getProperty(name);
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#close()
|
||||
*/
|
||||
@Override
|
||||
public void close() throws XMLStreamException {
|
||||
this.writer.close();
|
||||
}
|
||||
|
||||
/**
|
||||
* @throws XMLStreamException
|
||||
* @see javax.xml.stream.XMLStreamWriter#flush()
|
||||
*/
|
||||
@Override
|
||||
public void flush() throws XMLStreamException {
|
||||
this.writer.flush();
|
||||
}
|
||||
}
|
|
@ -0,0 +1,64 @@
|
|||
/*
|
||||
* Copyright (c) 2012, Robert von Burg
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the XXX.
|
||||
*
|
||||
* XXX is free software: you can redistribute
|
||||
* it and/or modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the License,
|
||||
* or (at your option) any later version.
|
||||
*
|
||||
* XXX is distributed in the hope that it will
|
||||
* be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with XXX. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ch.eitchnet.xmlpers;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileWriter;
|
||||
|
||||
import javax.xml.stream.XMLOutputFactory;
|
||||
import javax.xml.stream.XMLStreamWriter;
|
||||
|
||||
/**
|
||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||
*
|
||||
*/
|
||||
public class Main {
|
||||
|
||||
public static void main(String[] args) throws Exception {
|
||||
|
||||
XMLOutputFactory factory = XMLOutputFactory.newInstance();
|
||||
|
||||
File file = new File("output.xml");
|
||||
XMLStreamWriter writer = factory.createXMLStreamWriter(new FileWriter(file));
|
||||
System.out.println("writer: " + writer.getClass().getName());
|
||||
|
||||
//writer = new com.sun.xml.internal.txw2.output.IndentingXMLStreamWriter(writer);
|
||||
writer = new FormattingXmlStreamWriter(writer);
|
||||
|
||||
writer.writeStartDocument();
|
||||
writer.writeStartElement("document");
|
||||
writer.writeStartElement("data");
|
||||
writer.writeAttribute("name", "value");
|
||||
writer.writeEndElement();
|
||||
writer.writeEndElement();
|
||||
writer.writeEndDocument();
|
||||
|
||||
writer.flush();
|
||||
writer.close();
|
||||
System.out.println("Wrote to " + file.getAbsolutePath());
|
||||
|
||||
//Transformer transformer = TransformerFactory.newInstance().newTransformer();
|
||||
//Result outputTarget = new StaxR;
|
||||
//Source xmlSource;
|
||||
//transformer.transform(xmlSource, outputTarget);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,31 @@
|
|||
/*
|
||||
* Copyright (c) 2012, Robert von Burg
|
||||
*
|
||||
* All rights reserved.
|
||||
*
|
||||
* This file is part of the XXX.
|
||||
*
|
||||
* XXX is free software: you can redistribute
|
||||
* it and/or modify it under the terms of the GNU General Public License as
|
||||
* published by the Free Software Foundation, either version 3 of the License,
|
||||
* or (at your option) any later version.
|
||||
*
|
||||
* XXX is distributed in the hope that it will
|
||||
* be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with XXX. If not, see
|
||||
* <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
package ch.eitchnet.xmlpers;
|
||||
|
||||
|
||||
/**
|
||||
* @author Robert von Burg <eitch@eitchnet.ch>
|
||||
*
|
||||
*/
|
||||
public interface XmlSaxWriter {
|
||||
|
||||
}
|
Loading…
Reference in New Issue