XHTML -
XHTML

Från Wikipedia, den fria encyklopedin
Filnamnstillägg
.xhtml, .xht,
.xml, .html, .htm
Internetmedietyp
application/xhtml+xml
Uniform Type Identifier (UTI) public.xhtml
UTI -konformation public.xml
Utvecklad av World Wide Web Consortium (W3C)
Initial release 26 januari 2000
 (
2000-01-26
)
Senaste släppningen
Typ av format Markeringsspråk
Förlängd från XML , HTML
Standard W3C HTML5 (rekommendation)
Ja

Extensible HyperText Markup Language ( XHTML ) är en del av familjen XML -märkningsspråk . Det speglar eller utökar versioner av det mycket använda HyperText Markup Language (HTML), det språk som webbsidor är formulerade på.

Medan HTML, före HTML5 , definierades som en tillämpning av Standard Generalized Markup Language (SGML), ett flexibelt ramspråkramverk, är XHTML en applikation av XML , en mer restriktiv delmängd av SGML. XHTML-dokument är välformade och kan därför analyseras med vanliga XML-parsare, till skillnad från HTML, vilket kräver en lätt HTML-specifik parser.

den 26 januari 2000. XHTML 1.1 blev en W3C -rekommendation den 31 maj 2001. Standarden som kallas XHTML5 utvecklas som en XML -anpassning av HTML5 -specifikationen.

Översikt

XHTML 1.0 är "en omformulering av de tre HTML 4 -dokumenttyperna som tillämpningar av XML 1.0". Den World Wide Web Consortium (W3C) fortsätter också att upprätthålla HTML 4.01 rekommendation och specifikationerna för HTML5 och XHTML5 utvecklas aktivt. I det nuvarande XHTML 1.0 -rekommendationsdokumentet, som publicerades och reviderades till augusti 2002, kommenterade W3C att "XHTML -familjen är nästa steg i utvecklingen av Internet. Genom att migrera till XHTML idag kan innehållsutvecklare komma in i XML -världen med alla dess åtföljande fördelar, samtidigt som de fortfarande är övertygade om innehållets bakåtkompatibilitet och framtida kompatibilitet. "

År 2005 bildades dock Web Hypertext Application Technology Working Group (WHATWG), oberoende av W3C, för att arbeta med att utveckla vanlig HTML som inte är baserad på XHTML. WHATWG började så småningom arbeta med en standard som stödde både XML- och icke-XML- serier , HTML5 , parallellt med W3C-standarder som XHTML 2. År 2007 röstade W3C: s HTML-arbetsgrupp för att officiellt erkänna HTML5 och arbeta med det som nästa -generation HTML -standard. År 2009 tillät W3C att XHTML 2-arbetsgruppens stadga löpte ut och erkände att HTML5 skulle vara den enda nästa generations HTML-standarden, inklusive både XML- och icke-XML-serier. Av de två serierna föreslår W3C att de flesta författare använder HTML -syntaxen, snarare än XHTML -syntaxen.

Motivering

XHTML utvecklades för att göra HTML mer utökningsbar och öka interoperabilitet med andra dataformat. Dessutom var webbläsare förlåtande för fel i HTML, och de flesta webbplatser visades trots tekniska fel i markeringen; XHTML införde striktare felhantering. HTML 4 var uppenbarligen en tillämpning av Standard Generalized Markup Language (SGML); men specifikationen för SGML var komplex, och varken webbläsare eller HTML 4 -rekommendationen överensstämde helt med den. XML -standarden, godkänd 1998, gav ett enklare dataformat närmare HTML i enkelhet. Genom att byta till ett XML -format hoppades man att HTML skulle bli kompatibelt med vanliga XML -verktyg; servrar och proxyservrar skulle kunna omvandla innehåll efter behov för begränsade enheter som mobiltelefoner. Genom att använda namnutrymmen kan XHTML-dokument ge utökningsbarhet genom att inkludera fragment från andra XML-baserade språk, till exempel skalbar vektorgrafik och MathML . Slutligen skulle det förnyade arbetet ge en möjlighet att dela upp HTML i återanvändbara komponenter ( XHTML Modularization ) och städa upp orena delar av språket.

Förhållande till HTML

