XML
Em informática, XML é um tipo de linguagem de marcação da organização de padrões W3C, derivada da linguagem SGML, usada para compartilhamento fácil de informações através da internet, como documentos com dados organizados hierarquicamente para ser usado por diferentes sistemas informatizados (portabilidade); ou seja, tem o objetivo de garantir que documentos codificados seguindo regras possam ser transportados de um ambiente para outro sem perder informação, usando a potencialidade e flexibilidade da SGML de forma simplificada.
Entre as linguagens baseadas em XML estão: A principal característica do XML, de criar uma infraestrutura única para diversas linguagens, é que linguagens desconhecidas e de pouco uso também podem ser definidas sem maior trabalho e sem necessidade de serem submetidas aos comitês de padronização.
Imagem: dpstyles™ · BY · Openverse
A primeira linguagem de marcação criada foi a SGML no final da década de 1960 com o objetivo de construir um sistema portável para manipulação de documentos. O desenvolvimento da SGML possibilitou o surgimento do HTML (HyperText Markup Language) no final da década de 1980, criado pelo pesquisador Berners-Lee, revolucionando a maneira de visualização das páginas online na Web. Atualizado em 2014 o HTML está na versão HTML5, que unificou tais melhorias e princípios. Em 1996, o engenheiro Jon Bosak desenvolveu o XML (eXtensible Markup Language) também com base na linguagem SGML, com o intuito de utilizar as marcações para descrever a estrutura dos conteúdos, usando a potencialidade e flexibilidade da linguagem SGML de forma simplificada (embora sendo a forma restrita de SGML, o XML conserva todo o poder das características do antecessor sem a sua complexidade). Em 2000, foi desenvolvida a XHTML (eXtensible Hypertext Markup Language), combinando as linguagens HTML e XML. Sendo responsável pela melhoria na exibição de páginas online e na acessibilidade do conteúdo.
Imagem: carol shergold · BY · Openverse
Em meados da década de 1990, o World Wide Web Consortium (W3C) começou a trabalhar em uma linguagem de marcação (do inglês: markup language) que combinasse a flexibilidade da SGML com a simplicidade da HTML. O princípio do projeto era criar uma linguagem que pudesse ser lida por software, e integrar-se com as demais linguagens. Sua filosofia seria incorporada por vários princípios importantes: O XML é um formato para a criação de documentos com dados organizados de forma hierárquica, como se vê, frequentemente, em documentos de texto formatados, imagens vetoriais ou bancos de dados. Pela sua portabilidade, já que é um formato que não depende das plataformas de hardware ou de software, um banco de dados pode, através de uma aplicação, escrever em um arquivo XML, e um outro banco distinto pode ler então estes mesmos dados.
Imagem: Dreftymac · BY-SA · Openverse
Este exemplo demonstra a sintaxe flexível do XML sendo usada para descrever uma receita de pão: "Receita" é o nome principal para o seu documento. Note que a semelhança entre XML e HTML é grande, na 1ª linha abrimos a tag Receita e na última linha a fechamos, como em HTML, assim se estendendo por todo o exemplo.
Imagem: B Tal · BY-NC · Openverse
Com relação aos outros "formatos universais para intercâmbio de dados" já propostos e experimentados, o XML apresenta diversas vantagens técnicas, mas são as vantagens não-técnicas que o tornam um tópico de tão grande importância:
Desvantagens técnicas
As desvantagens em geral se restringem às aplicações que não demandam maior complexidade, tais como vetores, listas associativas (chave-valor) e informações relativas a configuração, em que o bom senso estabelece a melhor escolha (entre o XML ou um formato menos popular). O "XML simples" pode ser substituído por formatos mais simples, como properties, TOML, YAML, JSON e Simple Outline XML. Os principais critérios para se avaliar a demanda por um formato mais simples são: O formato properties, por exemplo, é mais fácil de ser editado por leigos, por ser apenas uma lista de itens do tipo chave-valor, e o JSON é um exemplo de um formato mais prático e rápido em contexto Javascript.
Um dos principais requisitos para a integração de sistemas de informações é a existência de um mecanismo que possa mediar e compatibilizar a troca de informações entre sistemas que utilizam diferentes formas de representações. O XML para banco de dados é uma forma de resolver esse problema, utilizando uma técnica que faz essa interação de dados de uma forma que não seja perdida ou deixada nenhuma informação relevante contida em qualquer uma das bases de dados que serão integradas.
Quando Usar
Se será necessário ou não armazenar as informações de uma determinada aplicação em um formato XML, deve-se analisar o objetivo de armazená-las e a forma como elas serão recuperadas. Se, por exemplo, futuramente uma aplicação utilizará apenas o formato XML, é recomendado já armazená-la nesse formato. Abaixo, segue uma lista com possíveis cenários onde a utilização desse formato é de grande utilidade:
XML em SGBD Relacionais
Como qualquer outro tipo de informação, um documento XML tende a ser armazenado em um banco de dados. E uma das formas de armazenar estes documentos é utilizando SGBD relacionais (Sistema de gerenciamento de banco de dados relacionais). Utilizar esta forma de armazenamento é vantajosa, pois esta já é uma tecnologia bastante utilizada e muito bem desenvolvida, o que a torna uma plataforma bem estável para utilização. Para armazenar os dados em XML em um banco de dados relacional, uma das formas a ser utilizada é através do tipo de dados CLOB. Se utilizador desta forma, o banco de dados não conhecerá a estrutura desta informação, servindo apenas como um repositório de dados.
SGBDs habilitados a XML
De maneira geral, um SGBD que é habilitado para XML, realiza uma leitura de toda a estrutura de um documento XML e mapeia seus elementos , criando tipos de dados abstratos, de acordo com o XML facilitando o armazenamento e o processamento destes dados.
Integrando XML com Banco de Dados
A linguagem SQL define alguns operadores que quando utilizados em um banco de dados, geram um resultado dentro do padrão de XML. Alguns exemplos de interações quando utilizado o SGBD são: XMLELEMENT - Transforma os valores contidos no modelo relacional em estrutura XML; XMLFOREST - Cria uma lista (Floresta) de elementos XML onde cada Operador produz um novo elemento;


