Establecer la extensión de guardado predeterminada con JFileChooser

Estoy tratando de guardar un archivo usandoJFileChooser. Sin embargo, parece que estoy teniendo algunos problemas con eso. Aquí está mi código:

    if (e.getSource() == saveMenu) {

        JFileChooser chooser = new JFileChooser();
        chooser.setFileSelectionMode(JFileChooser.DIRECTORIES_ONLY);

        FileNameExtensionFilter xmlFilter = new FileNameExtensionFilter("xml files (*.xml)", "xml");
        // add filters
        chooser.addChoosableFileFilter(xmlFilter);
        chooser.setFileFilter(xmlFilter);

        int result = chooser.showSaveDialog(Simulation.this);

        if (result == chooser.APPROVE_OPTION) {
            writeToXML(chooser.getSelectedFile());
        }

    }

Esto no obliga al archivo a tener una.xml extensión, por lo que he intentado usar el siguiente código para forzar que el archivo se guarde con la extensión .xml

     OutputFormat format = OutputFormat.createPrettyPrint();
     format.setEncoding("UTF-8");
     XMLWriter xmlWriter = null;
     try {              
         xmlWriter = new XMLWriter(new OutputStreamWriter(
                 new FileOutputStream(f+".xml"), "UTF8"),
                 format);

Sin embargo, con esto no puedo evitar que el usuario escribaxpto.xml en elJFileChooser y si lo hacen, el archivo tendrá "dos extensiones": será un archivo llamadoxpto.xml.xml

Así que mis preguntas son:

¿Cómo puedo hacer elJFileChooser guardar un archivo xml por defecto?Si el usuario inserta un nombre de archivo como xpto.xml, ¿cómo puedo guardarlo como xpto.xml y no xpto.xml.xml?

Respuestas a la pregunta(5)

Su respuesta a la pregunta