Det finns olika skillnader mellan XHTML och HTML. Den Document Object Model (DOM) är en trädstruktur som representerar sida internt i tillämpningar, och XHTML och HTML är två olika sätt att representera att i uppmärkning. Båda är mindre uttrycksfulla än DOM-till exempel "-" kan placeras i kommentarer i DOM, men kan inte representeras i en kommentar i antingen XHTML eller HTML-och i allmänhet är XHTML XML-syntax mer uttrycksfull än HTML (till exempel , godtyckliga namnområden är inte tillåtna i HTML). XHTML använder en XML-syntax, medan HTML använder en pseudo- SGML- syntax (officiellt SGML för HTML 4 och under, men aldrig i praktiken och standardiserad bort från SGML i HTML5). Eftersom det uttryckliga innehållet i DOM i syntaxen är något annorlunda, finns det vissa förändringar i det faktiska beteendet mellan de två modellerna. Syntaxskillnader kan dock övervinnas genom att implementera alternativa translationella ramar inom markeringen.

För det första finns det några skillnader i syntax:

  • I stort kräver XML-reglerna att alla element stängs, antingen med en separat stängningstagg eller med hjälp av självstängande syntax (t.ex. <br/>), medan HTML-syntax tillåter att vissa element stängs av eftersom de antingen alltid är tomma (t.ex. <input>) eller deras slut kan bestäms implicit ("omissibility", t.ex. <p>).
  • XML är skiftlägeskänsligt för element- och attributnamn , medan HTML inte är det.
  • Vissa stenografifunktioner i HTML utelämnas i XML, till exempel (1) attributminimering , där attributvärden eller deras citat kan utelämnas (t.ex. <option selected>eller <option selected=selected>medan XML måste uttryckas som <option selected="selected">); (2) elementminimering kan användas för att ta bort element helt (t.ex. <tbody>antas i en tabell om det inte anges); och (3) den sällan använda SGML -syntaxen för elementminimering ("shorttag"), som de flesta webbläsare inte implementerar.
  • Det finns många andra tekniska krav kring namnområden och exakt analys av blanksteg och vissa tecken och element. Den exakta analysen av HTML i praktiken har varit odefinierad tills nyligen; se HTML5 -specifikationen ( [HTML5] ) för fullständig information eller arbetssammanfattningen ( HTML vs. XHTML ).

Förutom de syntaktiska skillnaderna finns det vissa beteendemässiga skillnader, som främst härrör från de underliggande skillnaderna i serialisering. Till exempel:

  • Beteende vid analysfel skiljer sig åt. Ett dödligt analysfel i XML (t.ex. en felaktig taggstruktur) gör att dokumentbearbetningen avbryts.
  • De flesta innehåll kräver namn fungerar inte i HTML, förutom inbyggt stöd för SVG och MathML i HTML5 tolken tillsammans med vissa magiska prefix som xlink.
  • Cascading Style Sheets (CSS) tillämpas också annorlunda. På grund av XHTML skiftlägeskänslighet blir alla CSS-väljare skiftlägeskänsliga för XHTML-dokument. Vissa CSS -egenskaper, till exempel bakgrunder, som är inställda på <body>elementet i HTML är "nedärvda uppåt" i <html>elementet; Detta verkar inte vara fallet för XHTML.

Adoption

Likheterna mellan HTML 4.01 och XHTML 1.0 fick många webbplatser och innehållshanteringssystem att anta den första W3C XHTML 1.0 -rekommendationen. För att hjälpa författare i övergången gav W3C vägledning om hur man publicerar XHTML 1.0-dokument på ett HTML-kompatibelt sätt och skickar dem till webbläsare som inte var utformade för XHTML.

Sådant "HTML-kompatibelt" innehåll skickas med hjälp av HTML-medietypen ( text/html) snarare än den officiella Internetmediatypen för XHTML ( application/xhtml+xml). När man mäter antagandet av XHTML till det för vanlig HTML är det därför viktigt att skilja på om det är mediatypsanvändning eller verkligt dokumentinnehåll som jämförs.

De flesta webbläsare har moget stöd för alla möjliga XHTML -medietyper. Det anmärkningsvärda undantaget är Internet Explorer version 8 och tidigare av Microsoft ; istället för att återge application/xhtml+xmlinnehåll, uppmanar en dialogruta användaren att spara innehållet på disken istället. Både Internet Explorer 7 (släpptes 2006) och Internet Explorer 8 (släpptes i mars 2009) uppvisar detta beteende. Microsofts utvecklare Chris Wilson förklarade 2005 att IE7: s prioriteringar var förbättrad webbläsarsäkerhet och CSS- stöd, och att korrekt XHTML-stöd skulle vara svårt att sätta sig in i IE: s kompatibilitetsorienterade HTML-parser; dock lade Microsoft till stöd för äkta XHTML i IE9 .

