API para gerar XML em aplicações desktop

Bom dia,
Estou desenvolvendo uma aplicação desktop onde tenho que fazer uma integração com web service e enviar e receber dados em XML
Como a aplicação é desktop, desenvolvida em Swing estou em dúvida sobre qual API utilizar.

Nesta aplicação vou ter uma funcionalidade onde ao logar irá atualizar as informações de parametros e dados do usuario de um web service com XML,
e este não é necessário que seja assinado e nao usa SSL;

Porém existe uma funcionalidade onde tenho que gerar um XML e este deve ser assinado com certificado digital e possivelmente irá utilizar uma conexão segura. Os namespaces são um tanto complicados. O xml em si não é muito grande, têm poucos atributos, porém o fato de ter que ser assinado com certificado digital torna um pouco mais complexo.

Gostaria de saber qual API vocês indicam utilizar
Conheço a XStream, API SAX e API DOM mais não sei qual a mais indicada para uma aplicação desktop.
Verifiquei alguns exemplos em XSTream e achei bem simples, mais nao sei se da para fazer assinatura digital e trabalhar com namespaces e tipos complexos.

Conheço a XStream e acho muito boa. Um outro excelente produto para converter entre Java e XML é o JiBX:

http://jibx.sourceforge.net/

valew pela resposta.
Vou verificar essa API que você falou.
Estou testando tambem alguns exemplos em JAXB, me parece interessante
Estou gerando as classes Binding do XML usando o XJC e depois estou fazendo o Marshal e Unmarshall do XML para essas classes.
Por equanto esta dando certo.

Obrigado