XMLEncoder não cria o arquivo do jeito que quero

Eu estou com uma dúvida sobre o uso de XMLEncoder e como é uma dúvida meio básica coloquei aqui nessa área do fórum…se fiz errado por favor me desculpem e peço que procedam como acharem coerente.

Eu tenho a necessidade de persistir algumas classes e para isso vou usar um arquivo XML ou um banco MySQL, snedo assim usei padrões de projeto como DAO, FACTORY e outras tranqueiras. Eu tenho uma classe Zona (Zona Eleitoral) e criei um DAO que pretendo usar para acessar os objetos dessa classe. Porem na hora de ?encodar? propriamente falando alguma tranqueira ocorre.

PS: Eu usei alguns padrões de projeto e talvez o mau uso deles deve estar causando problema 

Metodo que pega os dados do frame e faz a inserção

[code]private void btGravarActionPerformed(java.awt.event.ActionEvent evt) {
int numero = Integer.parseInt(tfNumero.getText());
String telefone = tfTelefone.getText();
int numeroAtm = Integer.parseInt(tfNumeroATM.getText());
String ipRemoteWAN = tfIpRemoteWAN.getText();

    DAOFactory _fabricanteDAO = DAOFactory.getDAOFactory(DAOFactory.XML);                                
            
    IZonaDAO _zonaDAO = _fabricanteDAO.getZonaDAO();
            
    Zona _zona = new Zona(numero, telefone, numeroAtm, ipRemoteWAN);
            
    int novoNumeroZona = _zonaDAO.insertZona(_zona);  }                           

[/code]

Fabrica de DAO para o tipo XML.

[code] package aprendizadodao.abstractDAO;

import aprendizadodao.concreteDAO.IZonaDAO;
import aprendizadodao.concreteDAO.XmlZonaDAO;
import java.beans.XMLEncoder;
import java.io.BufferedOutputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;

public class XmlDAOFactory extends DAOFactory{
private static FileOutputStream outputStream;
private static XMLEncoder encoder = null;
private static String URL = “C:”;
private static String FILE_NAME = “Zonas.xml”;

/** Creates a new instance of XmlDAOFactory */
public XmlDAOFactory() {
}

public static XMLEncoder getXmlEncoder(){
    try {
        if (encoder == null) {
            outputStream = new FileOutputStream(URL+FILE_NAME);        
            encoder = new XMLEncoder(new BufferedOutputStream(outputStream));        
            return encoder;
        } else {
            return encoder;
        }            
    } catch (FileNotFoundException ex)  {
    //caso o arquivo a ser criado não seja encontrado
    } 
    return null;
}

public IZonaDAO getZonaDAO() {
    return new XmlZonaDAO();
}   

/* Ainda será implementado
public IChamadoDAO getChamadoDAO(){
    return new XmlChamado();
}
*/ }

[/code]

DAO para a classe Zona que persiste em XML

[code] package aprendizadodao.concreteDAO;

import aprendizadodao.Zona;
import aprendizadodao.abstractDAO.DAOFactory;
import aprendizadodao.abstractDAO.XmlDAOFactory;
import javax.sql.RowSet;

public class XmlZonaDAO implements IZonaDAO{
private XmlDAOFactory _fabricanteXML;

/** Creates a new instance of XmlZonaDAO */
public XmlZonaDAO() {
    _fabricanteXML = new XmlDAOFactory();
}

public int insertZona(Zona _zona) {        
    _fabricanteXML.getXmlEncoder().writeObject(_zona);
    _fabricanteXML.getXmlEncoder().close();                
    return _zona.getNumero();        
}

public boolean deleteZona(int _numero) {
    return true;
}

public Zona findZona(Zona _zona) {
    return _zona;
}

public boolean updateZona(Zona _zona) {
    return true;
}

public RowSet listZona() {
    return null;
}   

}
[/code]

Arquivo gerado é:

<?xml version="1.0" encoding="UTF-8" ?> <java version="1.6.0_02" class="java.beans.XMLDecoder" />

E ai alguem para ajudar?