XML proti SGML
XML je kratica za EXtensible Markup Language. Definiran je v specifikaciji XML 1.0, ki jo je razvil W3C (World Wide Web Consortium). XML zagotavlja standardni način, ki je prav tako preprost, za kodiranje podatkov in besedila, tako da se vsebina lahko izmenjuje med strojno opremo gonilnikov, operacijskimi sistemi in aplikacijami z malo človeškega posredovanja. SGML (Standard Generalized Markup Language) je standard ISO (Mednarodna organizacija za standardizacijo) za določanje označevalnega jezika dokumenta ali niza oznak. SGML ni dokumentni jezik, temveč Document Type Definition (DTD).
XML
XML je označevalni jezik, ki se uporablja za prenos podatkov in besedila med strojno opremo gonilnikov, operacijskimi sistemi in aplikacijami z malo človeškega posredovanja. XML ponuja oznake, atribute in strukture elementov, ki jih je mogoče uporabiti za zagotavljanje informacij o kontekstu. Te informacije o kontekstu lahko uporabite za dekodiranje pomena vsebine. To omogoča razvoj učinkovitih iskalnikov in izvajanje podatkovnega rudarjenja podatkov. Poleg tega so tradicionalne relacijske baze podatkov primerne kot podatki XML, ker bi jih lahko organizirali v vrstice in stolpce, vendar XML zagotavlja manj podpore za podatke z bogato vsebino, kot so zvok, video, zapleteni dokumenti itd. Baze podatkov XML shranjujejo podatke v strukturirani hierarhični obliki ki omogoča učinkovitejšo obdelavo poizvedb. Oznake XML niso vnaprej določene in uporabniki lahko določijo nove oznake in strukture dokumentov. Z uporabo XML so bili ustvarjeni tudi novi internetni jeziki, kot so RSS, Atom, SOAP in XHTM.
SGML
SGML temelji na ideji, da čeprav je dokument lahko prikazan z različnimi videzi glede na uporabljeni izhodni medij, vsebuje nekatere strukturne in semantične elemente, ki se ne spreminjajo glede na to, kako je prikazan. Dokumente, ki temeljijo na SGML, je mogoče ustvariti brez skrbi za videz dokumenta, ki se lahko čez čas spremeni, ampak za strukturo dokumenta. Poleg tega lahko prevajalnik SGML interpretira kateri koli dokument s svojim DTD, zato ti dokumenti zagotavljajo večjo prenosljivost. Prav tako bi lahko dokumente, ki temeljijo na SGML, enostavno ponovno prilagodili različnim medijem (na primer, dokument, namenjen tiskarskemu mediju, bi lahko ponovno prilagodili za zaslon).
Kakšna je razlika med XML in SGML?
Medtem ko je XML označevalni jezik, ki se uporablja za prenos podatkov in besedila med strojno opremo gonilnikov, operacijskimi sistemi in aplikacijami, je SGML standard ISO za določanje označevalnega jezika dokumenta ali niza oznak. XML je pravzaprav označevalni jezik, ki temelji na SGML. Toda XML nalaga nekatere omejitve, ki jih v SGML ni. XML na primer nalaga naslednje omejitve: sklice na entitete morajo biti zaprte z ločilom REFC, sklicevanja na zunanje podatkovne entitete v vsebini niso dovoljena, sklicevanja na znake morajo biti zaprta z ločilom REFC, sklicevanja na imenovane znake niso dovoljena itd. Poleg tega nekatere konstrukcije, kot so nezaprte začetne oznake, nezaprte končne oznake, prazne začetne oznake, prazne končne oznake, ki so dovoljene v SGML, ko je SHORTTAG DA, niso dovoljene v XML. Poleg tega nekatere deklaracije SGML, kot so DATATAG, OMITTAG, RANK, LINK (SIMPLE, IMPLICIT in EXPLICIT), itd., niso dovoljene v XML.