RSS RSS feed | Atom Atom feed

Por que não gosto da IBM ?

Ae tem gente que não entende porque não gosto da IBM...


http://www.theserverside.com/news/thread.tss?thread_id=48035


Brincando de JAXB

Eu estou agora brincando um pouquinho com o JAXB 2.1 para serializar objetos Java para XML e vice versa...
Veja que legal a classe:

@XmlRootElement(name="MeuPrimeiroTesteEmXMLUsandoJaxB")
@XmlAccessorType(XmlAccessType.FIELD)
public class SalvandoEmXML implements java.io.Serializable {

    private static final long serialVersionUID = 1L;
    @XmlAttribute
    private String valorDoXML;
    @XmlElement
    private String nome;
    @XmlElement
    private int idade;
    @XmlElementWrapper(name="parentes")
    private List<String> parentesco = new ArrayList<String>();
    @XmlElementWrapper(name="classeLinda")
    private List<OutraClasseLinda> lindissimas = new ArrayList<OutraClasseLinda>();
    @XmlElementWrapper(name="mapa")
    private Map<String,Object> parametrosEmMapa = new HashMap<String,Object>();

{.... gets e sets}


Agora veja a classe contida:

@XmlRootElement(name="OutroRoot")
@XmlAccessorType(XmlAccessType.FIELD)
public class OutraClasseLinda implements java.io.Serializable {

    private static final long serialVersionUID = 1L;
    @XmlElement
    private Tipo tipo = Tipo.TIPO1;
    @XmlAttribute
    private String id;
    @XmlElement
    private String propriedade1;
    @XmlElement
    private String propriedade2;
    @XmlElement
    private float propriedade3;
{.... gets e sets}


Utilizo estes comandos para gerar :

JAXBContext context = JAXBContext.newInstance(new Class[]{SalvandoEmXML.class});
Marshaller marshaller = context.createMarshaller();
marshaller.marshal(instancia, new FileWriter("instancia.xml"));

Veja o XML que me voltou:


<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<MeuPrimeiroTesteEmXMLUsandoJaxB valorDoXML="UmValorBemGrandao">
    <nome>Dyego Souza do Carmo</nome>
    <idade>55</idade>
    <parentes>
        <parentesco>Maria das dores
 sabe neh
 eu nao vou dar ENTER !!!!</parentesco>
 <parentesco>Maria Silva</parentesco>
 <parentesco>Carlos Amaro</parentesco>
 <parentesco>Santa Safada</parentesco>
</parentes>
<classeLinda>
    <lindissimas id="1">
        <tipo>TIPO1</tipo>
        <propriedade1>Oie 1</propriedade1>
        <propriedade2>Oie 2</propriedade2>
        <propriedade3>1.1</propriedade3>
    </lindissimas>
    <lindissimas id="2">
        <tipo>TIPO1</tipo>
        <propriedade1>Oie 1.2</propriedade1>
        <propriedade2>Oie 2.3</propriedade2>
        <propriedade3>2.2</propriedade3>
    </lindissimas>
</classeLinda>
<mapa>
    <entry>
        <key>chave1</key>
        <value xsi:type="xs:int" >1</value>
    </entry>
    <entry>
        <key>chave2</key>
        <value xsi:type="xs:string">sabedeus</value>
    </entry>
</mapa>
</MeuPrimeiroTesteEmXMLUsandoJaxB>

Para retornar voce utiliza:

Unmarshaller unmarshaller = context.createUnmarshaller();
SalvandoEmXML instanciaFrida = (SalvandoEmXML) unmarshaller.unmarshal(new File("instancia.xml"));

Curioso não ? Simples facil e MUITO util....