Pergunta

Toda vez que procurei algo sobre como seriar ao XML, encontrei os serializadores de feijão. Parece que tudo deve ser declarado como uma propriedade, o que derrota meu propósito. Eu quero serializar hierarquias complexas (até que elas cheguem a primitivas, é claro) no XML, comece com (digamos) um dicionário ou lista como objeto pai.

Que opções existem para a serialização automática XML?

Encontrei algumas referências a Jaxb de 2004, ainda é o caminho a seguir?

Foi útil?

Solução

Tente o Xstream biblioteca. Ele serializará facilmente qualquer hierarquia complexa de objetos que você possa jogar nele.

Outras dicas

Tive muito sucesso com o JAXB, especialmente ao usar o suporte para ele no NetBeans. Eu sei de fato que suporta listas. Não tentei com mapas, mas suspeito que funcione. Se nada mais, basta fazer um feijão simples que contém a lista e deixe que seja o feijão serializado.

Você pode usar o padrão java.bean.XMLEncoder / Decoder Classes para serializar coleções porque o mecanismo permite a chamada de métodos via XML. A saída parece algo Curti:

<object class="java.util.ArrayList">
  <void method="add">
    <string>Hello</string>
  </void>
  <void method="add">
    <string>World</string>
  </void>
</object>

Claro que isso tem fraquezas; por exemplo, você não pode facilmente serializar um Collections.emptyXXXX() Mas existem soluções alternativas. Mas porque tudo funciona de acordo com o API de apoio publicamente Das classes, a forma XML persistente é resiliente às mudanças de esquema.

Achei um mecanismo persistente muito útil para os objetos Java.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top