Seção 3: Autores

Q 3.6: Como converter XML para outros formatos de arquivos?

Escreva uma conversão em uma língua que entenda XML

Embora seja possível escrever rotinas de conversão inventando seu próprio analisador XML, não é recomendado, exceto como um exercício para estudantes de ciência computacional. Todos os principais idiomas têm bibliotecas XML que fazem todo o levantamento pesado de análise (e validação, se necessário).

Você precisa saber o que está no documento XML antes de começar: não há varinha mágica que deduza automaticamente o que as coisas significam e onde elas estão localizadas no arquivo. Se você recebeu alguns arquivos XML, você precisará buscar o criador ou alguma documentação sobre eles. As primeiras 2-3 linhas do arquivo podem conter uma pista sobre o tipo de XML que são. Você quase certamente precisará de uma cópia do DTD ou Esquema para o qual os arquivos foram criados

As opções para programação são:

  • Use um idioma projetado para a tarefa. O XSLT2 possui todas as facilidades para manipulação do XML incorporado desde o início, e os processadores autônomos estão disponíveis para todas as plataformas. Muitos editores de XML têm uma cópia do XSLT (XSLT2, espero) embutida, de modo que eles oferecem um ambiente de desenvolvimento integrado para edição e conversão. A conversão XSLT2 também pode ser executada dentro de pacotes de servidores como o Apache Cocoon..

  • Use um pacote de processamento ou pipelining XML. Estes são (geralmente) produtos comerciais que fornecem extensas funções de gerenciamento de documentos, documento de banco de dados e conversão de documentos e edição, muitas vezes como parte de uma solução de informação corporativa muito maior, usando XSLT2 ou seus próprios sistemas internos. Dois populares são MarkLogic e OmniMark .

  • Para dados, use um sistema de conversão que não exija código de escrita: o Flexter é um exemplo de um com uma interface gráfica para mapear elementos de origem (XML) para campos de destino (vários formatos). Embora esta abordagem não seja apropriada para "documento" XML (livros, artigos, etc.), fornece um método útil para os tipos de "dados" XML tabulares de complexidade arbitrária.

  • Use um idioma convencional convencional. Java ou C (ou uma de suas muitas variantes) seria comum; Pascal, FORTRAN ou COBOL são raros estes dias, mas existem bibliotecas XML para eles). BASIC, alguém?

  • Use uma linguagem de script. Perl, Python, Tcl, VBscript ou mesmo Powershell são todos populares, e bibliotecas XML existem para eles; Os Python têm uma excelente reputação.

  • Combine utilitários XML com utilitários de comando de shell padrão. Aqui está um exemplo precoce de uma rotina XML-para-CSV que usa onsgmls para expor o ESIS e awk para reformatá-lo. Processos similares podem ser desenvolvidos usando o kit de ferramentas LTXML2 toolkit.

  • Existem programas para download (às vezes gratuitos) que afirmam ser conversores XML "fáceis". O editor gostaria de ouvir recomendações ou avisos ☺.

O processo de conversão de XML para outros formatos às vezes é referido como "down-convert", pois pode envolver a perda inevitável de informações (geralmente metadados) quando o formato de destino simplesmente não tem como representá-lo.