Så länge stödet inte är utbrett undviker de flesta webbutvecklare att använda XHTML som inte är HTML-kompatibel, så fördelar med XML som namnområden, snabbare analys och webbläsare med mindre fotavtryck gynnar inte användaren.

Kritik

I början av 2000 -talet började några webbutvecklare ifrågasätta varför webbförfattare någonsin gjorde språnget till att skapa i XHTML. Andra motsatte sig att problemen som tillskrivs användningen av XHTML mestadels kan hänföras till två huvudkällor: produktion av ogiltiga XHTML -dokument av vissa webbförfattare och bristen på stöd för XHTML inbyggt i Internet Explorer 6 . De fortsatte med att beskriva fördelarna med XML-baserade webbdokument (dvs. XHTML) när det gäller att söka, indexera och analysera samt framtidsskydda själva webben.

I oktober 2006 publicerade HTML-uppfinnaren och W3C-ordföranden Tim Berners-Lee ett stort W3C-försök att utveckla en ny HTML-specifikation i sin blogg att "Försöket att få världen att byta till XML ... på en gång gjorde det inte Den stora HTML-genererande allmänheten rörde sig inte ... Vissa stora samhällen skiftade och åtnjuter frukterna av välformade system ... Planen är att chartra en helt ny HTML-grupp. " Det nuvarande HTML5 -arbetsutkastet säger "särskild uppmärksamhet har ägnats åt att definiera tydliga överensstämmelsekriterier för användaragenter i ett försök att förbättra driftskompatibiliteten ... samtidigt som HTML -specifikationerna uppdateras för att ta itu med problem som tagits upp under de senaste åren." Ian Hickson , redaktör för HTML5-specifikationen som kritiserar felaktig användning av XHTML 2002, är medlem i gruppen som utvecklar denna specifikation och listas som en av medredaktörerna för det nuvarande arbetsutkastet.

Simon Pieters undersökte mobilwebbläsares XML-överensstämmelse och drog slutsatsen "påståendet att XHTML skulle behövas för mobila enheter är helt enkelt en myt".

Versioner av XHTML

XHTML 1.0

Tidigare använde Wikipedia XHTML 1.0 Transitional doctype och syntax, även om det inte fungerade som XHTML

I december 1998 publicerades ett W3C Working Draft med titeln Reformulating HTML in XML . Detta introducerade Voyager, kodnamnet för ett nytt markeringsspråk baserat på HTML 4, men som följer de striktare syntaxreglerna för XML. I februari 1999 hade specifikationens namn ändrats till XHTML 1.0: Extensible HyperText Markup Language , och i januari 2000 antogs det officiellt som en W3C -rekommendation. Det finns tre formella DTD: er för XHTML 1.0, motsvarande de tre olika versionerna av HTML 4.01:

  • XHTML 1.0 Strict är XML -motsvarigheten till strikt HTML 4.01 och innehåller element och attribut som inte har markerats som utfasade i HTML 4.01 -specifikationen. I november 2015 är XHTML 1.0 Strict den dokumenttyp som används för hemsidan för webbplatsen för World Wide Web Consortium .

Den andra upplagan av XHTML 1.0 blev en W3C -rekommendation i augusti 2002.

Modularisering av XHTML

Modularisering ger en abstrakt samling av komponenter genom vilka XHTML kan delas och förlängas. Funktionen är avsedd att hjälpa XHTML att nå ut till nya plattformar, till exempel mobila enheter och webbaktiverade tv-apparater. Det första utkastet till Modularisering av XHTML blev tillgängligt i april 1999 och nådde rekommendationsstatus i april 2001.

De första modulära XHTML -varianterna var XHTML 1.1 och XHTML Basic 1.0.

I oktober 2008 ersattes Modularisering av XHTML av XHTML Modularization 1.1 , vilket lägger till en XML Schema -implementering. Den ersattes själv av en andra upplaga i juli 2010.

XHTML 1.1: Modulbaserad XHTML

