Pesquisar este blog

segunda-feira, 19 de julho de 2010

XML x TXT

A troca de informações entre sistemas diferentes é uma necessidade e um diferencial que pode ser decisivo numa aquisição de software. O famoso EDI (Eletronic Data Interchange) é uma prática constante em diversos softwares que geram e recebem informações.

A rapidez e confiabilidade dos dados numa empresa é essencial para o negócio, sendo assim a árdua tarefa da digitação dos mesmos dados entre sistemas diferentes já não é mais viável.  Um   exemplo para essa rotina ultrapassada seria a de um hospital onde o setor de farmácia recebe medicamentos de um fornecedor e já digita a nota fiscal de entrada em seu software e depois envia essa nota para o setor de contas a pagar onde é digitada mais uma vez. Dupla digitação, dupla perda de tempo, dupla chance de erros, etc..........

A adoção do EDI dando a opção para o usuário tanto de receber quanto gerar dados é imprescindível na eficiência do setor. Várias são as formas de implementação, vários são os formatos. Atualmente, todas as linguagens de programação têm recursos que facilitam a criação e recepção dos dados, seja através de webservices ou até mesmo de um simples arquivo texto, o famoso TXT.

Exemplos diversos estão ao nosso redor:
  • Nota fiscal eletrônica
  • CNAB, arquivos entre bancos
  • TISS - Troca de informações em Saúde Suplementar
  • Consulta de CEP
Recentemente num debate técnico sobre a TISS, que é o padrão estabelecido pela ANS (Agência Nacional de Saúde Suplementar) para troca de informações entre prestadores de serviços de saúde e operadoras de saúde suplementar, percebí que ainda há dúvidas a respeito da adoção de arquivos XML na transmissão de dados, o que motivou este post.

A utilização de um simples arquivo texto formatado de acordo com um determinado layout foi e ainda é muito utilizado em vários setores, porém, sua implementação de uns tempos para cá está caindo em desuso, sendo substituído por XML (Extensible Markup Language) e outros formatos mais atuais.

O debate na adoção entre um arquivo .TXT e um .XML é mais acirrado quando não há um conhecimento mais profundo, talvez devido a sua aparente complexidade, acabe afastando quem se aventura. Na verdade um arquivo xml nada mais é que um texto formatado de acordo com o padrão W3C, com tags que lembram muito um arquivo html. Os dados são  organizados de uma forma hierarquizada e tem como característica a portabilidade.

Um arquivo .TXT também é formatado, porém, quem for fazer uso desse arquivo deverá ter em mãos o layout de sua geração para poder extrair as informações.

Exemplos:

TXT






XML
















Como se pode notar, dois arquivos com o mesmo conteúdo, porém, o arquivo XML é melhor organizado, com uma estrutura hierárquica simples. Já o arquivo .TXT, mesmo simples, tem necessidade de um layout pré-definido para se conseguir obter os dados. Uma das desvantagens apontadas seria o tamanho do arquivo XML, porém as vantagens ainda são maiores:

  • Legibilidade
  • Criação de tags pernalizadas
  • Criação de estruturas de validação
  • Portabilidade
Claro que cada caso é um caso, cada panela há sua tampa, porém vejo como acertada a decisão da ANS pelo formato XML. Após 3 anos de implantação do padrão TISS ainda existem muitas dúvidas, críticas, mas houve sim avanços, trazendo a produtividade no desenvolvimento de novas ferramentas.

O debate sempre haverá, é sadio, é democrático. Divergências desde que embasadas sempre terão seu lugar. O importante é ter o espírito aventureiro de ser sempre um eterno aprendiz.

3 comentários:

  1. Edson,

    Não vejo porque não utilizar o XML. De fato o arquivo é muito mais legível e fácil de implementá-lo em diversas linguangens de programação. Tive a oportunidade de escrever sobre EDI em uma das edições da revisa ClubeDelphi explicando como funciona a leitura e escrita de dados para bancos (CNAB), mas confesso que se tivesse XML na época seria muit mais fácil. As documentações de bancos geralmente são muito deficitárias.

    Na minha opinião hoje o XML é uma excelente solução para troca de informações entre diversos sistemas.

    ResponderExcluir
  2. Na minha opinião, um arquivo TXT é perfeito para casos em que a estrutura é bidimensional e os dados não são uma estrutura hierárquica mas sim uma tabela plana.
    Principalmente se em vez de tamanhos fixos os campos forem separados por um caractere convencionado. Isso diminui bastante o tamanho do arquivo e agiliza sua transmissão.
    Só que criar um arquivo TXT tem seus tropeços. Que define o layout pode errar na definição, forçando quem implementou a corrigir depois, ou vice-versa.
    Agora, se os dados envolvem uma hierarquia, XML se faz obrigatório. Se os dados precisam ser validados quanto ao seu conteudo ou estrutura o XML é indispensável.
    Além disso arquivos XML podem ser facilmente importados e exportados para vários softwares e formatados para se exibir no browser, com um XSLT, por exemplo. Isso porque todos os dados são enclausurados em Tags que recebem como nome exatamente o que elas contem. Alem disso xmls podem ser facilmente mapeados ou transformados em outros tipos de XML.
    XML na verdade é como se fosse o alfabeto. Com ele você tem que criar suas frases, seu formato.
    A desvantagem do xml é que com o uso de tags para abrir e fechar como o html o tamanho do arquivo pode crescer muito.
    Para isso existe o JSON, mais compacto, que usa os simbolos {} para enclausurar os atributos.
    Se você não deseja nem formatar, nem exibir e nem transformar seus dados, JSON é preferível em vez de XML, uma vez que os dados podem ser estruturados e hierarquizados.
    Além disso, Arquivos XML podem ser transformados em arquivos JSON com a ajuda de um software, e vice - versa.
    Deve-se dar atenção ao formato no qual o arquivo será salvo: utf-8, utf-32 etc. Isso sim poderia ser uma causa de incompatibilidade.

    ResponderExcluir
  3. Boa noite...

    Como visualizar XML ? É como um html que se visualiza no IE, Mozilla, Chrome... ?

    Existe algum software somente para visualização desses arquivos ?

    (Pergunto porque lá no trabalho tentaram abrir arquivos do INMETRO com esse formato e estão tendo dificuldades...)

    ResponderExcluir

Todo comentário é bem-vindo, seja crítica ou elogio. O importante é sua manifestação. Só peço que se identifique para que posteriormente se for o caso eu entrar em contato.