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 таговете не са предварително дефинирани и потребителите могат да дефинират нови маркери и структури на документи. Също така, нови интернет езици като RSS, Atom, SOAP и XHTM бяха създадени с помощта на XML.
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,ВРЪЗКА (ПРОСТО, ИМПЛИЦИТНО и ЕКСПЛИКТНО) и др. Не са разрешени в XML.