Back to site
Since 2004, our University project has become the Internet's most widespread web hosting directory. Here we like to talk a lot about web servers, web development, networking and security services. It is, after all, our expertise. To make things better we've launched this science section with the free access to educational resources and important scientific material translated to different languages.

Validatori vs Linters: Care este diferenţa?

TIP: înţelege ce Validator ŞI A Linter Sunt, în ce constă diferenţa dintre cei doi este, şi modul în care pot fi folosite pentru a vă ajuta să îmbunătăţească Dezvoltare Web.

Mulţi oameni sunt confuzi cu privire la diferenţa dintre "validare HTML" şi puluri alte pagini Web. Confuzia este această Ajutat şi instigat de utilizarea abuzivă frecventă a termenului "validator" şi prin Promotorii autori de programe care sunt NU validare. De fapt, există o distincţie mare între cele două tipuri de programe, deşi ambele pot fi utile pentru autori HTML care doresc pentru a evita erorile.

Validatori

O Validator este un program care verifică sintaxa a unui document HTML Împotriva o specificaţie riguroasă, astfel cum sunt definite în Document Type Definition un (DTD). HTML este de fapt o aplicare a SGML (Standard Generalized Markup Language), şi toate documentele SGML ar trebui să respecte o DTD. Există mai multe DTD-uri standard HTML (şi mai multe DTD-uri non-HTML, cum ar fi cele pentru tipurile de alt document, în SGML sau XML noi, Extensible Markup Language, care este o formă simplificată de SGML). Versiunile HTML 2.0, 3.2, 4.0 şi toate au DTD-uri oficiale aprobate de W3C (World Wide Web Consortium). (Niciodată HTML 1.0 a avut un spec formală, şi este pur şi simplu un termen utilizat pentru a desemna vag formele incipiente ale HTML în utilizare înainte de versiunea 2.0.)

Un validator foloseste unul dintre aceste DTD-uri pentru a stabili dacă pagina dvs. este corect sintactic în care spec. special. Care DTD-ul este de second hand este determinat de dvs. <DOCTYPE!> Declaraţia, care trebuie să fie la început de fiecare dintre paginile dvs..

Un validator este singura modalitate de a spune dacă anumite site-ul dvs. este conforme cu standardele. Acesta vă va spune dacă Unele dintre etichetele şi atributele pe care îl utilizaţi extensii nestandarte sunt care nu fac parte din DTD, si va gasi, de asemenea Erori de sintaxă, cum ar fi Bad Nesting Indicii de închidere şi lipsă pentru elementele care le cer. Este o idee bună pentru a rula paginile dvs. printr-un validator pentru a găsi astfel de erori, şi repara erorile neintentionate validator găseşte. În ceea ce pentru "intenţionate" erori, cum ar fi etichetele nestandarte şi atributele pe care îl utilizaţi pentru a obţine un anumit efect vizual, este de până la tine, dacă să le eliminaţi pentru a obţine pagina dvs. pentru a valida, sau lăsaţi-le în desi sunt nestandarte. În unele cazuri, elemente nestandarte va degrada cu graţie pe browsere care nu le suport, asa ca este rezonabil, în condiţii de siguranţă pentru a le păstra.

Există link-uri la unele validare on-line de la sfârşitul acestui articol.

Linters / Dame

Există o serie de alte programe, inclusiv site-uri on-line, software-ul independent, şi caracteristici construit în editori HTML, care verifica paginile dvs. pentru diferite forme de "corectitudine". Unele dintre ele sunt denumite în continuare "validatoare", dar în cazul în care nu utilizaţi un DTD SGML-tip pentru a valida site-ul dvs. împotriva, ei nu sunt validatoare adevărat. (Un "test de turnesol" este că, dacă orice pretinsă "validator" trece pagina ta ca fiind valabil în cazul în care nu are o declaratie DOCTYPE, atunci nu este un adevărat validator.)

Acest lucru nu este să spun că aceste "non-validator" programe, care poate fi mentionat ca lintersul sau dame, nu sunt utile. Ei vor gasi diferite probleme cu paginile Web, cum ar fi erori de sintaxa, elemente cu problemele de compatibilitate sau accesibilitate, şi, în unele cazuri va verifica link-uri pentru "404 Not Found" erori şi text în engleză pentru greşeli de ortografie. Uneori, un linter poate găsi probleme în site-ul dvs. ca un validator nu ar fi, în cazul în care codul este valid, în conformitate cu specificatiile, dar are alte probleme de îngrijorare că nu sunt abordate de standardele.

