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 הוא YES, אינם מותרים ב-XML. בנוסף, חלק מהצהרות SGML כגון DATATAG, OMITTAG, RANK, LINK (SIMPLE, IMPLICIT ו-EXPLICIT) וכו' אינן מותרות ב-XML.