XML срещу SGML
XML означава Extensible Markup Language. Дефиниран е в спецификацията XML 1.0, която е разработена от W3C (World Wide Web Consortium). XML предоставя стандартен начин, който също е прост, за кодиране на данни и текст, така че съдържанието да може да се обменя между драйверен хардуер, операционни системи и приложения с малка човешка намеса. SGML (Standard Generalized Markup Language) е стандарт на ISO (Международна организация за стандартизация) за определяне на език за маркиране на документи или набор от тагове. SGML не е език за документи, а дефиниция на типа документ (DTD).
XML
XML е език за маркиране, който се използва за прехвърляне на данни и текст между хардуер на драйвера, операционни системи и приложения с малка човешка намеса. XML предоставя етикети, атрибути и структури на елементи, които могат да се използват за предоставяне на контекстна информация. Тази контекстна информация може да се използва за декодиране на значението на съдържанието. Това прави възможно разработването на ефективни търсачки и извършването на извличане на данни върху данните. Освен това традиционните релационни бази данни са подходящи като XML данни, защото могат да бъдат организирани в редове и колони, но XML осигурява по-малко поддръжка за данни с богато съдържание като аудио, видео, сложни документи и т.н. XML базите данни съхраняват данни в структурирана, йерархична форма което позволява заявките да се обработват по-ефективно. XML таговете не са предварително дефинирани и потребителите могат да дефинират нови тагове и структури на документи. Освен това с помощта на XML бяха създадени нови интернет езици като RSS, Atom, SOAP и XHTM.
SGML
SGML се основава на идеята, че въпреки че даден документ може да бъде показан с различен външен вид в зависимост от използвания изходен носител, той съдържа някои структурни и семантични елементи, които не се променят в зависимост от това как се показва. Документи, базирани на SGML, могат да бъдат създадени без да се притеснявате за външния вид на документа, който може да се промени с течение на времето, но загрижени за структурата на документа. Освен това компилаторът на SGML може да интерпретира всеки документ, използвайки неговия DTD, следователно тези документи осигуряват по-голяма преносимост. Освен това документите, базирани на SGML, могат лесно да бъдат пренастроени към различни медии (например документ, предназначен за печатна среда, може да бъде пренастроен за екран).
Каква е разликата между XML и SGML?
Докато XML е език за маркиране, който се използва за прехвърляне на данни и текст между хардуер на драйвери, операционни системи и приложения, SGML е ISO стандарт за определяне на език за маркиране на документи или набор от тагове. XML всъщност е език за маркиране, който се основава на SGML. Но XML налага някои ограничения, които не са в SGML. Например XML налага следните ограничения: препратките към обекти трябва да бъдат затворени с разделител REFC, препратките към външни обекти с данни в съдържанието не са разрешени, препратките към символи трябва да бъдат затворени с разделител REFC, препратките към именувани знаци не са разрешени и т.н. Освен това, някои конструкции като незатворени начални тагове, незатворени крайни тагове, празни начални тагове, празни крайни тагове, които са разрешени в SGML, когато SHORTTAG е ДА, не са разрешени в XML. Освен това някои SGML декларации като DATATAG, OMITTAG, RANK, LINK (SIMPLE, IMPLICIT и EXPLICIT) и т.н. не са разрешени в XML.