Cu toate acestea, producţia unei linter trebuie să fie luate cu un bob de sare, deoarece nu se bazează pe nici un standard oficial, ci doar pe preferinţele, prejudecăţile, şi peeves de companie din autorul programului. De exemplu, dacă am scris un linter (nu am până acum), aş fi probabil plâng dacă se leagă de "index.html" în loc de direct la directorul cu "./". (A se vedea Discuţie mele al acestui.) dar asta e doar eu prefer; că nu se încalcă Orice HTML sau URL-ul standard de a face acest fel, Alte. (Este doar mai puţin elegant, în ceea ce mă priveşte.)

Declaraţia DOCTYPE

Un validator care stabileşte standardul HTML pentru a valida documentul împotriva prin declaratie DOCTYPE la inceputul documentului. În cazul în care DOCTYPE lipsesc sau sunt incorecte, acest lucru va provoca validatorul a raporta erori, Poate Ones Weird Ca spunând că <html> este o etichetă necunoscut. Deci, aveţi nevoie pentru a avea dreptul de DOCTYPE dacă doriţi ca paginile dvs. pentru a valida.

În teorie, browsere sunt capabili de a utiliza DOCTYPE HTML pentru a determina ce versiune se utilizează şi, eventual, activa sau dezactiva caracteristici diferite în mod corespunzător, dar în practică (până de curând; a se vedea mai jos) none face de fapt acest lucru, astfel încât DOCTYPE este doar de utilizare pentru validare şi nu afectează aspectul paginilor dvs. în browsere. Va trebui să-l aibă, dacă doriţi să utilizaţi validatoare, iar unii "purişti HTML" în vedere, de asemenea, introducerea un DOCTYPE în paginile lor ca o "declaraţie politică" indica sprijinul lor pentru standarde în opoziţie cu "supa tag-ul" random din populare browsere.

În timpurile recente, versiuni de browser Unele au inceput sa foloseasca "DOCTYPE sniffing" pentru a comuta între un "modul quirks" care încearcă să rămână compatibile cu ciudăţeniile de browsere vechi şi un "modul standard", care urmează standardele actuale mai bună. Mozilla chiar a treia moduri: standarde, aproape standardele, şi quirks. Distanţa de imagini şi mesele sunt în special afectate de acest lucru. Unele Newsgroup comentariu a avut ca rezultat, inclusiv dacă această dezbatere cu privire la este un lucru bun sau un lucru rău, şi Comentariile practice de la OMS Programator Găsiţi paginile lor de lucru misterios sau nu, în funcţie de DOCTYPE Ei folosesc. A se vedea unele comentarii pe aceasta. În timp ce-CO numit "tabara purist" ii place ideea de a factorilor de browser-ul se deplasează de la capriciu-compatibilitate de respectarea standardelor, au unele reţineri în legătură cu "DOCTYPE sniffing" abordare, deoarece aceasta pare să fie făcut într-un mod destul de capricios, potrivite lucruri irelevante, cum ar fi DTD URL-ul în DOCTYPE pentru a determina care modul de a folosi, mai degrabă decât arată o înţelegere adevărată şi deplină a sensului de DOCTYPE.

Sintaxa DOCTYPE este un arcane puţin, cu secţiuni diferite, care indică standard este urmărit şi ceea ce se aplică organizare, dar nu aveţi nevoie de a construi doctypes de propria dvs. (daca nu esti crearea de DTD-uri noi-te, nu într-adevăr o idee bună dacă doriţi să adere la standardele că alţii vor fi capabili să înţeleagă), astfel încât să puteţi lua doar DOCTYPE adecvat pentru standardul pe care doriţi să urmaţi şi de "cut-and-paste"-l în paginile dvs.. Multe persoane, mai ales dacă acestea au fost scrie HTML pentru un timp înainte de ei au început încearcă să valideze documentele lor, şi sunt folosite pentru a utiliza unele "presentationalist" chestii, sunt susceptibile de a găsi cele mai convenabile DOCTYPE să fie faptul că a HTML 4.01 Transitional (aprobată prin W3C ca o revizuire minore anterioare 4.0):

<DOCTYPE HTML PUBLIC! "- / / W3C / / DTD HTML 4.01 Transitional / / EN" "http://www.w3.org/TR/html4/loose.dtd">

