Qual é o análogo Java da serialização XML do .NET?
java
xml
serialization
Dmitry Shechtman
fonte
fonte
Respostas:
Resposta de 2008 A API Java "oficial" para isso agora é JAXB - Java API para XML Binding. Veja o Tutorial da Oracle . A implementação de referência está em http://jaxb.java.net/
Atualização de 2018 Observe que os módulos Java EE e CORBA estão obsoletos no SE no JDK9 e devem ser removidos do SE no JDK11 . Portanto, para usar JAXB, ele precisará estar em seu ambiente de classe empresarial existente empacotado por seu servidor de aplicativo, por exemplo, ou você precisará trazê-lo manualmente.
fonte
XStream é muito bom em serializar objetos para XML sem muita configuração e dinheiro! (está sob licença BSD).
Nós o usamos em um de nossos projetos para substituir a velha serialização de java e funcionou quase fora da caixa.
fonte
Projeto de "serialização XML simples"
Você pode querer dar uma olhada no projeto Simple XML Serialization . É a coisa mais próxima que encontrei do System.Xml.Serialization em .Net.
fonte
JAXB faz parte da edição padrão JDK versão 1.6+. Assim é
FREE
e sem bibliotecas extras para baixar e gerenciar. Um exemplo simples pode ser encontrado aquiXStream parece estar morto. A última atualização foi em 6 de dezembro de 2008.
Simple
parece tão fácil e simples quanto JAXB, mas não consegui encontrar nenhuma informação de licenciamento para avaliá-lo para uso empresarial.fonte
Vale ressaltar que desde a versão 1.4, o Java possuía as classes java.beans.XMLEncoder e java.beans.XMLDecoder. Essas classes executam codificação XML que é pelo menos muito comparável à serialização XML e, em algumas circunstâncias, pode fazer o truque para você.
Se sua classe seguir a especificação JavaBeans para seus getters e setters, esse método é direto de usar e você não precisa de um esquema. Com as seguintes ressalvas:
Por exemplo, tome a seguinte declaração:
Executando este código:
Resultaria no seguinte arquivo:
fonte
java.beans.XMLDecoder
dados fornecidos pelo usuário pode introduzir vulnerabilidades de execução de código arbitrário em seu código.XMLBeans funciona muito bem se você tiver um esquema para seu XML. Ele cria objetos Java para o esquema e métodos de análise fáceis de usar.
fonte
Se você está falando sobre serialização XML automática de objetos, verifique o Castor :
fonte
Normalmente, eu uso jaxb ou XMLBeans se preciso criar objetos serializáveis para XML. Agora, posso ver que o XStream pode ser muito útil, pois não é intrusivo e tem uma API muito simples. Vou brincar com ele em breve e provavelmente usá-lo. A única desvantagem que percebi é que não consigo criar o id do objeto sozinho para referência cruzada.
@Barak Schiller
Obrigado por postar link para o XStream!
fonte
Não se esqueça do JiBX .
fonte
se você deseja uma solução estruturada (como ORM), o JAXB2 é uma boa solução.
Se você deseja uma serialização como DOT NET, então você pode usar Long Term Persistence of JavaBeans Components
A escolha depende do uso de serialização.
fonte
fonte