Jaki jest związek między SGML, HTML, XML i XHTML?
sobes.tech AI
Odpowiedź od AI
SGML (Standardowy Uogólniony Język Opisu Znaczeń) jest metajęzykiem znaczników, normą ISO 8879. Określa składnię do opisu innych języków znaczników, ale sam nie jest językiem znaczników dla dokumentów. HTML i XML są zastosowaniami (definicjami) SGML, ale z różnymi celami i ograniczeniami.
HTML (HyperText Markup Language) to język znaczników oparty na SGML, przeznaczony do tworzenia stron internetowych. Ma ustalony zestaw tagów i reguły ich użycia, z bardziej elastycznymi zasadami składni w porównaniu do XML (np. nie wymaga obowiązkowego zamykania wszystkich tagów).
XML (eXtensible Markup Language) to inny metajęzyk znaczników, potomny SGML, ale znacznie prostszy i bardziej rygorystyczny. Główna różnica w stosunku do SGML polega na tym, że XML koncentruje się na przesyłaniu danych strukturalnych, a nie na prezentacji dokumentu. W przeciwieństwie do HTML, XML nie ma ustalonego zestawu tagów - definiuje je użytkownik. Wymaga ścisłego przestrzegania składni (zawsze zamykać tagi, poprawnie zagnieżdżać itp.).
XHTML (eXtensible HyperText Markup Language) to przeformułowanie HTML 4 w formie zastosowania XML. To znaczy, że jest to HTML, ale z bardziej rygorystyczną składnią, podobną do reguł XML. Próba połączenia zalet HTML (dla stron internetowych) i XML (rygor, rozszerzalność), ale do tej pory w dużej mierze zastąpiony przez HTML5.
Relacje są następujące:
- SGML jest rodzicem/źródłem dla HTML i XML.
- HTML i XML są zastosowaniami SGML (posiadają składnię określoną przez reguły SGML).
- XHTML jest wersją HTML przepisaną z przestrzeganiem reguł składni XML.
- HTML został stworzony do wyświetlania dokumentów w przeglądarce, XML do przesyłania i przechowywania danych strukturalnych.
- XHTML próbował połączyć wyświetlanie (HTML) z rygorystycznością (XML).
Podsumowując, łańcuch zależności wygląda tak: SGML -> HTML, SGML -> XML. A także: HTML + składnia XML -> XHTML.
Przykład struktury:
<!-- Przykład HTML -->
<!DOCTYPE html>
<html>
<head>
<title>Tytuł</title>
</head>
<body>
<h1>Powitanie</h1>
<p>To jest akapit.</p>
</body>
</html>
<!-- Przykład XML -->
<książka>
<tytuł>Moja książka</tytuł>
<autor>Jan Kowalski</autor>
<gatunek>Sci-fi</gatunek>
</książka>
<!-- Przykład 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="pl" lang="pl">
<head>
<title>Tytuł</title>
</head>
<body>
<h1>Powitanie</h1>
<p>To jest akapit.</p>
</body>
</html>
Zwróć uwagę na rygorystyczne zamykanie tagów w XML i XHTML w porównaniu do HTML.