logo
Markup
UR?
XML
DOM
SAX
WXT
Velkommen > Moduler >Markup
../../common/gfx/prev.gif ../../common/gfx/home.gif ../../common/gfx/next.gif

Markup

Hva:
Bakgrunn for dagens XML-teknologi. Noen viktige begreper og sammenhengen mellom dem, SGML, XML, HTML, XHTML, CSS

På den ene siden ønsker vi å tilføre dokumenter utseende eller layout og på den andre siden ønsker vi å gi dokumenter en struktur.

Behovet for utseende er åpenbart fordi vi ønsker å lage pene dokumenter, med overskrifter, innrykk, ulike fonter og fontstørrelser etc.

Struktur ønsker vi i hovedsak av to grunner:

  • Vi vil bruke dokumentene som datasett og skrive eller bruke programmer som kan lese og endre innholdet som strukturerte data. F.eks ekstrahere ingressen fra en serie dokumenter og samle dem i et annet dokument. For at dette skal være mulig må begrepet ingress være definert, identifiserbart, i dokumentene.
  • Vi vil lett kunne endre dokumentets layout ved å endre egenskapene til de enkelte elementene i dokumentet. F.eks. endre fonten på alle overskrifter, eller endre linjeavstand i all brødtekst. Dette er viktig også fordi vi ønsker å framstille dokumentet på forskjellige medier som papir, skjermer, små skjermer, overheadkanoner. For at dette skal være mulig må de enkelte elementtypene merkes, det er ikke effektivt å gi individuell form til alle deler av et dokument.

Denne to-sidigheten ved et dokument, utseende og struktur, er nøkkelen til å forstå dokumentbehandling og alle de ulike teknologiene som er under utvikling på dette området. Dette er på mange måter noe av det mest spennende som skjer innen databehandling for tiden. Behovet for å finne, presentere og utveksle innhold i den stadig voksende informasjonsjungelen som kalles Internettet er selvsagt hovedgrunnen til at denne utviklingen er sentral nå.

Markup av tekst er ikke noe nytt fenomen. Det er lett å tenke seg at behovet for å sette merker i en standardisert form i en tekst for å angi hvordan den skulle settes har vært nyttig og nødvendig i trykkeribransjen i lang tid. Elektronisk behandling av dokumenter gjør det selvsagt mulig å sette slike merker i teksten på en slik måte at framstillingsteknologien, skjermdriver eller printerdriver, kan tolke merkene. Begrepet WYSIWYG (What You See Is What You Get) som ble introdusert på 80-tallet i forbindelse med introduksjon av rastergrafiske skjermer er en god illustrasjon på dette. Det WYSIWYG egentlig betyr er at det du lager på skjermen er det samme som det du får ut på skriveren. Som bruker av tekstbehandlingsprogrammer, som f.eks. MSWorld, blir du tilbudt funksjonalitet som i tillegg til å behandle selve teksten, gjør det mulig å bestemme nøyaktig hvordan teksten skal se ut. For at dette skal være mulig må det legges igjen (skjult) informasjon i teksten som skriveren og skjermdriveren kan forstå og tolke. Slik informasjon om dataene kan vi kalle metainformasjon. Det har blitt introdusert en rekke formater, både proprietære og åpne, for å realisere dette.

Øvelse
Lage et enkelt dokument i Microsoft Word, med en overskrift og et par linjer tekst.
  • Spar dokumetet som .doc format. Forsøk å åpne det i Ultraedit, og se om du kan finne igjen den teksten du har skrevet. doc er et proprietært binærformat fra Microsoft og du er avhengig av at Utraedit forsøker å tolke binærdataene som tegn.
  • Spar dokumentet som .rtf (rich tekst format). Forsøk å åpne det i Ultraedit eller Notepad, og se om du kan finne igjen den teksten du har skrevet. rtf er et format som er introdusert av Microsoft. rtf har fått en viss utbredelse ( og et litt frynsete rykte).
  • Spar dokumentet som .html. Forsøk å åpne det i Ultraedit eller Notepad, og se om du kan finne igjen den teksten du har skrevet.

