XML versus SGML
XML staat voor EXtensible Markup Language. Het is gedefinieerd in de XML 1.0-specificatie, die is ontwikkeld door het W3C (World Wide Web Consortium). XML biedt een standaardmanier, die ook eenvoudig is, om gegevens en tekst zo te coderen dat de inhoud met weinig menselijke tussenkomst kan worden uitgewisseld tussen stuurprogrammahardware, besturingssystemen en applicaties. SGML (Standard Generalized Markup Language) is een ISO-standaard (International Organization for Standardization) voor het specificeren van een opmaaktaal voor documenten of een set tags. SGML is geen documenttaal maar een Document Type Definition (DTD).
XML
XML is een opmaaktaal die wordt gebruikt om gegevens en tekst tussen stuurprogrammahardware, besturingssystemen en applicaties over te dragen met weinig menselijke tussenkomst. XML biedt tags, attributen en elementstructuren die kunnen worden gebruikt om contextinformatie te verschaffen. Deze contextinformatie kan worden gebruikt om de betekenis van de inhoud te ontcijferen. Dit maakt het mogelijk om efficiënte zoekmachines te ontwikkelen en datamining op de data uit te voeren. Bovendien zijn traditionele relationele databases geschikt als XML-gegevens omdat ze in rijen en kolommen kunnen worden georganiseerd, maar XML biedt minder ondersteuning voor gegevens met rijke inhoud zoals audio, video, complexe documenten, enz. XML-databases slaan gegevens op in een gestructureerde, hiërarchische vorm waardoor vragen efficiënter kunnen worden verwerkt. XML-tags zijn niet vooraf gedefinieerd en de gebruikers kunnen nieuwe tags en documentstructuren definiëren. Ook zijn er nieuwe internettalen zoals RSS, Atom, SOAP en XHTM gemaakt met XML.
SGML
SGML is gebaseerd op het idee dat hoewel een document kan worden weergegeven met verschillende verschijningsvormen, afhankelijk van het gebruikte uitvoermedium, het enkele structurele en semantische elementen bevat die niet veranderen met betrekking tot hoe het wordt weergegeven. Op SGML gebaseerde documenten kunnen worden gemaakt zonder u zorgen te maken over het uiterlijk van het document dat in de loop van de tijd kan veranderen, maar over de documentstructuur. Verder kan de SGML-compiler elk document interpreteren met behulp van zijn DTD, daarom bieden deze documenten meer draagbaarheid. Ook kunnen documenten op basis van SGML gemakkelijk opnieuw worden aangepast aan verschillende media (bijvoorbeeld een document dat bedoeld is voor printmedium kan opnieuw worden aangepast voor een beeldscherm).
Wat is het verschil tussen XML en SGML?
Terwijl XML een opmaaktaal is die wordt gebruikt om gegevens en tekst over te dragen tussen stuurprogrammahardware, besturingssystemen en toepassingen, is SGML een ISO-standaard voor het specificeren van een opmaaktaal voor documenten of een set tags. XML is eigenlijk een opmaaktaal die is gebaseerd op SGML. Maar XML legt een aantal beperkingen op die niet in SGML voorkomen. XML legt bijvoorbeeld de volgende beperkingen op: entiteitsreferenties moeten worden afgesloten met een REFC-scheidingsteken, verwijzingen naar externe gegevensentiteiten in de inhoud zijn niet toegestaan, tekenreferenties moeten worden gesloten met een REFC-scheidingsteken, benoemde tekenreferenties zijn niet toegestaan, enz. Verder zijn sommige constructies zoals niet-gesloten start-tags, niet-gesloten eind-tags, lege start-tags, lege eind-tags die zijn toegestaan in SGML als SHORTTAG JA is, niet toegestaan in XML. Bovendien zijn sommige SGML-declaraties zoals DATATAG, OMITTAG, RANK, LINK (SIMPLE, IMPLICIT en EXPLICIT), enz. niet toegestaan in XML.