Standard Generalized Markup Language
Z Wikipedii
SGML (ang. Standard Generalized Markup Language) to zestandaryzowany nadrzędny język znaczników służący do ujednolicania struktury i formatu różnego typu informacji (danych), pozwalający zapisać je w formie dokumentu tekstowego i dzięki temu łatwo przenosić, wyświetlać i drukować w różnych systemach elektronicznego przekazu danych.
SGML w odróżnieniu od języków znaczników dedykowanych do konkretnych zastosowań (takich jak np. HTML), nie jest zbiorem określonych znaczników i reguł ich użytkowania, lecz ogólnym, nadrzędnym językiem służącym do definiowania dowolnych znaczników i ustalania zasad ich poprawnego użytkowania.
Języka SGML używa się praktycznie do dwóch celów:
- precyzyjnego definiowania zbiorów znaczników dedykowanych do konkretnych zastosowań – przykładem jest język HTML;
- ujednolicania zasad pisania i przekazywania dokumentów tekstowych w obrębie dużych firm lub instytucji.
W obydwu przypadkach dokument w języku SGML składa się z trzech części:
- deklaracji dokumentu, która definiuje ogólne reguły stosowane w zapisie dokumentu (np. maksymalna długość nazwy elementu, znak używany jako początek znacznika (domyślnie jest to znak < );
- DTD – definicji typu dokumentu, czyli definicji wszystkich znaczników i reguł ich stosowania;
- właściwego dokumentu – tekst wraz ze znacznikami.
Ze względu na złożoność standardu SGML bardzo mało narzędzi implementuje pełen standard. Zwykle edytory SGML obsługują większość powszechnie używanych elementów języka i interpretują jedynie część pliku deklaracyjnego. W związku z trudnościami implementacyjnymi powstał język i standard XML będący początkowo podzbiorem reguł SGML (pierwsza wersja powstała w 2000 roku). Standard XML można obsługiwać narzędziami SGML-owymi modyfikując odpowiednio plik deklaracyjny.
Ponieważ w praktyce zarówno deklaracja dokumentu SGML jak i DTD "zaszyte" są najczęściej w oprogramowaniu (np. w przypadku języka HTML w przeglądarkach i programach do pisania stron WWW), użytkownicy końcowi, a nawet osoby przygotowujące na co dzień dokumenty, nie mają bezpośredniej styczności z DTD tej odmiany języka SGML, z której właśnie korzystają.