Forsøk å endre teksten slik du finner den i Utraedit (eller Notepad) i de forskjellige formatene og forsøk deretter å åpne den i Word.

Skriv dokumentet ved å velge en tilgjengelig skriver, men merk av at du vil skrive til fil. Forsøk å åpne den .prn- fila som lages og se om du kan finne igjen den teksten du har skrevet. prn fila vil for de fleste printere være i Postscript. Postscript er til forskjell fra eksemplene ovenfor et programmeringsspråk som utføres på skriveren.

Hovedfokus i WYSIWYG-strategien er layout, altså hvordan dokumentet skal se ut. Digital behandling av strukturerte data har historisk hatt fokus mot databaser, regnearkformater eller "kommasepararerte" filer. Framstilling av strukturerte data har i stor grad vært behandlet av diverse rapportgeneratorer eller spesialprogrammer i de enkelte tilfellene. Nå er ikke verden fullt så enkel: Microsoft har lagt ned en god del arbeid i å utvikle proprietære teknologier for å integrere verktøyene i Office-familien på en slik måte at data kan sirkulere mellom ulike verktøy i familien.

Mangelen på ryddighet og forståelse av de to perspektivene på et dokument, layout og struktur, er et problem som stikker dypt, både systemteknisk og mentalt. De fleste brukere av tekstbehandlere har ikke dette skillet klart for seg og bruker strukturerelementer og formatspesifikasjoner om hverandre for å oppnå visuelle effekter. Det samme skjer ved skriving av HTML.

XML-teknologien er interessant fordi:

  • det gjør det mulig og naturlig å skille klart mellom struktur og layout
  • det gjør det mulig å bearbeide begge aspektene ved et dokument hver for seg, og samtidig
  • den gjør det teknisk enkelt å definere felles struktur for dokumenter innen en organisasjon eller et fagområde.
  • det finnes en rekke produkter og programbiblioteker som gjør behandling av XML-dokumenter sikkert og enkelt.
  • den er i motsetning til de fleste av de andre markup-språkene befriende enkel. Det er så enkelt at det er vanskelig å korrumpere selve ideen med proprietære varianter
  • den er anvendbar både til tradisjonell dokumentbehandling og til veldefinerte mellomformater i systemløsninger, f.eks. til konfigurasjonsbeskrivelser.
  • den trolig vil erstatte de enkleste databaseløsningene.
  • den passer som hånd i hanske som mellomformat mot databaseløsninger.
.

Historie i lommeformat

Historien om World Wide Web og tilhørende teknologier er skrevet i utallige versjoner og finnes en eller annen form i de fleste lærebøker i relevante emner. Denne historien tolkes og analyseres på forskjellig måte, alt etter hvilket fokus forfatteren har. Det du finner her er en svært kort versjon som har fokus på å forstå hvorfor XML er et svar på en utvikling som delvis har vært styrt av et felles mål, og dels har gått av sporet på noen avgjørende punkter.

SGML

(Standard Generalized Mark-up Language) [1]

SGML var opprinnelig et initiativ fra IBM for å muliggjøre utveksling av dokumenter mellom systemer. Arbeidet ble påbegynt så tidlig som på slutten av 60-tallet av Goldfarb, med hjelp av Mosher og Lorie (GML). Arbeidet endte opp som ISO-standard (ISO 8879) i 1986. SGML er en svært omfattende standard som har hatt en viss utbredelse innen organisasjoner med stort behov for dokumentadministrasjon. Typiske anvendelser er forlag som ønsker å kunne publisere i forskjellige formater og f.eks. flyfabrikker med stort behov for å kunne dokumentere produksjon, der kvalitetssikring og sporbarhet er nøkkelord.