XHTML 1.1 utvecklades ur arbetet kring den första moduleringen av XHTML -specifikationen. W3C släppte ett första utkast i september 1999; Rekommendation status nåddes i maj 2001. Modulerna kombinerade inom XHTML 1,1 effektivt återskapa XHTML 1,0 Strict, med tillägg av rubin annotation element ( ruby, rbc, rtc, rb, rtoch rp) för att bättre stödja öst-asiatiska språk. Andra förändringar innefattar borttagning av nameattributet från aoch mapelementen, och (i den första upplagan av språket) avlägsnande av langattributet till förmån för xml:lang.

Även om XHTML 1.1 till stor del är kompatibelt med XHTML 1.0 och HTML 4, utfärdade arbetsgruppen i augusti 2002 en formell anteckning om att den inte ska överföras med HTML -medietyp. Med begränsat webbläsarstöd för den alternativa application/xhtml+xmlmedietypen visade sig XHTML 1.1 inte kunna bli utbredd. I januari 2009 utfärdades en andra upplaga av dokumentet ( XHTML Media Types - Second Edition ), som begränsade denna begränsning och tillät XHTML 1.1 att fungera som text/html.

En andra upplaga av XHTML 1.1 utfärdades den 23 november 2010, som behandlar olika fel och lägger till en XML Schema -implementering som inte ingår i den ursprungliga specifikationen. (Den släpptes första gången den 7 maj 2009 som en "förslag till redigerad rekommendation" innan den upphävdes den 19 maj på grund av olösta problem.)

XHTML Basic

Eftersom informationsapparater kan sakna systemresurser för att implementera alla XHTML-abstraktmoduler definierade W3C en funktionsbegränsad XHTML-specifikation som kallas XHTML Basic. Det ger en minimal delmängd av funktioner för den vanligaste innehållsredigeringen. Specifikationen blev en W3C -rekommendation i december 2000.

Av alla versioner av XHTML har XHTML Basic 1.0 de minsta funktionerna. Med XHTML 1.1 är det en av de två första implementeringarna av modulär XHTML. Förutom kärnmodulerna (struktur, text, hypertext och lista) implementerar den följande abstrakta moduler: Bas, grundformulär, grundtabeller, bild, länk, metainformation, objekt, stilark och mål.

XHTML Basic 1.1 ersätter modulen Basic Forms med formulärmodulen och lägger till modulerna Intrinsic Events, Presentation och Scripting. Den stöder också ytterligare taggar och attribut från andra moduler. Denna version blev en W3C -rekommendation den 29 juli 2008.

Den nuvarande versionen av XHTML Basic är 1.1 andra upplagan (23 november 2010), där språket återimplementeras i W3C: s XML Schema- språk. Denna version stöder också langattributet.

XHTML-Print

XHTML-Print, som blev en W3C-rekommendation i september 2006, är en specialversion av XHTML Basic utformad för dokument som skrivs ut från informationsapparater till avancerade skrivare .

XHTML mobilprofil

XHTML Mobile Profile (förkortad XHTML MP eller XHTML-MP) är en tredjepartsvariant av W3C: s XHTML Basic-specifikation. Precis som XHTML Basic utvecklades XHTML för informationsapparater med begränsade systemresurser.

I oktober 2001 började ett aktiebolag vid namn Wireless Application Protocol Forum anpassa XHTML Basic för WAP 2.0 , den andra stora versionen av Wireless Application Protocol . WAP Forum baserade sin DTD på W3C: s modulering av XHTML, med samma moduler som W3C som användes i XHTML Basic 1.0 - förutom målmodulen. Från och med denna grund ersatte WAP -forumet grundformulärsmodulen med en delvis implementering av formulärmodulen, lade till delvis stöd för äldre och presentationsmoduler och lade till fullt stöd för stilattributmodulen.

År 2002 ingick WAP -forumet i Open Mobile Alliance (OMA), som fortsatte att utveckla XHTML Mobile Profile som en del av deras OMA Browsing Specification.

XHTML mobilprofil 1.1

Till denna version, som slutfördes 2004, lade OMA till delvis stöd för Scripting -modulen och delvis stöd för inneboende händelser. XHTML MP 1.1 är en del av v2.1 i OMA Browsing Specification (1 november 2002).

XHTML mobilprofil 1.2

