Como montar e recuperar um XML?

Salve Gujeiros!

Preciso de uma ajuda:

Preciso montar um Menu em XML e depois recuperá-lo em uma ArrayList<String[]>.

Pensei em uma estrutura assim:

<?xml version="1.0" encoding="UTF-8"?>
<menu>
	<modulo>
		<nome>comissao</nome>
		<label>Comissão</label>
		<secao nome="OPERAÇÕES">
			<opcao>
				<nome>Apropriar Comissão</nome>
				<url>@contextPath@/comissao/apropriacao.jsp</url>
				<permissao>null</permissao>
			</opcao>
		</secao>
	</modulo>
</menu>

Preciso recuperar estas informações da seguinte maneira:

ArrayList<String[]> menu;
menu.add(new String[]{"comissao","Comissão","OPERAÇÕES","Apropriar Comissao","@contextPath@/comissao/apropriacao.jsp", null});

Qual seria a maneira mais prática de fazer isso? Qual parser utilizar?
Qual a melhor estrutura para o XML?

Se alguém puder ajudar!

[]'s

Normalmente uso o XStream para essas coisas. A parte do array de String vc faz depois de estar com o objeto em mãos.

Sobre usar tags ou atributos:

Tags foram feitas para representar os dados.
Atributos foram feitos para representar metadados, como por exemplo falar que uma lista vai de M até P, facilitando a tua navegação.

Também não precisa usar XML, tem outros formatos como JSON, YAML ou até CSV se for facilitar mais.

[quote=Bruno Laturner]

Normalmente uso o XStream para essas coisas. A parte do array de String vc faz depois de estar com o objeto em mãos.

Sobre usar tags ou atributos:

Tags foram feitas para representar os dados.
Atributos foram feitos para representar metadados, como por exemplo falar que uma lista vai de M até P, facilitando a tua navegação.

Também não precisa usar XML, tem outros formatos como JSON, YAML ou até CSV se for facilitar mais.[/quote]

Obrigado pelas dicas Bruno…

só uma dúvida:
no caso de utilizar o XStream (ou o YAML), eu teria que criar classes, correto?
Isso não seria um pouco complexo para este meu XML?

[]'s

Trabalhar com XML (e serialização em geral) é um saco de qualquer forma que você for usar no Java.

Criar classes é o mais fácil de fazer.