Arquivo XML x classe JAVA...qual escolher?

11 respostas
R

Fala galera…blz?

seguinte…aki no sistema, temos classes q guardam informacoes sobre o sistema, tais como constantes, textos usados e configuracoes…

pensei em coloca-las em um arquivo XML…

em qual caso o acesso seria melhor, mais rapido, se eh q tem diferenca??
pois no caso, tb coloquei todos meus titulos e label´s numa classe…entao esse arquivo XML seria mto acessado…

como eu deveria fazer p/ acessar e ler um arquivo XML??

valew galera.

11 Respostas

LN2EE

procure sobre i18n no site da sun

http://java.sun.com

um abraço.

R

nardo…

o q vem a ser esse i18n??
a pesquisa trouxe mta coisa…

falow

LN2EE

Internationalization is the process of designing an application so that it can be adapted to various languages and regions without engineering changes. Sometimes the term internationalization is abbreviated as i18n, because there are 18 letters between the first “i” and the last “n.”.

Bani

Gostaria de adicionar mais uma “opção” ao tópico: arquivos de ResourceBundle.
O que mais vejo por aí para guardar essas informações é isso, aqueles arquivos .properties.
Acredito que se não for necesário ter toda uma estrutura de XML, é bem mais simples trabalhar com eles.

R

jah ouvi falar desse ResourceBundle, Bani…

mas como eu trabalharia com ele??
qual API devo consultar??

valew.

LN2EE

Bari, dá uma olhada

http://java.sun.com/docs/books/tutorial/i18n/intro/quick.html

espero que ajude !

[]´s

R

nardo, o tutorial ajudou bastante…explica mto bem o lance de internacionalizacao…

mas no caso de eu usar um XML…eu teria alguma perda de performance do sistema, sendo q esse arquivo seria acessado mtas vezes??

falow

LN2EE

Provalvelmente não, porque dependendo do modo que você trabalhar como o XML, você tera uma instancia do mesmo na memoria, podendo ser a instancia de um Vector ou String[], com todas suas Labels e msg, como você provalmente tem hoje no seu sistema, um String[].

Para trabalhar com XML você também vai precisar de um Parser, para interpretar o XML, e no caso do i18n, tudo é feito de forma transparente, com menos linha de código.

Certo ?
Espero q ajude !

[]´s

R

nardo…

tb curti o lance do i18n…eh bem simples de se implementar e modificar caso precise…

mas acredito q o XML ofereca mais vantagens em relacao ao .properties…

vamos esperar pelos argumentos da galera…

falow

dukejeffrie

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

R

ok…

entao no caso de um sistema multi-linguas, o ideal seria usar um .properties…

e qdo seria o caso de usar um .XML??
q informacoes geralmente sao armazenadas nele??

falow

Criado 14 de março de 2003
Ultima resposta 17 de mar. de 2003
Respostas 11
Participantes 4