XML frente a SGML
XML significa Lenguaje de marcado extensible. Está definido en la especificación XML 1.0, desarrollada por el W3C (World Wide Web Consortium). XML proporciona una forma estándar, que también es simple, de codificar datos y texto de modo que el contenido pueda intercambiarse entre el hardware del controlador, los sistemas operativos y las aplicaciones con poca intervención humana. SGML (Lenguaje de marcado generalizado estándar) es un estándar ISO (Organización internacional para la estandarización) para especificar un lenguaje de marcado de documentos o un conjunto de etiquetas. SGML no es un lenguaje de documentos sino una definición de tipo de documento (DTD).
XML
XML es un lenguaje de marcado que se utiliza para transferir datos y texto entre el hardware del controlador, los sistemas operativos y las aplicaciones con poca intervención humana. XML proporciona etiquetas, atributos y estructuras de elementos que se pueden utilizar para proporcionar información de contexto. Esta información de contexto se puede utilizar para decodificar el significado del contenido. Esto hace posible desarrollar motores de búsqueda eficientes y realizar minería de datos sobre los datos. Además, las bases de datos relacionales tradicionales son adecuadas como datos XML porque pueden organizarse en filas y columnas, pero XML brinda menos soporte para datos con contenido enriquecido, como audio, video, documentos complejos, etc. Las bases de datos XML almacenan datos en una forma estructurada y jerárquica. lo que permite que las consultas se procesen de manera más eficiente. Las etiquetas XML no están predefinidas y los usuarios pueden definir nuevas etiquetas y estructuras de documentos. Además, se crearon nuevos lenguajes de Internet como RSS, Atom, SOAP y XHTM usando XML.
SGML
SGML se basa en la idea de que, aunque un documento puede mostrarse con diferentes apariencias según el medio de salida utilizado, contiene algunos elementos estructurales y semánticos que no cambian con respecto a cómo se muestra. Los documentos basados en SGML se pueden crear sin preocuparse por la apariencia del documento, que puede cambiar con el tiempo, pero sí por la estructura del documento. Además, el compilador SGML puede interpretar cualquier documento usando su DTD, por lo que estos documentos brindan más portabilidad. Además, los documentos basados en SGML podrían readaptarse fácilmente a diferentes medios (por ejemplo, un documento destinado a medios impresos podría readaptarse para una pantalla de visualización).
¿Cuál es la diferencia entre XML y SGML?
Mientras que XML es un lenguaje de marcado que se utiliza para transferir datos y texto entre el hardware del controlador, los sistemas operativos y las aplicaciones, SGML es un estándar ISO para especificar un lenguaje de marcado de documentos o un conjunto de etiquetas. XML es en realidad un lenguaje de marcado que se basa en SGML. Pero XML impone algunas restricciones que no están en SGML. Por ejemplo, XML impone las siguientes restricciones: las referencias a entidades deben cerrarse con un delimitador REFC, las referencias a entidades de datos externas en el contenido no están permitidas, las referencias a caracteres deben cerrarse con un delimitador REFC, las referencias a caracteres con nombre no están permitidas, etc. Además, algunas construcciones tales como etiquetas de inicio no cerradas, etiquetas de fin no cerradas, etiquetas de inicio vacías, etiquetas de fin vacías que están permitidas en SGML cuando SHORTTAG es SÍ, no están permitidas en XML. Además, algunas declaraciones SGML como DATATAG, OMITTAG, RANK, LINK (SIMPLE, IMPLICIT y EXPLICIT), etc. no están permitidas en XML.