Acest DTD include doar despre toate etichetele şi atributele care au fost anterior considerate ca Netscape sau extensii Internet Explorer, astfel ca paginile cele mai actuale pot fi făcute pentru a valida, fără a pierde caracteristicile importante sau a sacrifica aspectul. "Extins" tag-uri şi atributele care nu sunt în acest DTD nu sunt, probabil, o idee bună de a utiliza, pentru că ei nu sunt acceptate în mod constant atât de browserele importante, să nu mai vorbim alte browsere.

Cu toate acestea, dacă doriţi "mai stricte", codul de mai logic, cu prezentarea sa mutat la foi de stil în loc de tag-uri de modă veche de prezentare, utilizează doctype strict:

<DOCTYPE HTML PUBLIC! "- / / W3C / / DTD HTML 04:01 / / EN" "http://www.w3.org/TR/html4/strict.dtd">

Acest tip de document exclude multe etichete de prezentare şi atribute, pentru lipirea structura logică pură (destinat a fi utilizat impreuna cu foile de stil care dau recomandări vizual pentru document).

Există, de asemenea, un "Frameset" DOCTYPE:

<DOCTYPE HTML PUBLIC "- / / W3C / / DTD HTML 4:01 Frameset / / EN" "http://www.w3.org/TR/html4/frameset.dtd"!>

Aceasta este pentru a fi utilizat pe un document frameset. Cadre individuale ar trebui să utilizeze un DOCTYPE regulate, cum ar fi HTML 4.01 Transitional.

Există, de asemenea, doctypes diferite anterioare, cum ar fi 3.2 şi 2.0. (3,0 nu a fost niciodată aprobat, şi nu ar trebui să fie utilizate; a avut diverse funcţii care nu au ajuns niciodata puse în aplicare în browsere.) Dacă vrei să fii foarte conservatoare in sprijinul dvs. pentru browserele vechi, este posibil să încercaţi să validaţi documente cu un 2.0 sau 3.2 DOCTYPE, de obicei, dar acest lucru este necesar Dacă sunteţi nu este atentă să folosească dvs. a mai noi degrada graţios.

Şi apoi există pentru DOCTYPE XHTML 1.0, care este o reformulare completă a HTML ca o aplicatie XML, proiectat să fie compatibil cu browsere de prezent, dar cu o mulţime de norme sintaxă noi. Dacă doriţi să proiect Documente dumneavoastră la acest standard nou, Citeşte Specificatii AT Consorţiul W3 site-ului, apoi utilizaţi una dintre aceste doctypes (în prezent aprobate oficial ca o recomandare W3C):

XHTML 1.0:

<DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Strict / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"!>

<DOCTYPE html PUBLIC "- / / W3C / / DTD XHTML 1.0 Transitional / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"!>

<DOCTYPE html PUBLIC! "- / / W3C / / DTD XHTML 1.0 Frameset / / EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

Cu XHTML, vă sunt, de asemenea, ar trebui să utilizeze o declaratie XML la foarte de sus a documentului (de mai sus DOCTYPE):

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

... Dar, din păcate, această linie pare să încurce la Unele versiuni de Microsoft Internet Explorer pentru Mac, ceea ce face documentul a le afişa ca text simplu de HTML În schimb, în ciuda este trimis cu Standard Text / HTML Tip MIME. (Ei bine, unele persoane încearcă să servească Pagini XHTML Cu Un text / XML Tip MIME, care este mai exactă şi pune punct de vedere tehnic Unele browsere mai noi în strictă modul Standard-Verificarea, dar că Cauze Page să eşueze complet în Microsoft Internet Explorer.) (DAR, apoi, din nou, Microsoft Internet Explorer a fost întotdeauna cunoscute pentru a ignora tipurile MIME şi fac ceea ce se simte place sa faci.)

(Se referă UTF-8 pentru codificare a caracterelor; fi sigur ce aveţi loc aici Pentru a corespunde o codare de caractere. Tu de fapt, sunt Utilizarea Dacă nu aveţi nimic de caractere ASCII, dar fara caractere speciale sau simboluri de Externe, IT-ul nu prea are mult diferenţă, dar va afecta modul în care codifica alte caractere.)

