Declarație de tip document - Document type declaration
O declarație de tip document , sau DOCTYPE , este o instrucțiune care asociază un anumit document XML sau SGML (de exemplu, o pagină web ) cu o definiție a tipului de document (DTD) (de exemplu, definiția formală a unei anumite versiuni a HTML 2.0 - 4.0 ). În forma serializată a documentului, acesta se manifestă ca un șir scurt de marcare care se conformează unei anumite sintaxi.
Cele HTML Motoarele aspect în moderne browsere web efectua DOCTYPE „sniffing“ sau „comutare“, în care DOCTYPE într - un document a servit ca text/htmldetermină un mod de aspect, cum ar fi „ modul quirks “ sau „modul standard“. text/htmlSerializarea HTML5 , care nu se bazează-SGML, foloseste DOCTYPE numai pentru selectarea modului. Deoarece browserele web sunt implementate cu analizoare HTML cu destinație specială, mai degrabă decât cu analizatoare bazate pe DTD, acestea nu folosesc DTD-uri și nu le vor accesa niciodată, chiar dacă este furnizată o adresă URL. DOCTYPE este păstrat în HTML5 ca un antet „în mare parte inutil, dar necesar” doar pentru a declanșa „modul standard” în browserele obișnuite.
DTD-uri
Sintaxă
Sintaxa generală pentru o declarație de tip document este:
<!DOCTYPE root-element PUBLIC "FPI" ["URI"] [
<!-- internal subset declarations -->
]>
sau
<!DOCTYPE root-element SYSTEM "URI" [
<!-- internal subset declarations -->
]>
În XML, elementul rădăcină care reprezintă documentul este primul element din document. De exemplu, în XHTML, elementul rădăcină este <html>, fiind primul element deschis (după declarația doctype) și ultimul închis. Cuvintele cheie SYSTEM și PUBLIC sugerează ce fel de definiție a tipului de document (DTD) este (unul care se află pe un sistem privat sau unul care este deschis publicului). Dacă este ales cuvântul cheie PUBLIC, atunci acest cuvânt cheie este urmat de o formă restricționată de „identificator public” numit Identificator public formal (FPI) inclus în ghilimele duble. După aceea, în mod necesar, este furnizat și un „identificator de sistem” inclus între ghilimele duble. De exemplu, FPI pentru XHTML 1.1 este "- // W3C // DTD XHTML 1.1 // EN" și există 3 identificatori de sistem posibili disponibili pentru XHTML 1.1 în funcție de nevoi, unul dintre ei este referința URI " http: //www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ". Dacă, în schimb, este ales cuvântul cheie SYSTEM, trebuie dat doar un identificator de sistem. Înseamnă că analizorul XML trebuie să localizeze DTD într-un mod specific sistemului, în acest caz, prin intermediul unei referințe URI a DTD inclusă între ghilimele duble. Ultima parte, înconjurată de paranteze pătrate literal ([]), se numește un subset intern care poate fi utilizat pentru a adăuga / edita entități sau pentru a adăuga / edita comportamente de cuvinte cheie PUBLICE. Subsetul intern este întotdeauna opțional (și uneori chiar interzis în cadrul profilurilor SGML simple, în special cele pentru analizele HTML de bază care nu implementează un analizor SGML complet).
Pe de altă parte, declarațiile de tip document sunt ușor diferite în documentele bazate pe SGML, cum ar fi HTML, unde identificatorul public poate fi asociat cu identificatorul sistemului. Această asociere ar putea fi realizată, de exemplu, prin intermediul unui fișier de catalog care rezolvă FPI la un identificator de sistem.
Exemplu
Prima linie a unei pagini World Wide Web poate citi după cum urmează:
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html lang="ar" dir="ltr" xmlns="http://www.w3.org/1999/xhtml">
Această declarație de tip document pentru XHTML include prin referință o DTD, al cărei public și al cărui identificator de sistem este http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd. Un rezolvator de entități poate utiliza oricare identificator pentru localizarea entității externe la care se face referire. Niciun subset intern nu a fost indicat în acest exemplu sau în următoarele. Elementul rădăcină este declarat a fi htmlși, prin urmare, este prima etichetă care se deschide după sfârșitul declarației doctype din acest exemplu și din următoarele. Eticheta HTML nu face parte din declarația doctype, dar a fost inclusă în exemple pentru orientare.
DTD-uri comune
Unele DTD comune au fost introduse în liste. W3C a produs o listă a DTD-urilor utilizate în mod obișnuit pe web, care conține DTD-urile HTML5 „goale”, DTD-urile XHTML / HTML mai vechi, DTD-urile formate obișnuite bazate pe XML, cum ar fi MathML și SVG , precum și documentele „compuse” care combină acele formate. Atât W3C HTML5, cât și versiunea sa WHATWG corespunzătoare recomandă browserelor să accepte doar DTD-uri XHTML ale anumitor FPIs și să prefere utilizarea logicii interne în loc să preia fișiere DTD externe. Mai specifică o „DTD internă” pentru XHTML, care este doar o listă de nume de entități HTML.
HTML 4.01 DTD-uri
DTD-ul strict nu permite marcarea prezentării cu argumentul că ar trebui folosite în schimb Foi de stil în cascadă. Așa arată Strict DTD:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
DTD de tranziție permite unele PUBLICE mai vechi și atribute care au fost învechite:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
Dacă se utilizează cadre , trebuie folosit în schimb Frameset DTD, astfel:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
"http://www.w3.org/TR/html4/frameset.dtd">
<html>
XHTML 1.0 DTD-uri
DTD-urile XHTML sunt, de asemenea, Strict, Transitional și Frameset.
XHTML Strict DTD. Nu sunt acceptate etichete învechite și codul trebuie scris corect în conformitate cu specificațiile XML.
<?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" lang="en">
XHTML Transitional DTD este similar cu XHTML Strict DTD, dar sunt permise etichetele depreciate.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
XHTML Frameset DTD este singurul XHTML DTD care acceptă Frameset. DTD este mai jos.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
XHTML 1.1 DTD
XHTML 1.1 este cea mai recentă revizuire finalizată a XHTML, introducând suport pentru modularizarea XHTML . XHTML 1.1 are stringența XHTML 1.0 Strict.
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
DTD de bază XHTML
XHTML Basic 1.0
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML Basic 1.0//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
XHTML Basic 1.1
<!DOCTYPE html PUBLIC
"-//W3C//DTD XHTML Basic 1.1//EN"
"http://www.w3.org/TR/xhtml-basic/xhtml-basic11.dtd">
HTML5 DOCTYPE fără DTD
HTML5 folosește o DOCTYPEdeclarație foarte scurtă, din cauza lipsei de referințe la un DTD sub forma unei adrese URL sau FPI. Tot ce conține este numele etichetei elementului rădăcină al documentului HTML,. În cuvintele caietului de sarcini:
Cu alte cuvinte,,
<!DOCTYPE html>fără majuscule.
Cu excepția lipsei unui URI sau a unui șir FPI (șirul FPI este tratat cu sensibilitate între majuscule și minuscule de către validatori), acest format (o potrivire a șirului nesensibilizând majuscule / minuscule !DOCTYPE HTML) este același cu cel găsit în sintaxa codului HTML bazat pe SGML 4.01 DOCTYPE. Atât în HTML4, cât și în HTML5, sintaxa formală este definită cu majuscule, chiar dacă atât minuscule cât și amestecurile de minuscule sunt, de asemenea, tratate ca fiind valabile.
În XHTML5DOCTYPE trebuie să fie o potrivire diferită între majuscule și minuscule a șirului „ <!DOCTYPE html>”. Acest lucru se datorează faptului că în sintaxa XHTML toate numele elementelor HTML trebuie să fie în minuscule, inclusiv elementul rădăcină la care se face referire în HTML5 DOCTYPE.
Este DOCTYPEopțional în XHTML5 și poate fi pur și simplu omis. Cu toate acestea, dacă marcajul urmează să fie procesat atât în format XML, cât și în format HTML , trebuie utilizat un DOCTYPE.
Vezi si
Referințe
linkuri externe
- Prezentare generală HTML Doctype
- DTD recomandate de utilizat în documentul dvs. web - o publicație informativă (nu normativă) W3C Quality Assurance
- Grila DOCTYPE - un alt tabel general [Ultima modificare 27 noiembrie 2006]
- Modul de ciudățenii și modul de tranziție
- Modificare cutie model