XML vs SGML
XML significa EXtensible Markup Language. Ele é definido na especificação XML 1.0, desenvolvida pelo W3C (World Wide Web Consortium). O XML fornece uma maneira padrão, que também é simples, de codificar dados e texto, de modo que o conteúdo possa ser trocado pelo hardware do driver, sistemas operacionais e aplicativos com pouca intervenção humana. O SGML (Standard Generalized Markup Language) é um padrão ISO (International Organization for Standardization) para especificar uma linguagem de marcação de documentos ou um conjunto de tags. SGML não é uma linguagem de documento, mas uma Definição de Tipo de Documento (DTD).
XML
XML é uma linguagem de marcação usada para transferir dados e texto entre hardware de driver, sistemas operacionais e aplicativos com pouca intervenção humana. O XML fornece tags, atributos e estruturas de elementos que podem ser usados para fornecer informações de contexto. Essas informações de contexto podem ser usadas para decodificar o significado do conteúdo. Isso possibilita o desenvolvimento de mecanismos de pesquisa eficientes e a mineração de dados. Além disso, os bancos de dados relacionais tradicionais são adequados como dados XML, pois podem ser organizados em linhas e colunas, mas o XML fornece menos suporte a dados com conteúdo rico, como áudio, vídeo, documentos complexos etc. Os bancos de dados XML armazenam dados de forma hierárquica e estruturada que permite que as consultas sejam processadas com mais eficiência. As tags XML não são predefinidas e os usuários podem definir novas tags e estruturas de documentos. Além disso, novas linguagens da Internet como RSS, Atom, SOAP e XHTM foram criadas usando XML.
SGML
O SGML é baseado na ideia de que, embora um documento possa ser exibido com aparências diferentes, dependendo do meio de saída usado, ele contém alguns elementos estruturais e semânticos que não mudam com referência à forma como é exibido. Os documentos baseados em SGML podem ser criados sem se preocupar com a aparência do documento, que pode mudar horas extras, mas com a estrutura do documento. Além disso, o compilador SGML pode interpretar qualquer documento usando sua DTD; portanto, esses documentos fornecem mais portabilidade. Além disso, documentos baseados em SGML podem ser facilmente adaptados a diferentes mídias (por exemplo, documentos destinados à mídia de impressão podem ser readaptos para uma tela de exibição).
Qual é a diferença entre XML e SGML?
Enquanto XML é uma linguagem de marcação usada para transferir dados e texto entre hardware de driver, sistemas operacionais e aplicativos, o SGML é um padrão ISO para especificar uma linguagem de marcação de documento ou um conjunto de tags. XML é na verdade uma linguagem de marcação baseada em SGML. Mas o XML impõe algumas restrições que não estão no SGML. Por exemplo, XML impõe restrições a seguir: referências de entidade devem ser fechadas com um delimitador REFC, referências a entidades de dados externas no conteúdo não são permitidas, referências de caracteres devem ser fechadas com um delimitador REFC, referências de caracteres nomeadas não são permitidas etc. Além disso, algumas construções como tags de início não fechadas, tags de final não fechadas, tags de início vazias, tags de final vazias que são permitidas no SGML quando SHORTTAG é YES, não são permitidas no XML. Além disso, algumas declarações SGML como DATATAG, OMITTAG, RANK, LINK (SIMPLE, IMPLICIT e EXPLICIT) etc. não são permitidas no XML.