Denna version, slutförd 27 februari 2007, utökar möjligheterna för XHTML MP 1.1 med fullt stöd för formulärmodulen och OMA -textinmatningslägen. XHTML MP 1.2 är en del av v2.3 i OMA Browsing Specification (13 mars 2007).

XHTML mobilprofil 1.3

XHTML MP 1.3 (slutförd den 23 september 2008) använder dokumenttypdefinitionen XHTML Basic 1.1 , som inkluderar målmodulen. Händelser i denna version av specifikationen uppdateras till DOM-nivå 3-specifikationer (dvs de är plattforms- och språkneutrala).

XHTML 1.2

XHTML 2 -arbetsgruppen övervägde att skapa ett nytt språk baserat på XHTML 1.1. Om XHTML 1.2 skapades skulle det inkludera WAI-ARIA och roleattribut för bättre stöd för tillgängliga webbapplikationer och förbättrat semantiskt webbstöd genom RDFa . Den inputmodeattributet från XHTML Basic 1,1, tillsammans med targetattributet (för specificering ram mål) kan också vara närvarande. XHTML2 WG hade inte chartrats för att genomföra utvecklingen av XHTML1.2. Eftersom W3C meddelade att det inte har för avsikt att ladda om XHTML2 WG och stängde WG i december 2010, betyder det att XHTML 1.2 -förslag inte kommer att inträffa.

XHTML 2.0

Mellan augusti 2002 och juli 2006 släppte W3C åtta Working Drafts för XHTML 2.0, en ny version av XHTML som kunde göra en ren paus från det förflutna genom att kassera kravet på bakåtkompatibilitet. Denna bristande kompatibilitet med XHTML 1.x och HTML 4 orsakade tidig kontrovers i webbutvecklargemenskapen. Vissa delar av språket (såsom roleattributet och RDFa) delades därefter ut från specifikationen och arbetade vidare som separata moduler, delvis för att göra övergången från XHTML 1.x till XHTML 2.0 smidigare. Ett nionde utkast till XHTML 2.0 förväntades dyka upp under 2009, men den 2 juli 2009 beslutade W3C att låta XHTML2 Working Group -stadgan löpa ut vid årets slut, vilket i praktiken stoppar varje vidareutveckling av utkastet till en standard. Istället släpptes XHTML 2.0 och dess relaterade dokument som W3C Notes 2010.

Nya funktioner som har introducerats av XHTML 2.0 inkluderar:

  • HTML-formulär skulle ersättas av XForms , en XML-baserad användarinmatningsspecifikation som gör att formulär kan visas på lämpligt sätt för olika renderingsenheter.
  • HTML -ramar skulle ersättas av XFrames .
  • De DOM Events skulle ersättas med XML Events , som använder XML Document Object Model .
  • En ny listelementtyp, nlelementtypen, skulle inkluderas för att specifikt utse en lista som en navigationslista. Detta skulle ha varit användbart för att skapa kapslade menyer, som för närvarande skapas på många olika sätt, t.ex. kapslade oordnade listor eller kapslade definitionslistor.
  • Varje element var att kunna fungera som en hyperlänk , t.ex. g. <li href="articles.html">Articles</li>, liknande XLink . XLink i sig är dock inte kompatibelt med XHTML på grund av designskillnader.
  • Vilket element som helst skulle kunna referera till alternativa medier med srcattributet, t.ex. g., <p src="lbridge.jpg" type="image/jpeg">London Bridge</p>är detsamma som <object src="lbridge.jpg" type="image/jpeg"><p>London Bridge</p></object>.
  • Den altattributet för imgelementet togs bort: alternativ text ges i innehållet i imgelementet, likt objectelement, e. g., <img src="hms_audacious.jpg">HMS <span class="italic">Audacious</span></img>.
  • Ett enda rubrikelement ( h) har lagts till. Nivån på dessa rubriker bestämdes av häckets djup. Detta skulle ha tillåtit användningen av rubriker att vara oändlig, snarare än att begränsa användningen till sex nivåer djup.
  • De återstående presentationselementen i, boch ttfortfarande tillåtna i XHTML 1.x (även Strikt), skulle saknas i XHTML 2.0. De enda något presentationselement som återstod skulle vara suprespektive subför över- respektive underskrift, eftersom de har betydande icke-presentationsanvändningar och krävs av vissa språk. Alla andra taggar var avsedda att vara semantiska istället (t.ex. strongför stark betoning ) samtidigt som användaragenten kunde styra presentationen av element via CSS (t.ex. återges som fetstil i de flesta visuella webbläsare, men möjligen återges med tonförändringar i en text- till talläsare, större + kursiv teckensnitt per regler i ett användaravslutat formatmall, etc.).
  • Tillsatsen av RDF trippel med propertyoch aboutattribut för att underlätta omvandlingen från XHTML till RDF / XML.

