O SGML desde sua concepção é feito para ser adaptado às suas necessidades. Como não há um banco de dados que sirva a todas as necessidades, não há aplicativos SGML que se adaptem a todas as empresas. Como as informações diferem de empresa para empresa, há diferentes DTDs e mais e mais empresas estão desenvolvendo padrões para a armazenagem dessa informação por parte da indústria.
Há diversos produtos no mercado que tratam o SGML até um determinado nível, mas nem todos tratam todas as características definidas no padrão. Os tópicos abaixo definem algumas necessidades básicas:
Uma característica indispensável num sistema é a validação de informações em tempo real e interativamente. Esta característica permite aos programas disponibilizarem uma ajuda baseada no contexto atual e na posição do cursor. Por exemplo, se o cursor estiver imediatamente após uma marcação de início de seção e todas as seções devem possuir um cabeçalho o software só permite que você insira um cabeçalho e nada mais. Esta característica assegura que o autor faça as marcações corretas o tempo todo. Por outro lado, sistemas que fazem o processamento de marcações em lotes permitem que quaisquer marcações sejam inseridas em qualquer local do texto, forçando o autor a corrigi-las caso estejam no local errado.
Se o seu programa produzir SGML apenas como saída você ainda se encontra preso a um formato proprietário e ainda está à mercê de programas e máquinas obsoletos. Um sistema de editoração que use SGML como sua linguagem nativa é muito superior a um sistema que apenas faz a filtragem dos dados para o SGML. Neste último, o autor cria o documento em um formato qualquer e depois o converte para SGML e roda a ferramenta de validação. Quando ocorrem erros nessa etapa de validação, o autor precisa corrigir o documento original, realizar uma nova conversão e então validar o documento novamente. Este ciclo deve ser repetido até que nenhum erro de validação seja encontrado.
Um sistema que trabalhe diretamente com SGML elimina os custos desse processo repetitivo e tedioso, além de liberar mais tempo para que os autores de documentação trabalhem no texto.
Alguns sistemas SGML o forçam a usar DTDs específicos e fornecidos com eles. Para ser completamente usável, um sistema SGML deve permitir que você crie diversos tipos de documentos diferentes. Essa capacidade é chamada de habilidade para lidar com DTDs arbitrários ou específicos.
Os desenvolvedores do SGML já colocaram no padrão da linguagem diversas características para facilitar a automação do reaproveitamento e da publicação de documentos. Um sistema de edição completamente de acordo com SGML deve fornecer suporte a essas características. Algumas das características básicas que devem ser procuradas são: