a vantagem do XML em relação ao arquivo Properties é muito pequena para o seu caso. Mas um XML pode guardar muito mais do que Strings…
E um XML tem validação com DTD… isso é importante para conectar aplicações, e garantir existência e consistência de dados…
Uma perda grande do XML é que, para coisas pequenas, o overhead é muito grande: vc teria que inventar um DOM para ter tudo na memória facilmente. Na verdade, vc não precisa inventar, pq já tem as suas “classes de configuração”.
Mas em termos de escopo, vc pode usar separação por pontos, e daí praticamente qq coisa serve:
# Meu arquivo de properties
server.url=http://localhost:8080/
server.welcome.label=Bem-vindos ao site do Barioni!
news.length=3
news.0.title=Primeira news
news.0.content=Hoje fiz meu primeiro arquivo properties
news.1.title=Segunda news
news.1.title=E ele funciona!
usuario.loginDialog.loginLabel=Login:
usuario.loginDialog.passwordLabel.Password:
usuario.loginDialog.okButton.label=OK
Fora que vc pode dividir os Properties em camadas e usar ResourceBundles, como a Bani falou, para internacionalização. Assim, vc pode ter um arquivo labes_en.properties e um [labels_pt.properties[/b] e por aí vai, com cada um em uma língua e o seu software utilizando a língua padrão do sistema, ou deixando à escolha do usuário.
Essa história de i18n com properties não pegou muito, pq exige grande esforço do programador para fazer tudo direitinho. MAs como configuração é demais!!!
Eu uso sempre arquivos properties para configuração. O melhor é se ele estivr fora do JAR, pq daí vc não tem que gerar o JAR de novo para alterar as configurações. Assim eu uso para o lado do servidor, quando tem. Em clientes, geralmente eu coloco essas coisas dentro do JAR, para poder acessar com getClass().getResourceAsStream(), daí funciona até em applet.
[]s