Pontos fortes da XML
Inteligência: a XML é inteligente para qualquer nível de complexidade. A marcação pode ser alterada de uma marcação mais geral como \"<CÃO> Lassie </CÃO>\" para uma mais detalhista, como \"<CÃO> <VENHA_PARA_CASA> <COLLIE> Lassie </COLLIE> </VENHA_PARA_CASA> </CÃO>\". As idéias são bem marcadas para que \"<VENDO_DOIS> duplo </VENDO_DOIS>\" e \"<MAIS_LICOR> duplo </MAIS_LICOR>\" sejam sempre valores diferentes. A informação conhece a si mesma. Não é necessária mais nenhuma idéia indesejável;
Adaptação: a XML é a língua-mãe de outras linguagens. Assim, linguagens como DickML e JaneML tornaram-se possíveis. A adaptação é infinita. Marcações personalizadas podem ser criadas para qualquer necessidade. Se uma marcação que descreva como uma pizza pepperoni é diferente de uma pizza calabresa for necessária, ela pode ser feita;
Manutenção: a XML é fácil de manter. Ela contém somente idéias e marcações. Folhas de estilos e links vêm em separado, e não escondidas no documento. Cada um pode ser alterado separadamente quando preciso com fácil acesso e fáceis mudanças. Não é preciso mais se achar em uma bagunça de marcações;
Ligação: a XML possui uma maneira de ligar que inclui todas as formas de ligação. Não só isso; ela liga de maneiras que a HTML não pode. A HTML pode fazer de uma maneira simples, onde um objeto se liga a outro. A XML faz isso, mas também pode ligar dois ou mais pontos a uma idéia. Existem ainda links gêmeos que ligam todas as ideías dentro de uma mesma. Qualquer link entre uma idéia pode ser manipulado de uma única maneira;
Simplicidade: a XML é simples. Um usuário de média experiência que olha a XML pode achá-la difícil de acreditar no que vê. Comparada com a HTML não. Comparada com a SGML é um estudo de simplicidade. A especificação da SGML tem 300 páginas. A da XML, 33. Idéias obscuras e desnecessárias foram retiradas em favor de idéias concisas. A XML vai direto ao ponto;
Portabilidade: a XML é de fácil portabilidade. A razão da sua existência é força e portabilidade. A SGML tem força. A HTML tem portabilidade. A XML tem ambas. A XML pode ser navegada com ou sem o seu DTD (Document Type Definition, ou Definição de Tipo de Documento - as normas que definem como as tags são estruturas nos documentos XML), tornando o download mais rápido. Tudo que um navegador precisa para ver XML é ter a noção que ela própria e a folha de estilos controlam a aparência. Se uma validação estrita é necessária, o seu DTD pode acompanhá-lo e fornecer detalhes exatos da sua marcação.
Objetivos do desenvolvimento da XML
A especificação da XML primou pelos seguintes objetivos:
Deveria ser claro usar a XML na Internet;
A XML deveria suportar uma grande variedade de aplicações;
A XML deveria ser compatíel com SGML;
Deveria ser fácil escrever programas que processem documentos XML;
O número de recuros opcionais em XML deveria ser mantido em um mínimo absoluto, idealmente zero;
Os documentos XML deveriam ser legíveis pelos seres humanos e razoavelmente claros;
O projeto XML deveria ser preparado rapidamente;
O projeto XML deveria ser formal e conciso;
Os documentos XML deveriam ser fáceis de serem criados;
A concisão na marcação em XML é de mínima importância.
Como a XML é definida
A XML é definida pelas seguintes especificações:
Extensible Markup Language (XML) 1.0: define a sintaxe da XML;
XML Pointer Language (XPointer) e XML Linking Language (XLink): define um padrão para representar os links entre os recursos. Além dos links simples, como a tag <A> da HTML, a XML possui mecanismos para ligar recursos múltiplos e diferentes. A XPointer desceve como endereçar um recurso, e a XLink descreve como associar dois ou mais recursos;
Extensible Style Language (XSL): define a linguagem de folhas de estilos padão para a XML.
Um dos exemplos mais visíveis atualmente do emprego da XML é o CDF (Channel Definition Format, ou Formato de Definição de Canal), sublinguagem da XML desenvolvida pela Microsoft para a implementação dos Active Channels
<?XML VERSION=\"1.0\" ENCODING=\"windows-1252\" ?>
<Channel Precache=\"YES\" Base=\"http://www.meucanal.com/\" HREF=\"http://www.meucanal.com/\" LastMod=\"1998-10-23T08:00\">
<Title>Meu Canal</Title>
<Abstract XML-Space=\"Preserve\">Meu Canal - Exemplo de CDF</Abstract>
<Logo Style=\"Icon\" HREF=\"32x32.gif\" />
<Logo Style=\"Image\" HREF=\"80x32.gif\" />
<Logo Style=\"Image-Wide\" HREF=\"194x32.gif\" />
<Item Precache=\"YES\" HREF=\"ex1.html\" LastMod=\"1998-10-23T08:00\">
<Title>Exemplo 1</Title>
<Abstract XML-Space=\"Preserve\">Exemplo 1 de CDF</Abstract>
<Logo Style=\"Icon\" HREF=\"ex1.gif\" />
</Item>
<Item Precache=\"YES\" HREF=\"ex2.html\" LastMod=\"1998-10-23T08:00\">
<Title>Exemplo 2</Title>
<Abstract XML-Space=\"Preserve\">Exemplo 2 de CDF</Abstract>
<Logo Style=\"Icon\" HREF=\"ex2.gif\" />
</Item>
</Channel>
A primeira linha já foi descrita nesse estudo; é a declaração XML.
A seguir, é definido o tipo de documento Channel, com os atributos Precache, Base, HREF e LastMod. Nesse caso, eles indicam que o canal deve ser pré-gravado no computador do host, que a URL base para os links e a URL do canal é \"http://www.meucanal.com\" e que a última modificação feita no canal foi no dia 23 de outubro de 1998, às 8:00 horas.
São definidos, então, alguns elementos de Channel: o título do canal, a descrição do canal, e as três imagens para representar o canal (o ícone no Menu \"Canais\" em \"Favoruitos\", a imagem na Barra de Canais na Área de Trabalho e a imagem na Barra de Canais mostrada no Internet Explorer, respectivamente).
Finalmente, definem-se dois itens do canal, os arquivos \"ex1.html\" e \"ex2.html\", que são descritos como \"Exemplo 1 de CDF\" e \"Exemplo 2 de CDF\", respectivamente.
Note nos elementos Channel e Item a presença do atributo XML-Space citado anteriormente. Em todos os casos deste exemplo, ele instrui ao processador XML que mantenha os espaços em branco.