Sobes.tech
Middle

Ποια είναι η σχέση μεταξύ SGML, HTML, XML και XHTML;

sobes.tech AI

Απάντηση από AI

SGML (Standard Generalized Markup Language) είναι μια μετα-γλώσσα σήμανσης, πρότυπο ISO 8879. Ορίζει τη σύνταξη για την περιγραφή άλλων γλωσσών σήμανσης, αλλά δεν αποτελεί από μόνη της γλώσσα σήμανσης για έγγραφα. Τα HTML και XML είναι εφαρμογές (ορισμοί) του SGML, αλλά με διαφορετικούς σκοπούς και περιορισμούς.

Το HTML (Γλώσσα Σήμανσης Υπερκειμένου) είναι μια γλώσσα σήμανσης βασισμένη στο SGML, σχεδιασμένη για τη δημιουργία ιστοσελίδων. Έχει ένα σταθερό σύνολο ετικετών και κανόνων για τη χρήση τους, με πιο ευέλικτους κανόνες σύνταξης σε σύγκριση με το XML (π.χ., δεν απαιτείται η υποχρεωτική κλεισίματος όλων των ετικετών).

Το XML (Επεκτάσιμη Γλώσσα Σήμανσης) είναι μια άλλη μετα-γλώσσα σήμανσης, απόγονος του SGML, αλλά πολύ πιο απλή και αυστηρή. Η κύρια διαφορά από το SGML είναι ότι το XML εστιάζει στη μεταφορά δομημένων δεδομένων, όχι στην παρουσίαση του εγγράφου. Σε αντίθεση με το HTML, το XML δεν έχει σταθερό σύνολο ετικετών - ορίζονται από τον χρήστη. Απαιτεί αυστηρή τήρηση της σύνταξης (πάντα κλείσιμο ετικετών, σωστή εμφύτευση κ.λπ.).

Το XHTML (Επεκτάσιμη Γλώσσα Σήμανσης Υπερκειμένου) είναι μια αναδιατύπωση του HTML 4 με τη μορφή εφαρμογής XML. Δηλαδή, είναι HTML, αλλά με αυστηρότερη σύνταξη, παρόμοια με τους κανόνες του XML. Προσπάθησε να συνδυάσει τα πλεονεκτήματα του HTML (για ιστοσελίδες) και του XML (αυστηρότητα, επεκτασιμότητα), αλλά μέχρι σήμερα έχει σε μεγάλο βαθμό αντικατασταθεί από το HTML5.

Έτσι, η σχέση είναι η εξής:

  • Το SGML είναι ο γονέας/βάση για το HTML και το XML.
  • Το HTML και το XML είναι εφαρμογές του SGML (έχουν σύνταξη που ορίζεται από τους κανόνες του SGML).
  • Το XHTML είναι μια εκδοχή του HTML που ξαναγράφτηκε σύμφωνα με τους κανόνες σύνταξης του XML.
  • Το HTML δημιουργήθηκε για την εμφάνιση εγγράφων στον περιηγητή, το XML για την μεταφορά και αποθήκευση δομημένων δεδομένων.
  • Το XHTML προσπάθησε να ενώσει την εμφάνιση (HTML) με την αυστηρότητα (XML).

Σε σύντομο, η αλυσίδα εξαρτήσεων είναι: SGML -> HTML, SGML -> XML. Και επίσης: HTML + σύνταξη XML -> XHTML.

Παραδείγματα δομής:

<!-- Παράδειγμα HTML -->
<!DOCTYPE html>
<html>
<head>
    <title>Τίτλος</title>
</head>
<body>
    <h1>Χαιρετισμός</h1>
    <p>Αυτό είναι ένα παράγραφος.</p>
</body>
</html>
<!-- Παράδειγμα XML -->
<βιβλίο>
    <τίτλος>Το βιβλίο μου</τίτλος>
    <συγγραφέας>Γιάννης Παπαδόπουλος</συγγραφέας>
    <είδος>Επιστημονική φαντασία</είδος>
</βιβλίο>
<!-- Παράδειγμα XHTML -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="el" lang="el">
<head>
    <title>Τίτλος</title>
</head>
<body>
    <h1>Χαιρετισμός</h1>
    <p>Αυτό είναι ένα παράγραφος.</p>
</body>
</html>

Προσοχή στην αυστηρότητα κλεισίματος των ετικετών σε XML και XHTML σε σύγκριση με το HTML.