Qual melhor maneira de ler um XML com atributos?

Oi gente.

Queria saber de vocês qual a melhor maneira de ler um XML com atributos:

<Carro marca="VOLKSWAGEN" tipo="GOL" ano="2009" />

Eu preciso recuperar tudo do xml: O nome da tag= Carro, e seus atributos “marca, tipo, ano” e seus valores.

O xml será dinâmico, criado de acordo com escolhas feita pelo usuário, não tem regra fixa, por isso preciso recuperar tudo, tag, atributos e seus valores.

Olhei o Xstream, mas ele tem que relacionar com objetos, e nesse caso eu não sei qual será o objeto, na verdade nem existirá um objeto relacionado as tags, o xml será montado por algumas regras, mas sem padrão.

Ajudem-me.
Obrigada.

A biblioteca Saxon permite que você realize uma consulta sobre uma fonte de dados XML através de sintaxe XQuery, e em seguida percorra individualmente cada elemento/atributo/valor retornado pela consulta:

http://saxon.sourceforge.net/

Não é simples nem bonito, mas funciona. A página abaixo indica os passos necessários para executar a consulta:

http://www.saxonica.com/documentation/using-xquery/api-query/s9api-query.html