package test;

import java.io.*;

import javax.xml.stream.*;

import org.codehaus.stax2.XMLStreamWriter2;

Simple non-automated manual test code for outputting namespace-aware XML documents.
/** * Simple non-automated manual test code for outputting namespace-aware XML * documents. */
public class RunStreamWriter { private RunStreamWriter() { } protected XMLOutputFactory getFactory() throws Exception { return (XMLOutputFactory) Class.forName("com.fasterxml.aalto.stax.OutputFactoryImpl") .getDeclaredConstructor() .newInstance(); } final String ENCODING = "ISO-8859-1"; //final String ENCODING = "UTF-8"; protected void test() throws Exception { XMLOutputFactory f = getFactory(); f.setProperty(XMLOutputFactory.IS_REPAIRING_NAMESPACES, Boolean.TRUE); ByteArrayOutputStream bos = new ByteArrayOutputStream(); XMLStreamWriter2 sw = (XMLStreamWriter2) f.createXMLStreamWriter(bos, ENCODING); //XMLStreamWriter sw = f.createXMLStreamWriter(bos); /* StringWriter w = new StringWriter(); XMLStreamWriter sw = f.createXMLStreamWriter(w); */ sw.writeStartDocument(); sw.writeSpace("\n"); writeContents(sw); sw.writeEndDocument(); sw.flush(); sw.close(); System.err.println("DOC -> '"+new String(bos.toByteArray(), ENCODING)+"'"); //System.err.println("DOC -> '"+w.toString()+"'"); } protected void writeContents(XMLStreamWriter sw) throws XMLStreamException { final String URL_P1 = "http://p1.org"; // Let's try to enforce using of the default ns by passing empty prefix // (writer is not required to honor that request though) sw.writeStartElement("", "test", URL_P1); sw.writeStartElement("", "leaf", URL_P1); sw.writeEndElement(); sw.writeEndElement(); /* sw.writeCharacters("\n"); sw.writeStartElement("root"); sw.writeCharacters("Need to quote this (\u0531) too: ]]>"); sw.writeEmptyElement("alpha"); sw.writeAttribute("attr", "(\u0531)"); sw.writeNamespace("ns", "uri:foo"); sw.writeAttribute("atpr", "http://attr-prefix", "attr", "a<b"); sw.writeStartElement("bravo"); sw.writeCharacters("Text: & \n"); sw.writeCData("Test: ]]>x"); sw.writeProcessingInstruction("p", "i"); sw.writeEndElement(); sw.writeStartElement("bravo"); // 2nd one, recycle sw.writeEmptyElement("root"); sw.writeEndElement(); sw.writeEmptyElement("root"); sw.writeEmptyElement("root"); sw.writeEmptyElement("root"); sw.writeEmptyElement("root"); sw.writeEmptyElement("bravo"); sw.writeCharacters("\n"); // to get linefeed */ } public static void main(String[] args) throws Exception { new RunStreamWriter().test(); } }