XML vs SGML
XML significa EXtensible Markup Language. Ele é definido na especificação XML 1.0, que é desenvolvida pelo W3C (World Wide Web Consortium). XML fornece uma maneira padrão, que também é simples, para codificar dados e texto de forma que o conteúdo possa ser trocado entre hardware de driver, sistemas operacionais e aplicativos com pouca intervenção humana. SGML (Standard Generalized Markup Language) é um padrão ISO (International Organization for Standardization) para especificar uma linguagem de marcação de documento 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 que é usada para transferir dados e texto entre hardware de driver, sistemas operacionais e aplicativos com pouca intervenção humana. 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 torna possível desenvolver mecanismos de pesquisa eficientes e realizar mineração de dados nos dados. Além disso, os bancos de dados relacionais tradicionais são adequados como dados XML porque podem ser organizados em linhas e colunas, mas o XML fornece menos suporte para dados com conteúdo rico, como áudio, vídeo, documentos complexos, etc. Os bancos de dados XML armazenam dados de forma estruturada e hierárquica que permite que as consultas sejam processadas de forma mais eficiente. 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 de internet como RSS, Atom, SOAP e XHTM foram criadas usando XML.
SGML
SGML é baseado na ideia de que mesmo que 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 ele é exibido. Documentos baseados em SGML podem ser criados sem se preocupar com a aparência do documento que pode mudar ao longo do tempo, mas sim com a estrutura do documento. Além disso, o compilador SGML pode interpretar qualquer documento usando seu DTD, portanto, esses documentos fornecem mais portabilidade. Além disso, documentos baseados em SGML podem ser facilmente readaptados a diferentes mídias (por exemplo, documentos destinados à mídia de impressão podem ser readaptados para uma tela de exibição).
Qual é a diferença entre XML e SGML?
Enquanto XML é uma linguagem de marcação que é usada para transferir dados e texto entre hardware de driver, sistemas operacionais e aplicativos, 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, o XML impõe as seguintes restrições: referências a entidades devem ser fechadas com um delimitador REFC, referências a entidades de dados externas no conteúdo não são permitidas, referências a caracteres devem ser fechadas com um delimitador REFC, referências a caracteres nomeados não são permitidas, etc. Além disso, algumas construções como tags iniciais não fechadas, tags finais não fechadas, tags iniciais vazias, tags finais vazias que são permitidas em SGML quando SHORTTAG é YES, não são permitidas em XML. Além disso, algumas declarações SGML como DATATAG, OMITTAG, RANK, LINK (SIMPLE, IMPLICIT e EXPLICIT), etc. não são permitidas em XML.