SGML har de samme karakteristika som vi forbinder med XML. SGML er utvidbart, det vil si at det ikke er et endelig språk, men et regelsett for å definere språk, et metaspråk. SGML-språk var basert på definisjon av dokumenttyper, DTD (Document Type Definition). Det ble skrevet parsere for SGML og det ble definert et språk for å definere stilsett for SGML-dokumenter, DSSSL (Document Style Semantics and Spesification Language). [2]

Det er alltid vanskelig å vurdere hva som gjør at en teknologi "tar av" mens en annen ikke gjør det. Det finnes en god del logiske argumenter for at SGML kunne slått gjennom som en viktig nøkkelteknologi i et større marked. Hovedgrunnene til at det ikke skjedde var trolig for det første at det er for omfattende og for det andre at behovet for dokumentstrukturering ikke var allment annerkjent som en generell utfordring før bruken av Internett hadde modnet.

HTML

(Hyper Text Markup Language) [3]

HTML ble utviklet ved CERN (opprinnelig: Conseil Européen pour la Recherche Nucléaire, nå:Organisation Européenne pour la Recherche Nucléaire) i 1989 av Tim Berners-Lee. Hensikten var å kunne utveksle og binde sammen dokumenter innen organisasjonen. Arbeidet ble basert på SGML og HTML kan betraktes som et språk definert i SGML. HTML skiller seg altså fra SGML, og XML, ved at det er et definert språk med et fast ordforråd. HTML har et endelig sett med elementer.

HTML ble utviklet uten at noen var i stand til å forutse hvor stor utbredelsen av dette språket skulle bli. Word Wide Web eksploderte og vi fikk generelle nettlesere som kunne parse og framstille HTML.

Det er mange som i ettertid har fundert på hvordan HTML burde ha vært og hvordan nettleserne burde ha utviklet seg for at vi idag skulle hatt en litt enklere verden enn vi har. Slike spekulasjoner er interessante i den grad vi kan bruke dem til å belyse aktuelle problemstillinger i dagens utvklingsarbeid. Det er to forhold som fortjener oppmerksomhet som grunnlag for forståelse.

  1. HTML bidrar ikke til å gjennomføre et klart skille mellom struktur og layout. I hovedsak ble HTML designet med elementer som er av strukturell art, men vi vet at mangelen på stilsett tidlig i utviklingen har ført til att de strukturelle elementene brukes til å tvinge fram layout.

  2. Nettleserne ble alt fra starten laget med en betydelig toleranse for misformede dokumenter. SGML har til en viss grad en slik toleranse. Dette har opp gjennom mange generasjoner av HTML og nettlesere ført til en ganske uoversiktlig situasjon der dokumenter blir tolket og framstilt på forskjellig og ofte uforutsette måter. Det har dessuten ført til at den dokumentstrukturen som legges til grunn ved parsing blir tvetydig. Scripting, dynamisk HTML på klientsiden, blir en risikosport.

CSS

(Cascading Style Sheets). [4]

Vi må minne om at en av hovedpersonene bak CSS, Håkon Wium Lie, kommer fra Halden og har sin grunnutdanning i informatikk fra HiØ.

CSS er et språk som gjør det mulig å definere hvordan ulike elementer i et HTML- eller XML- dokument skal vises. Hensikten med dette er altså at dokumentet kan lages (i hovedsak) med tanke på struktur, mens utseendet kan defineres og endres uten å endre i selve dokumentet. Dette er interessant også fordi ett og samme dokument kan vises etter de behov ulike medier krever (Store skjermer, små skjermer, papir). CSS er et svar på noe av det som ble ivaretatt med DSSSL i forhold til SGML, men som ikke ble ivaretatt når HTML opprinnelig ble definert.

Det er mange forfattere som mener at CSS ikke er en fullgod løsning på layoutproblemet og de framholder XSL-FO (eXtensible Stylesheet Language-Formatting) som en alternativ eller komplementerende teknologi. I dette materialet vil du finne stoff om CSS og XSLT (eXtensible Stylesheet Language Transformations), og litt om XSL-FO.

XML