XHTML5

HTML5 växte oberoende av W3C, genom en lös grupp av webbläsartillverkare och andra intresserade som kallar sig WHATWG , eller Web Hypertext Application Technology Working Group. Gruppens främsta motiv var att skapa en plattform för dynamiska webbapplikationer; de ansåg att XHTML 2.0 var för dokumentcentrerat och inte lämpade för att skapa internetforumsidor eller onlinebutiker.

HTML5 har både en vanlig text/htmlserialisering och en XML -serialisering, som också kallas XHTML5 . Språket är mer kompatibelt med HTML 4 och XHTML 1.x än XHTML 2.0, på grund av beslutet att behålla de befintliga HTML -formelementen och händelsemodellen. Det lägger dock till många nya element som inte finns i XHTML 1.x, till exempel sectionoch asidetaggar.

XHTML5 -språket, liksom HTML5, använder en DOCTYPE -deklaration utan DTD. Dessutom föråldrar specifikationen tidigare XHTML DTD: er genom att be webbläsarna att ersätta dem med en som endast innehåller enhetsdefinitioner för namngivna tecken under analys.

Semantiskt innehåll i XHTML

XHTML+RDFa är en utökad version av XHTML-markeringsspråket för att stödja RDF genom en samling attribut och behandlingsregler i form av välformade XML- dokument. Detta värdspråk är en av de tekniker som används för att utveckla semantiskt webbinnehåll genom att bädda in ett rikt semantiskt uppslag.

Giltiga XHTML -dokument

Ett XHTML -dokument som överensstämmer med en XHTML -specifikation sägs vara giltigt . Giltighet garanterar konsekvens i dokumentkod, vilket i sin tur underlättar bearbetningen, men inte nödvändigtvis säkerställer konsekvent återgivning av webbläsare. Ett dokument kan kontrolleras för giltighet med W3C Markup Validation Service (för XHTML5 bör Validator.nu Living Validator användas istället). I praktiken tillhandahåller många webbutvecklingsprogram kodvalidering baserat på W3C -standarder.

Rotelement

Rotelementet i ett XHTML -dokument måste vara htmloch måste innehålla ett xmlnsattribut för att associera det med XHTML -namnutrymmet . Namnutrymmet URI för XHTML är http://www.w3.org/1999/xhtml. Exempeltaggen nedan har dessutom ett xml:langattribut för att identifiera dokumentet med ett naturligt språk :

<html
xmlns=
"http://www.w3.org/1999/xhtml"
xml:lang=
"ar"
>

DOKTYPER

För att validera ett XHTML -dokument kan en dokumenttypdeklaration eller DOCTYPE användas. En DOCTYPE deklarerar för webbläsaren den dokumenttypdefinition (DTD) som dokumentet överensstämmer med. En dokumenttypdeklaration bör placeras före rotelementet .

Det systemet identifierare delen av DOCTYPE, som i dessa exempel är URL som börjar med http://endast behöver peka på en kopia av DTD till användning, om validator inte kan hitta en baserat på allmän identifierare (den andra citerade sträng). Det behöver inte vara den specifika URL: en som finns i dessa exempel. Faktum är att författare uppmuntras att använda lokala kopior av DTD -filer när det är möjligt. Den offentliga identifieraren måste dock vara tecken-för-tecken samma som i exemplen.

XML -deklaration

En teckenkodning kan anges i början av ett XHTML -dokument i XML -deklarationen när dokumentet serveras med application/xhtml+xml MIME -typ. (Om ett XML-dokument saknar kodningsspecifikation förutsätter en XML-parser att kodningen är UTF-8 eller UTF-16 , om inte kodningen redan har bestämts av ett högre protokoll.)

Till exempel:

<?xml version="1.0" encoding="UTF-8" ?>

Deklarationen kan valfritt utelämnas eftersom den deklarerar som standardkodning. Men om dokumentet istället använder XML 1.1 eller annan teckenkodning krävs en deklaration. Internet Explorer före version 7 går in i quirks -läge om den stöter på en XML -deklaration i ett dokument som fungerar som text/html.

Bakåtkompatibilitet

XHTML 1.x -dokument är mestadels bakåtkompatibla med HTML 4 -användaragenter när lämpliga riktlinjer följs. XHTML 1.1 är i huvudsak kompatibel, även om elementen för rubinannotering inte är en del av HTML 4 -specifikationen och därför ignoreras i allmänhet av HTML 4 -webbläsare. Senare försämras XHTML 1.x-moduler som de för roleattributet, RDFa och WAI-ARIA graciöst på ett liknande sätt.

XHTML 2.0 är betydligt mindre kompatibel, även om detta till viss del kan mildras genom användning av skript. (Detta kan vara enkla enliners, till exempel användningen av ” document.createElement()” för att registrera ett nytt HTML-element i Internet Explorer, eller kompletta JavaScript-ramverk, till exempel FormFaces- implementering av XForms .)

Exempel

Följande är exempel på XHTML 1.0 Strict, där båda har samma visuella utmatning. Den förra följer HTML -kompatibilitetsriktlinjerna för XHTML Media Types Note medan den senare bryter bakåtkompatibilitet, men ger renare markup.

Rekommendation av medietyp (i RFC 2119 -termer) för exemplen:
Mediatyp Exempel 1 Exempel 2
application/xhtml+xml SKALL SKALL
applikation/xml MAJ MAJ
text/xml MAJ MAJ
text/html MAJ BORDE INTE

Exempel 1.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xml:lang=
"en"
lang=
"en"
>
<head>
<meta
http-equiv=
"Content-Type"
content=
"text/html; charset=utf-8"
/>
<title>
XHTML 1.0 Strict Example
</title>
<script
type=
"text/javascript"
>
//
<![CDATA[
function loadpdf() {
document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf";
}
//]]>
</script>
</head>
<body
onload=
"loadpdf()"
>
<p>
This is an example of an
<abbr
title=
"Extensible HyperText Markup Language"
>
XHTML
</abbr>
1.0 Strict document.
<br
/>
<img
id=
"validation-icon"
src=
"http://www.w3.org/Icons/valid-xhtml10"
alt=
"Valid XHTML 1.0 Strict"
/><br
/>
<object
id=
"pdf-object"
name=
"pdf-object"
type=
"application/pdf"
data=
"http://www.w3.org/TR/xhtml1/xhtml1.pdf"
width=
"100%"
height=
"500"
>
</object>
</p>
</body>
</html>

Exempel 2.

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html
xmlns=
"http://www.w3.org/1999/xhtml"
xml:lang=
"en"
>
<head>
<title>
XHTML 1.0 Strict Example
</title>
<script
type=
"application/javascript"
>
<![CDATA[
function loadpdf() {
document.getElementById("pdf-object").src="http://www.w3.org/TR/xhtml1/xhtml1.pdf";
}
]]>
</script>
</head>
<body
onload=
"loadpdf()"
>
<p>
This is an example of an
<abbr
title=
"Extensible HyperText Markup Language"
>
XHTML
</abbr>
1.0 Strict document.
<br
/>
<img
id=
"validation-icon"
src=
"http://www.w3.org/Icons/valid-xhtml10"
alt=
"Valid XHTML 1.0 Strict"
/><br
/>
<object
id=
"pdf-object"
type=
"application/pdf"
data=
"http://www.w3.org/TR/xhtml1/xhtml1.pdf"
width=
"100%"
height=
"500"
></object>
</p>
</body>
</html>

Anmärkningar:

  1. "Loadpdf" -funktionen är faktiskt en lösning för Internet Explorer. Det kan ersättas med att lägga till <param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf"/>inom <object>.
  2. Den imgdel får inte ett nameattribut i XHTML 1.0 Strict DTD . Använd idistället.

Korskompatibilitet mellan XHTML och HTML

HTML5- och XHTML5-serier är i stort sett kompatibla om de följer den strängare XHTML5-syntaxen, men det finns vissa fall där XHTML inte fungerar som giltig HTML5 (t.ex. behandlingsinstruktioner utfasas i

HTML
, behandlas som kommentarer och stängs på först ">", medan de är fullt tillåtna i XML, behandlas som sin egen typ och stänger "
?>
").

Se även

Referenser