Un 01/01 XHTML tip de document a fost aprobat de acum ca o recomandare W3C. Aceasta este evolutia încercat viitoare a XHTML cu elemente depasite din versiunile anterioare îndepărtat şi o serie de alte modificări, este în prezent, "nu este gata pentru prime time", deoarece browserele de azi nu îl suportă foarte bine, şi "de tranziţie" elementele incluse în versiunile anterioare de compatibilitate cu browserele vechi nu sunt prezente nici mai mult.

Doar asiguraţi-vă că, atunci când decide dacă să utilizeze HTML sau XHTML, va alege una sau alta şi stick cu el în mod constant, ca sintaxă concepute pentru unul dintre acestea vor provoca erori de validare în parte, chiar dacă browsere sunt de obicei destul de neglijent în interpretarea lor de pagini Web pentru a talmeş-balmeş, prin chiar şi un bastardized jumătate şi jumătate de pagini. Un semn sigur de dezvoltare web ignorant este atunci când XHTML sintaxa este utilizat într-o pagină cu un DOCTYPE HTML, sau invers, dar astfel de lucruri fac ravagii pe Internet aceste zile. Deseori, oamenii pastă împreună fragmente de cod în monstru un Frankenstein a unei pagini Web care conţine un amestec de ambele soiuri. Biţi de cod cu condiţia din afara, cum ar fi bannere afiliat şi pixeli de urmărire a infractorilor sunt comune. Asiguraţi-vă că vă convertiţi nici una dintre ele le utilizaţi în sintaxa corectă pentru soiul HTML pe care îl utilizaţi, şi spune "dai în bară!" factorilor de decizie lor, în cazul în care insista pe exploataţie vă la clauzele contractuale care cererea nu se modifica codul lor.

HTML 5

HTML 5, exagerat de mult deja, nu este, de fapt pe deplin aprobat ca din acest scris, dar are un DOCTYPE. Ei au luat într-adevăr "Keep It Simple, Stupid" maxim la inima acest moment: DOCTYPE nou este:

<! DOCTYPE html>

Nu ştiu modul în care intenţionează privind standardele de identificare viitoare, ar trebui să existe vreodată, deoarece nu există nici un număr de versiunea actuală, în acest şir (este deosebit de doctypes anterioare HTML deoarece niciunul dintre ei au fost destul de această scurtă şi simplă), acolo nu par a fi orice loc pentru a indica HTML 5.1 sau 6.0 odată ce există.

ISO 15 445

Există, de asemenea, un ISO standard de HTML, având în beneficiul "greutate" a unui organism cu adevărat standarde de influenta mult mai mult decât consorţiul W3, ea are ca DOCTYPE sale:

<DOCTYPE HTML PUBLIC "! ISO / IEC 15445:2000 / / DTD HTML / / EN>

W3C validator recunoaşte acest lucru acum. Specificaţia este similar cu W3C e HTML 4.0 Strict. A se vedea Acest Ghidul utilizatorului.

Doctypes Bogus

Fereşte-te de doctypes introduce SAU PRIN schimbat editoare WYSIWYG, multe dintre ele vor pune DOCTYPE lor preferate din toate documentele (Remontarea Orice Altele ar putea avea cel pe care îl plasate de mână), iar acest lucru nu va fi adesea că o descrie cu acurateţe codul HTML editorul este generatoare. De fapt, unele doctypes redactor-generată nu urmăresc chiar şi sintaxa adecvată pentru declaraţia DOCTYPE, şi va determina validatorii de a refuza să valideze documentul, la toate.

Link-uri

Validatori

Linters / Dame

  • Link Exchange site-ului Inspector Net Mecanic - un site foarte util gratuit ce care verifică sintaxa şi Legături site-ului dumneavoastră.Doctor HTML HTMLTidy - Curăţă up HTML, erorile Rapoarte, şi sugerează Ce este DOCTYPE pentru o pagină. (Utilitarul de linie de comandă disponibile pentru multe platforme;. Open-source) TidyUI - Windows interfaţa cu utilizatorul pentru HTMLTidy.
  • (Fostă numitul) CSE de validare - care iniţial nu chiar un validator, ci o Linter. Acum are de fapt un veritabil construit in validator, ci doar ca o funcţie suplimentară opţională, astfel, numele său este acum doar oarecum înşelătoare, în loc de cu totul greşit.

Alte utilitati

Comentariul, Etc

Published (Last edited): 27-10-2011 , source: http://webtips.dan.info/validators.html