(eXtensible Markup Language ) [5]

XML er i en viss forstand en ny start, der erfaringene fra historien er ivaretatt. XML er bygget på samme lest som SGML, og er i stor utstrekning et subsett av SGML. Det er vesentlig enklere enn SGML, det har ingen toleranse for ufullstendige formuleringer og det er altså, i motsetning til HTML, ikke et språk men et metaspråk. Det vil si: et regelsett for å definere språk. XML mangler noe viktig for å være et språk, nemlig ord.

Det betyr at når vi skriver et XML-dokument kan vi kontrollere at det er velformet i henhold til de grunnleggende generelle syntaksreglene, og vi kan kontrollere at det er validerbart som dokument av en bestemt type. Det siste forutsetter at vi har definert en dokumenttype i form av en DTD (Document Type Defnition) eller et SCHEMA. Å definere en DTD betyr egentlig at vi definerer vårt eget språk. En validering betyr at vi sjekker at et dokument er skrevet i henhold til dette spåket. XHTML er et slikt språk. Det er i hovedsak HTML4 med utvidede formelle krav til riktig syntaks som blandt annet innebærer at en del attributter som kontrollerer utseende er fjernet og formateringen forutsettes beskrevet som inkluderte eller lenkede stilark.

Når det i mange sammenhenger understrekes at XML er enkelt, så er det en sannhet med modifikasjoner. De grunnleggende syntaksreglene i XML er befriende enkle, men bildet kompliseres en god del av en del praktiske nødvendigheter som dukker opp når fragmenter fra ulike dokumenttyper skal blandes osv. Mer om slike komplikasjoner andre steder i dette materialet.

.

Andre markup-språk

Det er lett å se at det generelle behovet for å standardisere dokumenter slik at de kan utveksles mellom applikasjoner har ført til en rekke mer eller mindre utbredte standardformater opp gjennom databehandlingens historie. De som er nevnt nedenfor har nesten utelukkende blitt utformet med tanke på å beskrive layout. Det finnes sikkert en rekke andre som er kjente i ulike miljøer.

RTF

Rich Text Format er et format som ble introdusert av Microsoft. Se f.eks.: [6] for en beskrivelse. Du kan se hvordan det ser ut ved å lagre en MS Word fil som rtf og åpne den i Ultraedit eller Notepad eller en lignende teksteditor.

LaTeX

ble opprinnelig introdusert som TeX av Donald Knuth fordi han trengte et verktøy for å kontrollere teksten i en bok han skrev. LaTeX har hatt og har fortsatt utbredelse og tilhengere i akademiske miljøer. Mer om både LaTeX og Knuth på sidene til TeX Users Group: [7]

troff

Utdrag fra innledningen fra Troff User's Manual by Jospeh F. Ossanna and Brian W. Kernighan, se [8]

"troff is a text-formatting program for driving the Graphic Systems phototypesetter on the UNIX and GCOS operating systems. This device is capable of producing high quality text.... troff allows the user full control over fonts, sizes, and character positions, as well as the usual features of a formatter: right-margin justification, automatic hyphenation, page titling and numbering, and so on. It also provides macros, arithmetic variables and operations, and conditional testing, for complicated formatting tasks."

Postscript

Postscript representerer en litt annen innfallsvinkel til formatering. Vi markerer ikke for Postscript i dokumentet, men det finnes oversettere som genererer Postscript basert på annen markup. Hele dokumentet omgjøres til et program som så kan transporteres og kjøres på den enheten som skal presentere det. Printere er typiske enheter som kan utføre postscriptkode. [9]

Referanser og eksempler:

Produksjon, kontroll og vedlikehold:
Børre Stenseth, november 2002

Markup og web fra Høgskolen i Østfold: http://www.ia.hiof.no/~borres/ml/

../../common/gfx/prev.gif ../../common/gfx/home.gif ../../common/gfx/next.gif
skjema popup

Valid XHTML 1.0 Strict
popup card
Bygget med WXT