Next: 3.2 Muunnokset DTD:stä toiseen Up: 3 SGML-muunnokset Previous: 3 SGML-muunnokset

3.1 Muunnokset yhden DTD:n puitteissa - editointi

Muunnettaessa dokumenttia saman DTD:n puitteissa on kyseessä editointi. SGML-dokumenttien kohdalla kyse on kuitenkin huomattavasti hankalammasta operaatiosta kuin ei-rakenteisen dokumentin kohdalla. SGML-editorin on huolehdittava siitä, että dokumentti vastaa DTD:tä myös editoinnin jälkeen.

Yleinen editorien periaate on muodostaa dokumenttia luotaessa DTD:tä vastaava minimidokumentti, johon käyttäjä täyttää otsikot yms. Lisättäessä jotakin editori esittää valikoilla, mitkä elementit ovat sallittuja lisäyksiä juuri siinä kohtaa. Siis dokumentti on aluksi DTD:n mukainen, ja kun kaikki tehtävät muokkaukset ovat DTD:n mukaisia, pysyy dokumenttikin aina DTD:n mukaisena. Tämä on siis yleisperiaate, mutta siitä ei voida aina pitää kiinni.

Editointiongelmat voidaan jakaa kahteen ryhmään Colen ja Brownin mukaan [Col92]:

Colen ja Brownin mukaan sisäiset rakenneongelmat voidaan suurelta osin hoitaa tunnettujen jäsennintekniikoiden avulla, mutta käyttöliittymään liittyviin ongelmiin he keskittyvät enemmän. Heidän ehdotuksensa on käyttää nk. fall-back -luokkia, joilla vähennettäisiin tilanteita, joissa editori tylysti sanoo jonkin operaation olevan DTD:n vastainen. Otetaanpa esimerkki:

Dokumentissa on yksinkertaisia kappaleita, joissa voi olla pelkkää tekstiä, sekä edellisiä monimutkaisempia kappaleita, joissa voi olla alaviitteitä jne. Jos käyttäjä haluaisi kopioida monimutkaisia kappaleita alueelle, joihin käyvät vain yksinkertaiset kappaleet (esimerkiksi dokumentin abstrakti), voidaan määritellä fall-back -luokka siten, että ohjelma osaa korvata alaviitteen em. siirrossa vaikkapa kirjoittamalla alaviitetekstin sulkuihin. Käyttäjä olisi oikeutetusti hyvin närkästynyt, jos ohjelma vain huomauttaisi, että kopiointioperaatio on laiton eikä sitä voida suorittaa.

Rakenteisten dokumenttien editoreihin liittyvät ongelmat kuitenkin vain sivuavat varsinaista aihetta, joten ei niistä tämän enempää.


Heikki Toivonen -- Last modified 28.1.1997 --