Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Andreatti

Estrutura XML - Otimizaçao?

Recommended Posts

Bom. Andei vendo na net como criar um arquivo XML.

Vou reprensentar um que eu vi aqui no forum mesmo:

 

<?xml version="1.0" encoding="UTF-8"?>
<agenda>
 <contato>
   <nome>panetony</nome>
   <telefone>
     <fixo>123</fixo>
     <movel>12345</movel>
   </telefone>
 </contato>
 <contato>
   <nome>loja do panetony</nome>
   <telefone>
     <fixo>147</fixo>
     <movel>741</movel>
   </telefone>
 </contato>
</agenda>

 

beleza... eu sou iniciante e talz. Como eu faria se essa agenda tivesse 100 contatos, e o numero de contatos coforme eu fosse cadastrando? Eu teria que alterar meu formato XML toda vez que cadastrasse alguem?

 

(to tentando criar um progrma aem delphi .. porem preciso pegar essa parte XML)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso .. se tornaria invalido, no meu exemplo.. onde quero cadastrar uma quantidade indefinida de produtos, podendo ser 1 ou 200...

Eu estou criando o sistema em delphi. Teria uma forma de criar um laço para incrementar o no produto(no caso do exmplo: o no contato) automaticamente conforme cadastrado?

 

Obrigado.

UGA

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na vdd, nao eh como banco de dados. Eh o seguinte. O cliente vai realizar suas vendas, e vai gerar um arquivo XML, com ela, uutilizando dados do BD(produtos, Cliente, etc);

Entao meu XML ficaria mais ou menos assim:

<venda>
  <cliente>
     <nome>Fulano</nome>
     <outros dados>
        //ele pegaria todos esses dados automaticamente do banco.(E seria fixo(Seria os msms tipos de dados para todos os clientes: nome/ telefone/ endereço)
     </outros dados>
  </cliente>

  //aqui vem a -parte dos produtos
  <produto>
     <codigo>Bla bla bla bla bla</codigo>
     // e agora a parte relacionada com produtos da venda(descriçao, qntd, valor, etc..)
  </produto> 
</venda>

 

Agora um resumo total desse XML: Vendedor, Cliente, Produtos. Mais ou menos isso(ainda estou analizando).

Eu sei que o vendedor vai ser somente 1. O cliente vai ser tmb somente 1(no caso se tratando da venda em si. E a quantidade de produtos, no caso tratando qntd como varios tipos de produtos(bolas, redes, camisas, bermudas, etc).

 

Ele vai me enviar esse "relatorio" todo fim de mes, simplificando cada dia. Entao ficaria mais complexo ainda meu XML certo? Pq no dia tal. eu teria varias vendas, varios clientes.

E eu preciso disso simplificado, para que quando eu receber esse arquivo (ainda nao decidi o meio de transmisaao: email, ftp, http.(ainda tenho que verificar essa parte) eu possa implementalo no meu banco de dados (referente a esse cliente) gerar o "relatorio oficial", gerar um BSC com os outros dados que tmb virao(qntd de clientes, funcionarios, saida e entrada de caixa, etc) para a visualizaçao do andamento da empresa.

 

 

 

No final disso eu iria gerar um relatorio, montar tabelas, e mostrar o resultado resumido de cada mes, de cada dia para um detalhamento maior.

 

Bom... ja to explicando muito o sistema e deixando a desejar no que realmente importa.

 

 

Como eu faço para que ele incremente varias vendas no arquivo XML, sendo que dentro das vendas existem a quantidade diferente de tipos de produto:

<venda>
....
....
 <produto>
   ...
   ...
 </produto>

 <produto>
   ...
   ...
 </produto>

 <produto>
   ...
   ...
 </produto>

</venda>

<venda>
....
....
 <produto>
   ...
   ...
 </produto>

 <produto>
   ...
   ...
 </produto>

</venda>

<venda>
....
....
 <produto>
   ...
   ...
 </produto>

</venda>

 

Ufa Espero que deu pra entender.

Obrigado novamente.

Compartilhar este post


Link para o post
Compartilhar em outros sites

a estrutura já está pronta e não vejo erros. Arquivos XML tendem a ficar populosos mesmo dependendo da quantidade de informações.

 

Para entender como se monta, você deve compreender o conceito de entidade. No caso do primeiro exemplo, podemos dizer que 'telefone' é uma entidade, que poder ser fixo ou móvel. Porém, no caso, também dizemos que fixo ou móvel é uma especificação do tipo do telefone. Não existe meio certo ou errado, o jeito certo é o que atende à sua necessidade. Porém, há meios otimizados que prezam pelo futuro ou manutenção posterior.

 

Para o exemplo da agenda, eu substituiria o nó telefone, por telefones, composto por N telefone, que contém o seu tipo

<!ELEMENT telefones (telefone+)>

<!ELEMENT telefone (#CDATA)>
<!ATTLIST telefone tipo CDATA #REQUIRED>

 

 

Assim:

 

<agenda>
   <contato id="1">
       <nome>Fulano</nome>
       <telefones>
           <telefone tipo="celular">(00) 9999-9999</telefone>
       </telefones>
   </contato>
</agenda>

 

 

Principalmente por ser uma SGML, a XML tem facilidade para ficar extensa. Se precisar de uma forma mais resumida de armazenamento de dados, opte por um banco.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.