SGML (Standard Generalized Markup Language) är ett systemoberoende metaspråk som definierar andra markeringsspråk, speciellt elektroniska markeringsspråk. SGML-dokument är hierarkiskt uppbyggda som kan vara av olika typer. Till exempel dokument av typ HTML eller XML. Dokumentens typ styrs av dess rotelement. I HTML kallas rotelementet också HTML
. I dokument av typ bok kommer rotelementet att vara bok
.
Språket är beskrivande och inte verkställande, dvs att det enbart talar om hur textmassan (dokumentet) är strukturerat.
Varje typ av dokument struktureras enligt i förväg bestämda regler - en grammatik speciellt framställt för just den typ av dokument. Dessa regler definieras i ett dokument kallat DTD. Varje språk, inklusive dess varianter (versioner), har sin helt egna DTD. För att ett dokument ska vara giltigt måste det alltså struktureras enligt regler definierade för just denna typ av dokument.
DTD, Documet Type Definition, Dokumenttypdefinition. Ett dokument där grammatiska och strukturella regler gällande i en viss typ av dokument är sammanställa. Varje typ av dokument hänvisar till sin egen DTD. Till exempel: HTML 4.0 Strict - strict.dtd
HTML (HyperText Markup Language) är en applikation av SGML. Språket skapades för att i en plattformsoberoende miljö kunna struktura forsknings- och tekniska dokument. Rotelement i dokument av typ HTML är elementet HTML. Observera att HTML är både dokumenttyp och rotelement.
I takt med den enormt växande populariteten av Webben växte även språkets popularitet. Idag är de flesta Webb-dokument strukturerade med hjälp av HTML.
Den senaste, eller rättare sagt näst sista, HTML-rekommendationen är HTML 4-rekommendation (http://www.w3.org/TR/1998/REC-html40-19980424/) publicerad den 24 april 98. Då inga ändringar, inte ens typografiska, får göras i en rekommendation publicerade man den 24 december 1999 en ny rekommendation, HTML 4.01 med mindre typografiska och andra rättelser. Idag när man säger HTML 4 menar man HTML 4.01( http://www.w3.org/TR/html4 ).
För att inte ogiltig förklara miljontals av Webb-dokument som skapades under "browser-kriget" publicerades HTML 4 i tre "smaker": strikt, transitionell och för ramar med var sin DTD; HTML 4.0 Strict, HTML 4.0 Transitional, HTML 4.0 Frameset. Den transitionella DTD:en var avsedd som övergång mellan krigets hybrid HTML 3.2 och HTML 4. (När man säger HTML 4 menar man HTML 4 Strict).
DTD:en specificeras i själva dokumentet genom en dokumenttypsdeklaration. I alla dokument av typ HTML (förutom HTML 2.0) är en sådan deklaration obligatorisk.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"
"http://www.w3.org/TR/REC-html40/loose.dtd">
Denna deklaration talar om att:
HTML var avsett för strukturering och enbart strukturering av relativt enkla dokument med hjälp av i förväg specificerade och definierade strukturella element. Just för denna enkelhetens skull offrade man SGMLs flexibilitet och egenskap-rikedom.
HTML åtskiljer struktur från stil och därför tillåts inga stilistiska element (förutom några HTML 3.2 kvarlevor inkluderade i den transitionella versionen). Stilmallar ska användas för eventuellt stilisering av dokument. Dagens Webb-dokument är allt annat än enkla textdokument. Ett behov för ett mer flexibelt och kraftfullt språk har växt fram. År 1996 började utvecklingen av det nya språket - XML.
W3C World Wide Web Consortium, ( http://www.w3.org/ ) grundades i 1994 och är ett organ som utvecklar samt implementerar allmänna protokoll, specifikationer, standarder, som främjar Webbens evolution, där bl a markeringsspråk.
Specifikationerna som utvecklas inom konsortiet, först i form av utkast (Working Draft) kan leda till att de senare föreslås som rekommendation. Är förslaget accepterat av W3Cs medlemmar, där bl a Microsoft och Netscape, publiceras det i form av rekommendation.
Konsortiet leddes av Tim Berners-Lee - HTMLs och Webbens skapare.
Dokumenttypsdeklaration - Hänvisning till den DTD som innehåller regler gällande för det specifika dokumentet. Deklarationen är obligatoriskt och skrivs på första raden i dokumentet.
XML (Extensible Markup Language) är i likhet med HTML plattformsoberoende och har sitt ursprung i SGML. Språket skapades just för att återfå det som HTML offrade, nämligen flexibilitet och kraftfullhet.
I dokument av typ HTML är rotelementet, ett begränsat antal andra element samt dess attribut och värden i förväg bestämda. Struktureringsregler är i detalj definierade i DTD. Då man jobbar med ett begränsat antal redan kända element är HTML dels användarvänlig (lätt att strukturera med) och dels är framtagning av programvaran som ska läsa av HTML-dokument tillverkarvänlig.
Dokument av typ XML är objektorienterade där både rotelementet och andra element definieras av dokumentets skapare i en DTD eller DTD:er som han/hon kan skriva själv. DTD:er eller DTD-snuttar kan moduliseras. Däför säger man att XML är en metod för att lägga strukturerad data i en textfil. Med strukturerad data menas allt från vanliga textfiler till databaser.
I likhet med HTML åtskiljer XML struktur från stil. Det sistnämnda kan produceras med hjälp av stilmallar.
Framtagning av programvaror, XML-processorn plus själva applikationen, som kan läsa av sådana dokument är mycket svår.
Den 10 februari 1999 blev XML 1.0 W3Cs rekommendation. (http://www.w3.org/TR/REC-xml).
I HTML-dokument måste rotelementet vara HTML och inget annat. Reglerna för dokumentens strukturering är i förväg bestämda.
<html>
....
</html>I XML-dokument skapar man egna typer av dokument och väljer själv rotelementet. Struktureringsregler bestämmer man själv.
<letter>
....
</letter>
eller tom på svenska
<brev>
....
</brev>
För att göra övergången från HTML till XML så smärtfri som möjligt omformulerade W3C HTML 4-rekommendationen så att den kan appliceras i XML 1.0. Denna omformulering är just XHTML (Extensible HyperText Markup Language).
XHTML l.0 är en applikation av XML. Fr.o.m den 26 januari 2000 blev språkets första version, XHTML 1.0, en W3Cs rekommendation ( http://www.w3.org/TR/xhtml1 ).
XHTML är alltså en omformulering av HTML 4 och dess tre DTD:er. XHTMLs element och attribut är definerade i HTML 4 rekommendationen. Rotelement i XHTML-dokument är elementet HTML såsom det defineras i DTD:n för HTML 4 rekommendationen.
Arbetet pågår fortfarande med moduliseringen av XHTML så att andra DTD:er eller rekommendationer, t ex MathML Math Markup Language (http://www.w3.org/TR/REC-MathML) och XML-element, kan implementeras.
XHTML-dokument överensstämmer med både HTML och XML och bör kunna läsas, editeras samt valideras med vanliga XML-redskap samtidigt som de behåller bakåtkompabilitet för att kunna läsas, editeras samt valideras med vanliga HTML-redskap.
Internet Explorer 5.0 är ett exempel på läsare som klarar både HTML och XML. Läsaren försöker t.o.m. hålla sig till regler och vägrar att läsa syntaxfelaktiga XML-dokument. För Netscape och Eudora är XML fortfarande (feb 00) en okänd dokumenttyp.
HTML-dokument kan lätt konverteras till XHTML-dokument. XHTML-dokument är kompatibla med dagens webb-klienter - under förutsättning av de att de är välutformade därför måste ett antal mindre ändringar göras.
I XHTML-dokument måste rotelementet vara HTML och inget annat. Reglerna för dokumentens struktur är i förväg bestämda och är definierade i HTML 4-rekommendationen och dess tre tillhörande DTD:er. (Validering beskrivs i nästa avsnitt)
<html>
....
</html>För att XHTML-dokument ska kunna bära sitt namn måste de dessutom valideras mot en av den angivna DTD:n samt vara välutformade.
Dokumenttypsdeklarationen är ej obligatoriskt i XHTML. Saknas en sådan kommer de dock att valideras som XML-dokument.