5.3 SGML:n rakenne ja käyttö

SGML-muotoinen dokumentti koostuu kolmesta osasta: SGML-esittelystä (SGML Declaration), dokumentin tyyppimäärittelystä (Document Type Definition) ja itse dokumentista, jota kutsutaan dokumentin esiintymäksi (Document Instance). Kaikki kolme osaa voivat olla samassa tiedostossa peräkkäin. Tavallisimmin SGML-esittelynä käytetään ohjelmaan sisäänrakennettua oletusesittelyä eikä käyttäjä koskaan sitä edes näe. Dokumenttien tyyppimäärittelyjä voi olla samanaikaisesti käytössä useitakin mutta nekin ovat yleensä erillisissä tiedostoissa. Käyttäjä tarvitsee niitä vain, jos dokumentin koodauksessa tarvitaan yksityiskohtaista tietoa koodien muodosta tai muista kieliopillisista seikoista. Useimmiten käyttäjä kirjoittaa jollakin tekstinkäsittelyohjelmalla pelkän dokumentin esiintymän (jatkossa käytän pelkästään nimitystä dokumentti, jolla asiayhteydestä riippuen tarkoitetaan dokumentin alkuperäistä muotoa tai SGML-muotoista, koodattua esitystä).

5.3.1 Esimerkki

Aluksi lyhyt esimerkki SGML-koodatusta dokumentista. Sitä käytetään hyväksi myöhemmin standardin tärkeimpien piirteiden esittelyssä.

<!doctype article system "document.dtd">

<article opts="twoside">
<titlepag> 
<title>Esimerkki dokumentin koodaamisesta 
<author> 
<name>Ville Virtanen 
<inst>Dokumenttien hallinta Oy 
</author> 
<date>30.6.1994 
</titlepag>

<abstract> Dokumentti voi sisältää tiivistelmän, 
joka useimmiten ladotaan hiukan eri tavalla kuin muu teksti. 
</abstract><sect>
<heading>Dokumentin ensimmäinen luku</heading>
<p> Varsinainen tekstiosa dokumentista voidaan
jakaa
monella tavalla osiin. Dokumentti voi koostua luvuista,
jotka koostuvat aliluvuista, jotka koostuvat jaksoista jne.
Tässä esimerkkitapauksessa jaotuksessa käytettävät
nimet
ovat tyyppiä sect, sect1, sect2, jne.
<p>
Kappaleet voi erotella tyhjällä rivillä. 
</sect> 
</article> 

Esimerkissä on suhteettoman paljon koodeja varsinaisen tekstin määrään verrattuna. Normaalisti dokumentin sisällöstä valtaosa on tavallista raakatekstiä, joka sisältää hyvin vähän SGML-koodeja.

Esimerkki on sikäli täydellinen, että se voidaan käsitellä SGML-ohjelmilla kunhan käytettävissä on vain sopiva dokumenttityypin määrittelytiedosto, tässä tapauksessa document.dtd. Päällisin puolin esimerkki muistuttaa HTML-koodattuja WWW:n dokumentteja. Syy tähän on hyvin yksinkertainen. HTML on SGML-pohjainen merkintäkieli ja kaikki SGML-pohjaiset merkintäkielet muistuttavat ulkoasunsa puolesta toisiaan.