/** * Write an XML document to the OutputStream provided. This will use the * provided Transformer. * * @param transformer the transformer (can be obtained from * XmlUtils.createIndentingTransformer()) * @param outputStream the output stream to write to. The stream is closed * upon completion. * @param document the document to write. */ public static void writeXml(final Transformer transformer, OutputStream outputStream, final Document document) { Validate.notNull(transformer, "Transformer required"); Validate.notNull(outputStream, "OutputStream required"); Validate.notNull(document, "Document required"); transformer.setOutputProperty(OutputKeys.METHOD, "xml"); try { if (!(outputStream instanceof BufferedOutputStream)) { outputStream = new BufferedOutputStream(outputStream); } final StreamResult streamResult = createUnixStreamResultForEntry(outputStream); transformer.transform(new DOMSource(document), streamResult); } catch (final Exception e) { throw new IllegalStateException(e); } finally { IOUtils.closeQuietly(outputStream); } }