Index: mdr/jmiutils/src/org/netbeans/lib/jmi/xmi/DefaultWriter.java =================================================================== RCS file: /cvs/mdr/jmiutils/src/org/netbeans/lib/jmi/xmi/DefaultWriter.java,v retrieving revision 1.1 diff -u -r1.1 DefaultWriter.java --- mdr/jmiutils/src/org/netbeans/lib/jmi/xmi/DefaultWriter.java 1 Apr 2004 18:28:42 -0000 1.1 +++ mdr/jmiutils/src/org/netbeans/lib/jmi/xmi/DefaultWriter.java 27 Jun 2005 23:01:49 -0000 @@ -13,6 +13,7 @@ package org.netbeans.lib.jmi.xmi; import java.io.*; +import java.nio.charset.*; import java.util.*; import java.net.URL; import org.xml.sax.*; @@ -23,7 +24,7 @@ public class DefaultWriter extends DefaultHandler { private static final char QUOTE = '\''; - private static final char EOL = '\n'; + private static final String EOL = System.getProperty("line.separator"); private static final String INDENT = " "; private static final int INDENT_LENGTH = INDENT.length (); /** An upper bound on the number of characters that can be printed to the output writer @@ -35,7 +36,6 @@ private static final String XMI_VERSION = "1.2"; private static final String EXPORTER_NAME = "Netbeans XMI Writer"; private static final String EXPORTER_VERSION = "1.0"; - private static final String DEFAULT_ENCODING = "ISO-8859-1"; // variables ................................................................ @@ -79,10 +79,31 @@ throw new SAXException (e); } } - String enc = (encoding != null) ? encoding : DEFAULT_ENCODING; + String enc = (encoding != null) ? encoding : canonicalNameFor(writer.getEncoding()); write (""); writeln (); } + + /** + * Tries to convert the specified encoding name, which may be an historical + * Java encoding name, to the equivalent canonical IANA registered charset + * name. + */ + private static String canonicalNameFor(String encoding) + { + try + { + encoding = Charset.forName(encoding).name(); + } + catch (IllegalCharsetNameException e) + { + } + catch (UnsupportedCharsetException e) + { + } + + return encoding; + } // methods .................................................................. @@ -108,7 +129,7 @@ */ private void writeln () throws SAXException { try { - writer.write ("\r\n"); + writer.write (EOL); } catch (IOException e) { throw new SAXException (e); }