Clipper On Line • Ver Tópico - Tutorial de XML

Tutorial de XML

Aqui você poderá oferecer suas Contribuições, Dicas e Tutoriais (Texto ou Vídeo) que sejam de interesse de todos.

Moderador: Moderadores

 

Tutorial de XML

Mensagempor JoséQuintas » 08 Ago 2019 16:36

Nem dá pra chamar de tutorial.
Como eu disse, de vez em quando vém aquela inspiração....

Vamos começar com algo da programação.... deve ser novidade, complicado, mas tudo bem:

DO WHILE
   IF
      comandos
   ENDIF
   IF
       IF
         comandos
      ENDIF
   ENDIF
ENDDO


Tudo em pares: IF-ENDIF, DO WHILE-ENDDO
Começa com IF, termina com END-IF, começa com DO termina com END-DO, a diferença é o prefixo END

Agora colocando entre <>

<DO WHILE>
   <IF>
      comandos
   <END-IF>
   <IF>
      <IF>
         comandos
      <END-IF>
   <END-IF>
<END-DO>


agora trocando o prefixo END por /

<DO WHILE>
   <IF>
      comandos
   </IF>
   <IF>
      <IF>
         comandos
      </IF>
   </IF>
</DO>


Pronto, um XML
Pera aí... na verdade falta algo.... ou sobra.... XML é tudo na mesma linha

<DO WHILE><IF>comandos</IF><IF><IF>comandos</IF></IF></DO>


Agora sim, agora é um XML.
O que tem de complicado nisso?
É algo usado o tempo todo, só mudou de "END" pra "/", e "<>" pra destacar do restante.
Do mesmo jeito que temos blocos na programação, temos no XML.

Mas a nota fiscal eletrônica é complicada....

Bom.. uma coisa de cada vez.

O XML da NFE tem vários nomes/blocos para serem usados.
No bloco valor coloca-se valor, no bloco ICMS coloca-se ICMS, no bloco cliente coloca-se cliente.
É quase auto-explicativo.

Então porque o XML de NFE é tão complicado?
Ele não é complicado. O que acontece é que tem muita informação/muitos blocos.

É fácil gerar então?
Sim, é fácil, mas é muito demorado, porque tem muita informação.
E como a informação pode vir de vários arquivos, e cada aplicativo guarda isso de um jeito, cada um acaba tendo que fazer sua própria rotina.

No que ajuda gerar TXT ou INI?
Você não precisa aprender sobre XML, não precisa aprender sobre IF e END-IF.

Será que isso foi um bom negócio?
Será que a cabeça do programador tá tão enferrujada, que não enxerga o IF END-IF ?
Na prática, às vezes consideramos difícil antes mesmo de conhecer o "troço", ou nós mesmos complicamos.
E esquecemos de tentar entender o "troço" em partes.

Lembram? Programação?
Dividir um problema grande em problemas menores

Gerar xml é fácil, são vários blocos.
Dividindo os blocos, outros blocos, e mais outros, até chegar ao campo.
Então... agora ficou simples: temos um campo e precisamos preencher esse campo

São muitos campos.... ué... na linha do fonte, vai preencher tudo de uma vez, ou um campo de cada vez?
Então... um campo por vez, uma linha de fonte por vez.

Se gerar INI, TXT, ou outro formato.... não vai ter esse mesmo trabalho?
Então... pra que merd.... vai aprender outro formato? tá facilitando o que?
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial de XML

Mensagempor JoséQuintas » 08 Ago 2019 16:54

AH... mas no INI é mais simples, dá até pra usar uma função....

FUNCTION GravaIni( cNome, cValor )
   ?? cNome
   ?? "="
   ?? cValor
   ?? Chr(13) + Chr(10)


Mais fácil ainda...só mudar pra XML

FUNCTION GravaIni( cNome, cValor )

   ?? "<" + cNome + ">"
   ?? cValor
   ?? "</" + cNome + ">"
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes

Tutorial de XML

Mensagempor JoséQuintas » 08 Ago 2019 18:11

Pra completar, apesar de misturar NFE com XML...

Agora no final do ano tem alteração pra CTE, e talvez NFE, MDFE...

O que altera no conjunto?
Apenas o XML que seria gerado pelo aplicativo.

E pra componentes?
Como eles usam formato INI ou TXT...
Vai ter que esperar eles alterarem o componente, pra depois poder alterar o aplicativo.
Em formato XML, basta adicionar os campos, sem precisar atualizar nada.
Claro... às vezes o componente quebra o galho, preenchendo o que falta com qualquer coisa, assim eles conseguem aprovar.

Em XML:
Você gera o XML, envia pra Fazenda, pega o XML de retorno

Em TXT/INI:
Você gera o arquivo INI/TXT, o componente converte tudo pra gerar XML, o componente faz a parte acima, e converte a resposta pra INI/TXT

De um modo geral, é trabalho pro pessoal do componente, é trabalho pra você aprender o formato deles.
E o pior... fica totalmente dependente.
Aprender o formato deles... só serve pra usar o programa deles.

Gerar em XML, mesmo que não faça a comunicação direta, é o formato padrão da Fazenda.
Por ser padrão, você pode decidir por usar qualquer programa pra comunicação.

Não é questão de um é melhor, ou outro é melhor. Se a Fazenda estiver com problemas, nenhum funciona.
É apenas a questão de ficar livre pra testar/trocar na hora que quiser.
E já puderam ver que XML é fácil, trabalhoso por ter muita informação, mas ainda assim fácil...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg, multithread, dbfcdx, ADO+MySql, PNotepad
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar de usuário

JoséQuintas
Membro Master

Membro Master
 
Mensagens: 18010
Data de registro: 26 Fev 2007 11:59
Cidade/Estado: São Paulo-SP
Curtiu: 15 vezes
Mens.Curtidas: 1206 vezes




Retornar para Contribuições, Dicas e Tutoriais

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 20 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro