XHTML - XHTML
| Extensie nume de fișier |
.xhtml, .xht,
.xml, .html, .htm |
|---|---|
| Tipul media internet |
application / xhtml + xml |
| Identificator de tip uniform (UTI) | public.xhtml |
| Conformația UTI | public.xml |
| Dezvoltat de | World Wide Web Consortium (W3C) |
| Eliberarea inițială | 26 ianuarie 2000 |
| Ultima lansare | 5.0 (28 octombrie 2014 ) |
| Tipul formatului | Limbaj de marcare |
| Extins de la | XML , HTML |
| Standard | W3C HTML5 (Recomandare) |
| Formatul deschis ? | da |
| HTML |
|---|
| Comparații |
Extensible HyperText Markup Language ( XHTML ) face parte din familia limbajelor de markup XML . Oglindește sau extinde versiunile limbajului HyperText Markup Language (HTML) utilizat pe scară largă , limbajul în care sunt formulate paginile web .
În timp ce HTML, înainte de HTML5 , a fost definit ca o aplicație a Standard Generalized Markup Language (SGML), un cadru flexibil de limbaj de markup, XHTML este o aplicație XML , un subset mai restrictiv al SGML. Documentele XHTML sunt bine formate și, prin urmare, pot fi analizate folosind analizoare XML standard, spre deosebire de HTML, care necesită un analizor specific HTML specific.
XHTML 1.0 a devenit World Wide Web Consortium (W3C) , recomandarea data de 26 ianuarie 2000. XHTML 1.1 a devenit o recomandare W3C pe data de 31 mai 2001. Standardul cunoscut sub numele de XHTML5 este dezvoltat ca o adaptare XML a caietului de sarcini HTML5.
Prezentare generală
XHTML 1.0 este „o reformulare a celor trei tipuri de documente HTML 4 ca aplicații XML 1.0”. World Wide Web Consortium (W3C) , de asemenea , continuă să mențină recomandarea HTML 4.01, iar specificațiile pentru HTML5 și XHTML5 sunt în curs de dezvoltare în mod activ. În documentul actual de recomandare XHTML 1.0, astfel cum a fost publicat și revizuit în august 2002, W3C a comentat că „Familia XHTML este următorul pas în evoluția internetului. Prin migrarea la XHTML astăzi, dezvoltatorii de conținut pot intra în lumea XML cu toate avantajele sale însoțitoare, rămânând totuși încrezător în compatibilitatea înapoi și viitoare a conținutului lor. "
Cu toate acestea, în 2005, Web Hypertext Application Technology Working Group (WHATWG) s-a format, independent de W3C, pentru a lucra la avansarea HTML obișnuit, nu bazat pe XHTML. WHATWG a început în cele din urmă să lucreze la un standard care să accepte atât serializări XML , cât și non-XML , HTML5 , în paralel cu standardele W3C, cum ar fi XHTML 2. În 2007, grupul de lucru HTML al W3C a votat să recunoască oficial HTML5 și să lucreze la el ca următor -generație standard HTML. În 2009, W3C a permis expirarea statutului grupului de lucru XHTML 2, recunoscând că HTML5 va fi singurul standard HTML de generație următoare, incluzând atât serializări XML, cât și non-XML. Dintre cele două serializări, W3C sugerează că majoritatea autorilor folosesc sintaxa HTML, mai degrabă decât sintaxa XHTML.
Motivație
XHTML a fost dezvoltat pentru a face HTML mai extensibil și pentru a crește interoperabilitatea cu alte formate de date. În plus, browserele au iertat erorile în HTML, iar majoritatea site-urilor web au fost afișate în ciuda erorilor tehnice în markup; XHTML a introdus o gestionare mai strictă a erorilor. HTML 4 a fost aparent o aplicație a Standard Generalized Markup Language (SGML); cu toate acestea, specificațiile pentru SGML erau complexe și nici browserele web, nici Recomandarea HTML 4 nu erau pe deplin conforme cu aceasta. Standardul XML, aprobat în 1998, a furnizat un format de date mai simplu, mai aproape de HTML 4. Prin trecerea la un format XML, s-a sperat că HTML va deveni compatibil cu instrumentele XML comune; serverele și proxy-urile ar putea transforma conținutul, după cum este necesar, pentru dispozitive restricționate, cum ar fi telefoanele mobile. Prin utilizarea spațiilor de nume , documentele XHTML ar putea oferi extensibilitate prin includerea fragmentelor din alte limbaje bazate pe XML, cum ar fi Scalable Vector Graphics și MathML . În cele din urmă, lucrarea reînnoită ar oferi o oportunitate de a împărți HTML în componente reutilizabile ( Modularizare XHTML ) și de a curăța părți neordonate ale limbajului.
Relația cu HTML
Există diferite diferențe între XHTML și HTML. Modelul de obiecte ale documentelor (DOM) este o structură de arbore care reprezintă pagina în interiorul aplicațiilor, iar XHTML și HTML sunt două moduri diferite de a o reprezenta în markup. Ambele sunt mai puțin expresive decât DOM - de exemplu, „-” poate fi plasat în comentarii în DOM, dar nu poate fi reprezentat într-un comentariu în XHTML sau HTML - și, în general, sintaxa XML a XHTML este mai expresivă decât HTML (de exemplu, , spațiile de nume arbitrare nu sunt permise în HTML). XHTML folosește o sintaxă XML, în timp ce HTML folosește o sintaxă pseudo- SGML (oficial SGML pentru HTML 4 și sub, dar niciodată în practică, și standardizat departe de SGML în HTML5). Deoarece conținutul exprimabil al DOM în sintaxă este ușor diferit, există unele modificări ale comportamentului real între cele două modele. Cu toate acestea, diferențele de sintaxă pot fi depășite prin implementarea unui cadru de traducere alternativ în cadrul marcajului.
În primul rând, există unele diferențe în sintaxă:
- În linii mari, regulile XML necesită închiderea tuturor elementelor , fie printr-o etichetă de închidere separată, fie folosind sintaxa de închidere automată (de exemplu
<br/>), în timp ce sintaxa HTML permite ca unele elemente să fie închise deoarece fie sunt întotdeauna goale (de exemplu<input>), fie să fie determinată implicit („omisibilitate”, de ex<p>.). - XML este sensibil la majuscule și minuscule pentru numele elementelor și atributelor , în timp ce HTML nu.
- Unele caracteristici abreviate în HTML sunt omise în XML, cum ar fi (1) minimizarea atributelor , unde valorile atributelor sau ghilimelele lor pot fi omise (de exemplu
<option selected>sau<option selected=selected>, în timp ce în XML acest lucru trebuie exprimat ca<option selected="selected">); (2) minimizarea elementelor poate fi utilizată pentru a elimina complet elementele (cum ar fi<tbody>deduse într-un tabel dacă nu sunt date); și (3) sintaxa SGML rar utilizată pentru minimizarea elementelor („shorttag”), pe care majoritatea browserelor nu o implementează. - Există numeroase alte cerințe tehnice în jurul spațiilor de nume și analiza precisă a spațiului alb și a anumitor caractere și elemente. Analizarea exactă a HTML-ului în practică a fost nedefinită până de curând; consultați specificația HTML5 ( [HTML5] ) pentru detalii complete sau rezumatul de lucru ( HTML vs. XHTML ).
În plus față de diferențele sintactice, există unele diferențe de comportament, care apar mai ales din diferențele de bază în serializare. De exemplu:
- Comportamentul la erorile de analiză diferă. O eroare de analiză fatală în XML (cum ar fi o structură incorectă de etichete) face ca procesarea documentelor să fie întreruptă.
- Majoritatea conținutului care necesită spații de nume nu va funcționa în HTML, cu excepția suportului încorporat pentru SVG și MathML în analizorul HTML5 împreună cu anumite prefixe magice, cum ar fi
xlink. - Procesarea JavaScript este diferită în XHTML, cu modificări minore în sensibilitatea cazului la unele funcții și precauții suplimentare pentru a restricționa procesarea la conținut bine format. Scripturile nu trebuie să utilizeze metoda; nu este disponibil pentru XHTML. Proprietatea este disponibilă, dar nu va insera conținut non-bine format. Pe de altă parte, poate fi folosit pentru a insera conținut bine formatat în spațiul de nume în XHTML.
document.write()innerHTML -
Foi de stil în cascadă (CSS) sunt, de asemenea, aplicate diferit. Datorită caracteristicilor XHTML, toate selectorele CSS devin sensibile la majuscule și minuscule pentru documentele XHTML. Unele proprietăți CSS, cum ar fi fundalurile, setate pe
<body>elementul în HTML sunt „moștenite în sus” în<html>element; acest lucru pare să nu fie cazul pentru XHTML.
Adopţie
Asemănările dintre HTML 4.01 și XHTML 1.0 au determinat multe site-uri web și sisteme de gestionare a conținutului să adopte recomandarea inițială W3C XHTML 1.0. Pentru a ajuta autorii în tranziție, W3C a oferit îndrumări despre cum să publice documente XHTML 1.0 într-o manieră compatibilă cu HTML și să le difuzeze către browserele care nu au fost proiectate pentru XHTML.
Un astfel de conținut „compatibil HTML” este trimis utilizând tipul de suport HTML ( text/html) mai degrabă decât tipul oficial de suport pentru internet pentru XHTML ( application/xhtml+xml). Prin urmare, atunci când măsurăm adoptarea XHTML cu cea a HTML-ului obișnuit, este important să distingem dacă se compară utilizarea tipului de suport media sau conținutul documentului real.
Majoritatea browserelor web au suport matur pentru toate tipurile de media XHTML posibile. Excepția notabilă este Internet Explorer versiunile 8 și anterioare ale Microsoft ; mai degrabă decât redarea application/xhtml+xmlconținutului, o casetă de dialog invită utilizatorul să salveze conținutul pe disc. Atât Internet Explorer 7 (lansat în 2006), cât și Internet Explorer 8 (lansat în martie 2009) prezintă acest comportament. Dezvoltatorul Microsoft, Chris Wilson, a explicat în 2005 că prioritățile IE7 erau îmbunătățirea securității browserului și a suportului CSS și că suportul XHTML adecvat ar fi dificil de introdus pe analizorul HTML orientat spre compatibilitate al IE; cu toate acestea, Microsoft a adăugat suport pentru XHTML adevărat în IE9 .
Atâta timp cât asistența nu este răspândită, majoritatea dezvoltatorilor web evită să utilizeze XHTML care nu este compatibil cu HTML, astfel încât avantajele XML, cum ar fi spațiile de nume, analizele mai rapide și browserele cu amprentă mai mică, nu beneficiază de utilizator.
Critică
La începutul anilor 2000, unii dezvoltatori web au început să se întrebe de ce autorii web au făcut vreodată saltul în crearea în XHTML. Alții au contestat faptul că problemele atribuite utilizării XHTML ar putea fi atribuite în mare parte a două surse principale: producerea de documente XHTML nevalide de către unii autori de Web și lipsa suportului pentru XHTML încorporat în Internet Explorer 6 . Au continuat să descrie avantajele documentelor Web bazate pe XML (adică XHTML) în ceea ce privește căutarea, indexarea și analiza, precum și verificarea pe viitor a Web-ului în sine.
În octombrie 2006, inventatorul HTML și președintele W3C, Tim Berners-Lee , introducând un efort major al W3C pentru a dezvolta o nouă specificație HTML, a postat pe blogul său că „Încercarea de a face lumea să treacă la XML ... deodată nu a făcut-o marele public generator de HTML nu s-a mișcat ... Unele comunități mari s-au schimbat și se bucură de fructele unor sisteme bine formate ... Planul este de a înființa un grup HTML complet nou. " Proiectul actual de lucru HTML5 spune că „s-a acordat o atenție specială definirii unor criterii clare de conformitate pentru agenții utilizator într-un efort de a îmbunătăți interoperabilitatea ... actualizând în același timp specificațiile HTML pentru a aborda problemele ridicate în ultimii ani”. Ian Hickson , editor al specificației HTML5 care critică utilizarea necorespunzătoare a XHTML în 2002, este membru al grupului care dezvoltă această specificație și este listat ca unul dintre coeditorii proiectului de lucru actual.
Simon Pieters a cercetat conformitatea XML a browserelor mobile și a concluzionat că „afirmația că XHTML ar fi necesar pentru dispozitivele mobile este pur și simplu un mit”.
Versiuni de XHTML
XHTML 1.0
În decembrie 1998 a apărut un proiect de lucru W3C intitulat Reformulating HTML in XML . Aceasta a introdus Voyager, numele de cod pentru un nou limbaj de marcare bazat pe HTML 4, dar aderând la regulile de sintaxă mai stricte ale XML. Până în februarie 1999, denumirea specificației s-a schimbat în XHTML 1.0: Limbajul de marcare extensibil hipertext , iar în ianuarie 2000 a fost adoptat oficial ca o recomandare W3C. Există trei DTD-uri formale pentru XHTML 1.0, care corespund celor trei versiuni diferite ale HTML 4.01:
- XHTML 1.0 Strict este echivalentul XML al HTML 4.01 strict și include elemente și atribute care nu au fost marcate ca depreciate în specificația HTML 4.01. Începând cu noiembrie 2015, XHTML 1.0 Strict este tipul de document utilizat pentru pagina principală a site-ului web al consorțiului World Wide Web .
-
XHTML 1.0 Transitional este echivalentul XML al HTML 4.01 Transitional si include elementele (cum ar fi de prezentare
center,fontșistrike) excluse din versiunea strict. - XHTML 1.0 Frameset este echivalentul XML al HTML 4.01 Frameset și permite definirea documentelor de seturi de cadre - o caracteristică web comună la sfârșitul anilor '90.
A doua ediție a XHTML 1.0 a devenit o recomandare W3C în august 2002.
Modularizarea XHTML
Modularizarea oferă o colecție abstractă de componente prin care XHTML poate fi subsetat și extins. Funcția este destinată să ajute XHTML să-și extindă acoperirea pe platforme emergente, cum ar fi dispozitive mobile și televizoare web. Proiectul inițial de modularizare a XHTML a devenit disponibil în aprilie 1999 și a atins statutul de recomandare în aprilie 2001.
Primele variante XHTML modulare au fost XHTML 1.1 și XHTML Basic 1.0.
În octombrie 2008, Modularizarea XHTML a fost înlocuită de XHTML Modularization 1.1 , care adaugă o implementare a schemei XML . A fost însuși înlocuit de o a doua ediție în iulie 2010.
XHTML 1.1: XHTML bazat pe module
XHTML 1.1 a evoluat din lucrarea care a înconjurat Modularizarea inițială a specificațiilor XHTML . W3C a lansat o primă schiță în septembrie 1999; Starea Recomandarea a fost atins în mai 2001. Modulele combinate în cadrul XHTML 1.1 în mod eficient recrea XHTML 1.0 Strict, cu adaos de rubin adnotare elemente ( ruby, rbc, rtc, rb, rtși rp) pentru a sprijini mai bine limbi est-asiatice. Alte modificări includ îndepărtarea nameatributului din ași mapelemente, și (în prima ediție a limbii) îndepărtarea langatributului în favoarea xml:lang.
Deși XHTML 1.1 este în mare parte compatibil cu XHTML 1.0 și HTML 4, în august 2002, Grupul de lucru a emis o notă oficială prin care a recomandat să nu fie transmisă cu tipul de suport HTML. Cu suportul limitat al browserului pentru application/xhtml+xmltipul media alternativ , XHTML 1.1 sa dovedit a fi incapabil să câștige o utilizare pe scară largă. În ianuarie 2009 a doua ediție a documentului ( Tipuri XHTML Media - Second Edition ) a fost emis, de relaxare această restricție și care permite XHTML 1.1 să fie servit ca text/html.
O a doua ediție a XHTML 1.1 a fost publicată pe 23 noiembrie 2010, care abordează diferite erori și adaugă o implementare a schemei XML care nu este inclusă în specificația originală. (A fost lansat pentru scurt timp la 7 mai 2009 ca „Recomandare editată propusă” înainte de a fi anulat la 19 mai din cauza unor probleme nerezolvate.)
XHTML Basic
Deoarece aparatele de informații pot să nu aibă resursele de sistem pentru a implementa toate modulele abstracte XHTML, W3C a definit o specificație XHTML limitată de caracteristici numită XHTML Basic. Oferă un subset de caracteristici minim, suficient pentru crearea de conținut cea mai comună. Specificația a devenit o recomandare W3C în decembrie 2000.
Dintre toate versiunile XHTML, XHTML Basic 1.0 oferă cele mai puține caracteristici. Cu XHTML 1.1, este una dintre primele două implementări ale XHTML modular. În plus față de modulele de bază (structură, text, hipertext și listă), implementează următoarele module abstracte: bază, formulare de bază, tabele de bază, imagine, legătură, metainformare, obiect, foaie de stil și țintă.
XHTML Basic 1.1 înlocuiește modulul Basic Forms cu modulul Forms și adaugă modulele Evenimente intrinseci, Prezentare și Scripting. De asemenea, acceptă etichete și atribute suplimentare de la alte module. Această versiune a devenit o recomandare W3C la 29 iulie 2008.
Versiunea actuală a XHTML Basic este 1.1 Ediția a doua (23 noiembrie 2010), în care limba este re-implementată în limbajul XML Schema W3C . Această versiune acceptă și langatributul.
XHTML-Print
XHTML-Print, care a devenit o recomandare W3C în septembrie 2006, este o versiune specializată a XHTML Basic concepută pentru documente tipărite de la aparate de informații la imprimante de ultimă generație .
Profil XHTML Mobile
Profilul mobil XHTML (abreviat XHTML MP sau XHTML-MP) este o variantă terță parte a specificației XHTML Basic a W3C. La fel ca XHTML Basic, XHTML a fost dezvoltat pentru aparate de informare cu resurse limitate de sistem.
În octombrie 2001, o societate cu răspundere limitată numită Wireless Application Protocol Forum a început să adapteze XHTML Basic pentru WAP 2.0 , a doua versiune majoră a Wireless Application Protocol . WAP Forum și-a bazat DTD-ul pe Modularizarea XHTML de către W3C, încorporând aceleași module pe care W3C le-a folosit în XHTML Basic 1.0 - cu excepția Modulului țintă. Începând cu această fundație, Forumul WAP a înlocuit modulul de formulare de bază cu o implementare parțială a modulului de formulare, a adăugat suport parțial pentru modulele Legacy și Presentation și a adăugat suport complet pentru modulul Attribute Style.
În 2002, Forumul WAP a fost inclus în Open Mobile Alliance (OMA), care a continuat să dezvolte XHTML Mobile Profile ca o componentă a specificațiilor de navigare OMA.
Profilul XHTML Mobile 1.1
La această versiune, finalizată în 2004, OMA a adăugat suport parțial pentru modulul de scriptare și suport parțial pentru evenimente intrinseci. XHTML MP 1.1 face parte din v2.1 din Specificația de navigare OMA (1 noiembrie 2002).
Profilul mobil XHTML 1.2
Această versiune, finalizată la 27 februarie 2007, extinde capacitățile XHTML MP 1.1 cu suport complet pentru modulele Forms și OMA Text Input Modes. XHTML MP 1.2 face parte din v2.3 din Specificația de navigare OMA (13 martie 2007).
Profilul mobil XHTML 1.3
XHTML MP 1.3 (finalizat la 23 septembrie 2008) folosește definiția tipului de document XHTML Basic 1.1 , care include modulul țintă. Evenimentele din această versiune a specificației sunt actualizate la specificațiile DOM Nivel 3 (adică sunt neutre în ceea ce privește platforma și limbajul).
XHTML 1.2
Grupul de lucru XHTML 2 a avut în vedere crearea unui nou limbaj bazat pe XHTML 1.1. Dacă XHTML 1.2 ar fi creat, acesta ar include WAI-ARIA și roleatribute pentru a sprijini mai bine aplicațiile web accesibile și suport semantic îmbunătățit prin intermediul RDFa . inputmodeAtributul din XHTML Basic 1.1, împreună cu targetatributul (pentru specificarea frame ținte) pot fi de asemenea prezente. XHTML2 WG nu fusese închiriat pentru a realiza dezvoltarea XHTML1.2. Întrucât W3C a anunțat că nu intenționează să reîncarce XHTML2 WG și a închis WG în decembrie 2010, acest lucru înseamnă că propunerea XHTML 1.2 nu va avea loc.
XHTML 2.0
Între august 2002 și iulie 2006, W3C a lansat opt schițe de lucru ale XHTML 2.0, o nouă versiune a XHTML capabilă să facă o pauză curată de trecut prin eliminarea cerinței de compatibilitate inversă. Această lipsă de compatibilitate cu XHTML 1.x și HTML 4 a provocat unele controverse timpurii în comunitatea dezvoltatorilor de web. Unele părți ale limbajului (cum ar fi roleatributele și RDFa) au fost ulterior împărțite din specificații și au lucrat ca module separate, parțial pentru a ajuta la tranziția de la XHTML 1.x la XHTML 2.0. Un al nouălea proiect de XHTML 2.0 era de așteptat să apară în 2009, dar pe 2 iulie 2009, W3C a decis să lase statutul XHTML2 Working Group să expire până la sfârșitul acelui an, oprind efectiv orice dezvoltare ulterioară a proiectului într-un standard. În schimb, XHTML 2.0 și documentele sale conexe au fost lansate ca note W3C în 2010.
Funcțiile noi care au fost introduse de XHTML 2.0 au inclus:
- Formularele HTML urmau să fie înlocuite cu XForms , o specificație de intrare a utilizatorului bazată pe XML care să permită afișarea formularelor în mod corespunzător pentru diferite dispozitive de redare.
- Cadrele HTML urmau să fie înlocuite cu XFrames .
- Cele DOM evenimente urmau să fie înlocuite cu XML Events , care utilizează XML Document Object Model .
- Un nou tip de element de listă, tipul de
nlelement, urma să fie inclus pentru a desemna în mod specific o listă ca listă de navigare. Acest lucru ar fi fost util în crearea meniurilor imbricate, care sunt create în prezent printr-o mare varietate de mijloace, cum ar fi listele imbricate neordonate sau listele de definiții imbricate. - Orice element trebuia să poată acționa ca un hyperlink , e. g.,,
<li href="articles.html">Articles</li>similar cu XLink . Cu toate acestea, XLink în sine nu este compatibil cu XHTML din cauza diferențelor de proiectare. - Orice element trebuia să poată face referire la mediile alternative cu
srcatributul, e. g.,<p src="lbridge.jpg" type="image/jpeg">London Bridge</p>este aceeași ca și<object src="lbridge.jpg" type="image/jpeg"><p>London Bridge</p></object>. altAtribut alimgelementului a fost îndepărtat: text alternativ a fost să fie dat în conținutulimgelementului, la fel caobjectelementul, e. g.,<img src="hms_audacious.jpg">HMS <span class="italic">Audacious</span></img>.- A
hfost adăugat un singur element de titlu ( ). Nivelul acestor rubrici a fost determinat de adâncimea cuibăritului. Acest lucru ar fi permis utilizarea titlurilor să fie infinită, mai degrabă decât să limiteze utilizarea la șase niveluri adânci. - Elementele rămase de prezentare
i,bșitt, încă permise în XHTML 1.x (chiar strict), au fost de a fi absente de la XHTML 2.0. Singurele elemente oarecum prezențiale rămase erau să fiesupși respectivsubpentru supercript și subscript, deoarece au utilizări nonprezentative semnificative și sunt cerute de anumite limbi. Toate celelalte etichete au fost menite să fie semantice în schimb (de exemplu,strongpentru un accent puternic ) permițând în același timp agentului utilizator să controleze prezentarea elementelor prin CSS (de exemplu, redat ca text cu caractere aldine în majoritatea browserelor vizuale, dar posibil redat cu modificări de ton într-un text- cititor de vorbire, font mai mare + cursiv pe reguli într-o foaie de stil de utilizator etc.). - Adăugarea RDF triplă cu atributele
propertyșiaboutpentru a facilita conversia de la XHTML la RDF / XML.
XHTML5
HTML5 a crescut independent de W3C, printr-un grup liber de producători de browsere și alte părți interesate numindu-se WHATWG sau Grupul de lucru pentru tehnologia aplicației de hipertext web. Motivul cheie al grupului a fost crearea unei platforme pentru aplicații web dinamice; au considerat că XHTML 2.0 este prea centrat pe documente și nu este potrivit pentru crearea de site-uri de forumuri pe internet sau magazine online.
HTML5 are atât o text/htmlserializare regulată, cât și o serializare XML, cunoscută și sub numele de XHTML5 . Limbajul este mai compatibil cu HTML 4 și XHTML 1.x decât XHTML 2.0, datorită deciziei de a păstra modelul de elemente și evenimente HTML existente. Cu toate acestea, adaugă multe elemente noi care nu se găsesc în XHTML 1.x, precum sectionși asideetichete.
Limbajul XHTML5, ca și HTML5, folosește o declarație DOCTYPE fără DTD. Mai mult, specificația depreciază DTD-urile XHTML anterioare cerând browserelor să le înlocuiască cu una care conține doar definiții de entitate pentru caractere numite în timpul analizei.
Conținut semantic în XHTML
XHTML + RDFa este o versiune extinsă a limbajului de marcare XHTML pentru susținerea RDF printr-o colecție de atribute și reguli de procesare sub formă de documente XML bine formate . Acest limbaj gazdă este una dintre tehnicile utilizate pentru dezvoltarea conținutului web semantic prin încorporarea unui marcaj semantic bogat.
Documente XHTML valide
Se spune că un document XHTML care se conformează unei specificații XHTML este valid . Validitatea asigură coerența codului documentului, care la rândul său ușurează procesarea, dar nu asigură neapărat o redare consecventă de către browsere. Un document poate fi verificat pentru validitate cu serviciul de validare a marcajului W3C (pentru XHTML5, ar trebui utilizat Validator.nu Living Validator în loc). În practică, multe programe de dezvoltare web oferă validarea codului pe baza standardelor W3C .
Element rădăcină
Elementul rădăcină al unui document XHTML trebuie să fie htmlși trebuie să conțină un xmlnsatribut pentru al asocia cu spațiul de nume XHTML . URI-ul spațiului de nume pentru XHTML este http://www.w3.org/1999/xhtml. Eticheta de exemplu de mai jos prezintă în plus un xml:langatribut pentru identificarea documentului cu un limbaj natural :
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ar">
DOCTIPURI
Pentru a valida un document XHTML , poate fi utilizată o declarație de tip document sau DOCTYPE . Un DOCTYPE declară browserului Definiția tipului de document (DTD) la care se conformează documentul. O declarație de tip document trebuie plasată în fața elementului rădăcină .
Partea identificatorului de sistem al DOCTYPE, care în aceste exemple este adresa URL care începe http://, trebuie să indice doar o copie a DTD pentru a fi utilizată, dacă validatorul nu poate localiza unul pe baza identificatorului public (celălalt șir citat). Nu trebuie să fie adresa URL specifică care se află în aceste exemple; de fapt, autorii sunt încurajați să folosească copii locale ale fișierelor DTD atunci când este posibil. Cu toate acestea, identificatorul public trebuie să fie caracter pentru caracter la fel ca în exemple.
Declarație XML
O codificare a caracterelor poate fi specificată la începutul unui document XHTML în declarația XML atunci când documentul este difuzat utilizând tipul application/xhtml+xml MIME . (Dacă unui document XML îi lipsesc specificațiile de codificare, un analizor XML presupune că codificarea este UTF-8 sau UTF-16 , cu excepția cazului în care codificarea a fost deja determinată de un protocol mai înalt.)
De exemplu:
<?xml version="1.0" encoding="UTF-8" ?>
Declarația poate fi opțional omisă, deoarece declară ca codificare codificarea implicită. Cu toate acestea, dacă documentul folosește în schimb XML 1.1 sau un alt cod de caractere, este necesară o declarație. Internet Explorer înainte de versiunea 7 intră în modul quirks , în cazul în care se confruntă cu o declarație XML într - un document a servit drept text/html.
Compatibilitate inversă
Documentele XHTML 1.x sunt în mare parte compatibile înapoi cu agenții de utilizator HTML 4 atunci când sunt respectate instrucțiunile corespunzătoare. XHTML 1.1 este în esență compatibil, deși elementele pentru adnotarea ruby nu fac parte din specificația HTML 4 și, prin urmare, sunt ignorate în general de browserele HTML 4. Mai târziu, modulele XHTML 1.x precum cele pentru roleatribut, RDFa și WAI-ARIA se degradează cu grație într-un mod similar.
XHTML 2.0 este semnificativ mai puțin compatibil, deși acest lucru poate fi atenuat într-o oarecare măsură prin utilizarea scripturilor. (Acest lucru poate fi un singur liner, cum ar fi utilizarea „ document.createElement()” pentru a înregistra un nou element HTML în Internet Explorer sau a unor cadre JavaScript complete, cum ar fi implementarea FormFaces a XForms .)
Exemple
Următoarele sunt exemple de XHTML 1.0 Strict, ambele având aceeași ieșire vizuală. Primul urmează Ghidul de compatibilitate HTML al Notei XHTML Media Types, în timp ce cel din urmă încalcă compatibilitatea cu versiunile anterioare, dar oferă un markup mai curat.
| Tipul suportului | Exemplul 1 | Exemplul 2 |
|---|---|---|
| application / xhtml + xml | AR TREBUI SĂ | AR TREBUI SĂ |
| aplicație / xml | MAI | MAI |
| text / xml | MAI | MAI |
| text / html | MAI | NU AR TREBUI |
Exemplul 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>
Exemplul 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>
Note:
- Funcția „loadpdf” este de fapt o soluție pentru Internet Explorer. Poate fi înlocuit prin adăugarea
<param name="src" value="http://www.w3.org/TR/xhtml1/xhtml1.pdf"/>în<object>. imgElementul nu obține unnameatribut în XHTML 1.0 Strict DTD . Folosițiidîn schimb.
Compatibilitate încrucișată a XHTML și HTML
Serializările HTML5 și XHTML5 sunt în mare parte inter-compatibile dacă aderă la sintaxa XHTML5 mai strictă, dar există unele cazuri în care XHTML nu va funcționa ca HTML5 valid (de exemplu, instrucțiunile de procesare sunt depreciate în HTML , sunt tratate ca comentarii și se închid pe primul „>”, în timp ce acestea sunt complet permise în XML, sunt tratate ca tip propriu și se închid pe „ ?>”).
Vezi si
- Protocol de interfață utilizator extensibil
- HTML
- Lista referințelor entității de caractere XML și HTML
Referințe
linkuri externe
- Pagina principală a marcajului W3C
- Recomandare XHTML 1.0
- Recomandare XHTML 1.1
- Notă privind grupul de lucru XHTML 2.0
- XHTML Basic
- XHTML 1.0 Strict / 1.1 Referință online
- Link-uri care tratează tipul MIME de documente XHTML:
- Ferește-te de XHTML
- Trimiterea XHTML ca text / html considerată dăunătoare
- Se difuzează XHTML cu tipul MIME corect
-
Drumul către XHTML 2.0: tipuri MIME - Mark Pilgrim (19.03.2003). Include exemple de servire condiționată
application/xhtml+xmlfolosind PHP , Python și Apache (prin rescrierea adreselor URL ). - Întrebări frecvente despre Mozilla Web Author: În ce fel este diferit tratamentul documentelor aplicație / xhtml + xml de tratamentul documentelor text / html? - rezumă modul de procesare XHTML al unui browser web
- Elemente goale în SGML, HTML, XML și XHTML
- Tutorialul de bază XHTML 1.0 de bază al lui Heptagrama
- Validatorul de marcare al W3C
- Biblioteca de conversie HTML în XHTML pentru .NET