Syntax och parsing
Postad: 26 september 2008 | HTML-guider | No CommentsMedan syntaxen i HTML klarar sig någorlunda galant trots eventuella fel, kan ett enda syntaxfel i XML och/eller XHTML leda till fatala errors.
Eftersom XHTML använder de krav som krävs av en xml-parsing innebär ett syntaxfel att webläsaren och parsen inte kan läsa in eller förstå koderna på rätt sätt.
De vanligaste parsingfelen i HTML/XHTML
Den som är nybörjare kan i många stycken ha det lättare att skriva XHTML då inte gamla och ingrodda vanor påverkar tanken, men det behöver givetvis inte alltid vara så. Problemen som uppkommer beror just på att man måste tänka om lite grann, och ibland tänka lite bakvänt.
Det är lätt att koda fel i bara farten, tyvärr så blir det då också samma fart på webbläsaren när dokumentet har skickats upp på nätet, och det vill vi ju inte.
De vanligaste felen som görs är följande:
- okodade ampersands
- man har glömt att stänga någon tagg
- oväntade (skriv)tecken som återfinns i eller före attributnamnen
- oväntade (skriv)tecken som finns före Doctype
- att glömma doctype helt och hållet eller ange fel doctype
- att glömma namespace
- oväntade sluttaggar eller felaktigt skrivna sluttaggar
- glömda sluttaggar
- flera body och head
- felaktigt definierade attribut eller element
- att använda märken eller attribut som inte är tillåtna
- att använda andra programspråk, t ex css, direkt i märkspråket (fulhtml)
Syntax
Ett parsingfel uppstår alltså vid en felaktig skriven syntax. Hur ser då en ”well formed” – väl utförd – syntax ut?
- relevant doctype
- en namespacedeklaration
- i XHTML är alla attribut och ”tag-names” case sensitive – de ska med andra ord skrivas med små bokstäver
- de element som inte är tomma märken ska både ha en starttagg och en sluttag
- det får bara finnas 1 html, 1 head och 1 body i dokumentet
- man måste sätta en sluttagg på ol, ul och framförallt li
- man måste ange en sluttagg på dd samt dt
- alla styckeformateringar måste omslutas med en tagg (/p)
- man måste sätta en sluttag i följande märkningar: thead, th, tr, td och tfoot
- i tbody samt i colgroup krävs både båda taggarna
- tomma element avslutas i sig själv, de har självstängande taggar (html4.01/html5)
- ett tomt märke är något som har ett värde i sig själv och inte behöver definieras, omsluts av 1 start-sluttagg
- ge akt på blanksteget mellan märket slashen och stängningstaggen (endast XHTML)
- man anger bildinformation i alt-taggen
- man avslutar koden till en bild med en slash precis innan sluttaggen eftersom det är ett tomt element
- man måste definiera attributen, aldrig förkorta dem
- används script måste man i XHTML lägga dem i CDATA-avsnitt – i HTML5 räcker script-attributet
- man använder märkena till sådant som de är definierade, ex h1-h6 är rubriker, p ger styckeindelningar, li listor osv (semantik)
- man strukturerar dokumentet i en ”rätt och logisk” ordning
Mimetypes
XHTML måste ha en mimetyp som också refererar till XML, antingen application/xml eller application/xhtml+xml. Om du använder fel mimetype och levererar din XHTML i textformatet text/html (vilket jag sett att många tyvärr gör) så orsakar det oftast fel och den data du egentligen levererar till webbläsaren är inte XHTML utan HTML – tänk på det.
Mimetyp för HTML4.0 och HTML5 är text/html
Mer ingående information finns i respektive guide.