Serializando um bean para XML

Esta dica de Java demonstra um método de serializar um bean para um XML. Um bean persiste tendo suas propriedades, campos, e informação do estado salva e restaurada no armazenamento. O mecanismo que torna possível a persistência é chamado serialização.

    // Criando um objeto e configurando suas propriedades

    MyClass obj = new MyClass();
    obj.setProp(1);
    obj.setProps(new int[]{123});
    
    try {

        // Serializa o objeto

        XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(
            new FileOutputStream("outfilename.xml")));
        encoder.writeObject(o);
        encoder.close();

    catch (FileNotFoundException e) {
    }

    // Esta classe define dys propriedades - prop and props
    public class MyClass {

        // A propriedade prop
        int i;
        public int getProp() {
            return i;
        }
        public void setProp(int i) {
            this.i = i;
        }
    
        // A propriedade props
        int[] iarray = new int[0];

        public int[] getProps() {
            return iarray;
        }
        public void setProps(int[] iarray) {
            this.iarray = iarray;
        }
    }

Este é o código XML:

    <?xml version="1.0" encoding="UTF-8"?>
    <java version="1.4.0" class="java.beans.XMLDecoder">
        <object class="MyClass">
            <void property="prop">
                <int>1</int>
            </void>
            <void property="props">
                <array class="int" length="3">
                    <void index="0">
                        <int>1</int>
                    </void>
                    <void index="1">
                        <int>2</int>
                    </void>
                    <void index="2">
                        <int>3</int>
                    </void>
                </array>
            </void>
        </object>
    </java>