Busca no XML

6 respostas
O

Bom dia a todos.
Estou construindo um sisteminha de busca em java, só que agora me deparo com um seguinte problema.
O cliente quer que o sistema associe diversas palavras a uma palavra chave, mas ele não quer usar banco de dados, por exempo:
A palavra GOVERNO está associada à gov_SP, gov_RJ, gov_RS… etc.
Assim, se o usuario digita a palavra governo, o sistema deverá checar a palavra tem associações, caso tenho o sistema deve procurar todos os arquivos com as palavras governo, gov_SP, gov_RJ, gov_RS etc…
Pensei em fazer um arquivo XML similar a isto:
&lt?xml version=“1.0”?&gt
<exemplo>
<governo id=“0”>
<associate1>gov_SP</associate>
<associate2>gov_RJ</associate>
<associate3>gov_RS</associate>
</governo>
</exemplo>
Essa é a melhor forma de escrever o xml ??? E como fazer para saber se a palavra digitada possui associações ???
Toda ajuda é bem vinda, lembrando que sou iniciante com xml.
Obrigado e bom dia a todos.

6 Respostas

T

Isto não é um XML válido.

&lt?xml version="1.0"?&gt
&lt;exemplo&gt;
&lt;governo id="0"&gt;
&lt;associate1&gt;gov_SP&lt;/associate&gt;
&lt;associate2&gt;gov_RJ&lt;/associate&gt;
&lt;associate3&gt;gov_RS&lt;/associate&gt;
&lt;/governo&gt;
&lt;/exemplo&gt;

Isto é, mas acho que é melhor fazer um diagrama de entidade e relacionamento antes de modelar o seu XML. Mesmo não usando um banco de dados vale a pena montar seu diagrama antes (senão seu XML vai virar um verdadeiro macarrão.)

&lt?xml version="1.0"?&gt
&lt;exemplo&gt;
&lt;governo id="0"&gt;
&lt;associate&gt;gov_SP&lt;/associate&gt;
&lt;associate&gt;gov_RJ&lt;/associate&gt;
&lt;associate&gt;gov_RS&lt;/associate&gt;
&lt;/governo&gt;
&lt;/exemplo&gt;
O

Ok, obrigado, vou preparar o diagrama.
Mais uma coisa, eu poderia, por um acaso, deixar o id = “governo”.
meu xml seria válido assim?
Creio que ficaria mais facil eu resgatar as associações pelo id.

T

É. De qualquer maneira, em particular acho XML um pobre substituto para um banco de dados de verdade, mesmo um “embedded” como é o caso do Derby (que vai vir incorporado ao Java 6.0 mas já pode ser usado no Java 5.0 e se não me engano também funciona até com Java 1.3 e 1.4 - favor checar no site: http://db.apache.org/derby/ - uma versão desse software é empacotada pela Sun, http://developers.sun.com/prodtech/javadb/downloads/index.jsp , embora tenha sido contribuída pela IBM, http://www-128.ibm.com/developerworks/opensource/top-projects/derby.html

ou do HSQLDB: http://hsqldb.sourceforge.net )

O

Esse derby é uma espécie de banco de dados onde você não precisa instalar nada no cliente?
Você inclui os binários na sua aplicação e já tem um banco de dados.
É isso mesmo ou entendi errado?
Caso seja isso mesmo, creio que com essa ajuda resolverei o problema.
obrigado.

T

Bom, é um banco de dados 100% Java, mas você precisa, obviamente, mandar os binários dele, assim como os seus arquivos de bancos de dados. (Só que você não precisa ficar fazendo configuração de ODBC, ou outras coisas chatas que clientes não gostam para bancos de dados).

  • Se sua aplicação for um applet aí fica complicado mandar o Derby, já que ele não é muito pequeno. Nesse seu caso, aí você fica com esses arquivos (XML? Properties?) mesmo.
O

Minha aplicação é desktop mesmo, estou dando uma olhada na documentação.
Cara muito obrigado mesmo, nem vou ter mais dor de cabeça com o XML, antes de aplica-lo preciso estudar a estrutura primeiro.
Entrar de cabeça do nada é cruel.
Valew Mesmo :slight_smile:
Abraço…

Criado 4 de dezembro de 2006
Ultima resposta 4 de dez. de 2006
Respostas 6
Participantes 2