@Override public void writeAll(ShapeChangeResult r) { if (printed || diagnosticsOnly) { return; } Properties outputFormat = OutputPropertiesFactory.getDefaultMethodProperties("xml"); outputFormat.setProperty("indent", "yes"); outputFormat.setProperty("{http://xml.apache.org/xalan}indent-amount", "2"); outputFormat.setProperty("encoding", "UTF-8"); /* * Uses OutputStreamWriter instead of FileWriter to set character * encoding (see doc in Serializer.setWriter and FileWriter) */ try { File repXsd = new File(outputDirectoryFile, outputFilename); BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(repXsd), "UTF-8")); Serializer serializer = SerializerFactory.getSerializer(outputFormat); serializer.setWriter(writer); serializer.asDOMSerializer().serialize(document); writer.close(); r.addResult(getTargetID(), outputDirectory, outputFilename, schemaTargetNamespace); } catch (IOException ioe) { r.addError(this, 3, outputFilename, ioe.getMessage()); } printed = true; }