/** * Return a {@link XMLStreamWriter} that writes to a {@link XMLEventWriter}. * @return a stream writer that writes to an event writer * @since 3.0.5 */ public static XMLStreamWriter createEventStreamWriter(XMLEventWriter eventWriter, XMLEventFactory eventFactory) { return new XMLEventStreamWriter(eventWriter, eventFactory); }
@Test public void write() throws Exception { streamWriter.writeStartDocument(); streamWriter.writeProcessingInstruction("pi", "content"); streamWriter.writeStartElement("namespace", "root"); streamWriter.writeDefaultNamespace("namespace"); streamWriter.writeStartElement("prefix", "child", "namespace2"); streamWriter.writeNamespace("prefix", "namespace2"); streamWriter.writeComment("comment"); streamWriter.writeCharacters("content"); streamWriter.writeEndElement(); streamWriter.writeEndElement(); streamWriter.writeEndDocument(); Predicate<Node> nodeFilter = n -> n.getNodeType() != Node.DOCUMENT_TYPE_NODE && n.getNodeType() != Node.PROCESSING_INSTRUCTION_NODE; assertThat(stringWriter.toString(), isSimilarTo(XML).withNodeFilter(nodeFilter)); }
@Override public void writeEmptyElement(String localName) throws XMLStreamException { closeEmptyElementIfNecessary(); writeStartElement(localName); this.emptyElement = true; }
@Override public void writeStartElement(String localName) throws XMLStreamException { closeEmptyElementIfNecessary(); doWriteStartElement(this.eventFactory.createStartElement(new QName(localName), null, null)); }
@Override public void close() throws XMLStreamException { closeEmptyElementIfNecessary(); this.eventWriter.close(); }
public void writeEmptyElement(String localName) throws XMLStreamException { writeStartElement(localName); writeEndElement(); }
private void closeEmptyElementIfNecessary() throws XMLStreamException { if (this.emptyElement) { this.emptyElement = false; writeEndElement(); } }
public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException { writeStartElement(eventFactory.createStartElement(new QName(namespaceURI, localName), null, null)); }
@Override public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException { doWriteNamespace(this.eventFactory.createNamespace(prefix, namespaceURI)); }
public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException { writeNamespace(eventFactory.createNamespace(namespaceURI)); }
@Override public void writeStartElement(String namespaceURI, String localName) throws XMLStreamException { closeEmptyElementIfNecessary(); doWriteStartElement(this.eventFactory.createStartElement(new QName(namespaceURI, localName), null, null)); }
@Override public void writeEndElement() throws XMLStreamException { closeEmptyElementIfNecessary(); int last = this.endElements.size() - 1; EndElement lastEndElement = this.endElements.get(last); this.eventWriter.add(lastEndElement); this.endElements.remove(last); }
public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException { writeStartElement(namespaceURI, localName); writeEndElement(); }
private void closeEmptyElementIfNecessary() throws XMLStreamException { if (this.emptyElement) { this.emptyElement = false; writeEndElement(); } }
public void writeStartElement(String localName) throws XMLStreamException { writeStartElement(eventFactory.createStartElement(new QName(localName), null, null)); }
@Override public void writeDefaultNamespace(String namespaceURI) throws XMLStreamException { doWriteNamespace(this.eventFactory.createNamespace(namespaceURI)); }
public void writeNamespace(String prefix, String namespaceURI) throws XMLStreamException { writeNamespace(eventFactory.createNamespace(prefix, namespaceURI)); }
@Override public void writeEmptyElement(String namespaceURI, String localName) throws XMLStreamException { closeEmptyElementIfNecessary(); writeStartElement(namespaceURI, localName); this.emptyElement = true; }
@Override public void writeStartElement(String prefix, String localName, String namespaceURI) throws XMLStreamException { closeEmptyElementIfNecessary(); doWriteStartElement(this.eventFactory.createStartElement(new QName(namespaceURI, localName, prefix), null, null)); }
@Override public void writeCharacters(char[] text, int start, int len) throws XMLStreamException { closeEmptyElementIfNecessary(); this.eventWriter.add(this.eventFactory.createCharacters(new String(text, start, len))); }