rebelia Dio maturo


Registrato: 17/07/03 09:22 Messaggi: 7987
|
Inviato: 06 Ago 2005 10:54 Oggetto: * dtd - document type definition |
|
|
come promesso in un precedente thread, ecco un piccolo escursus sulla dtd e le sue funzioni
una dtd e' un documento stilato da qualcuno per determinare quali sia la sintassi corretta e gli attributi leciti per un determinato linguaggio
mi spiego: se io decido di "scrivere la mia pagina" in xhtml strict, faccio riferimento alla dtd scritta dal w3c per tale linguaggio; tale dtd infatti dice - ad esempio - che dovro' chiudere anche i tag vuoti (ad esempio <br> diventera' <br />) perche' questa e' la sintassi di xhtml e che non posso utilizzare target="_blank" perche' non e' un attributo previsto per la versione strict (target="_blank" e' un elemento "deprecato", cioe' da non usare piu' perche' cadra' in disuso e a lungo andare non sara' piu' interpretato dai browser - questo e' il senso a grandi linee)
quando fornisco la mia pagina al browser, per facilitargli il compito di lettura devo dirgli "come si legge" il testo che gli sto sottoponendo: ecco perche' prima di tutto gli dico dove trovare la dtd a cui far riferimento: leggendolo, il browser riuscira' ad interpretare correttamente quel che ho scritto
Codice: |
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
- doctype html public "-//w3c = indica che e' il documento definito dal w3c
- public = generico (xml di cui xhtml fa parte consente di creare una propria dtd contenente dei tag ad hoc, quindi "privata")
- dtd xtml 1.0 strict = il tipo di linguaggio a cui si fa riferimento
- en = english, la lingua
- l'url finale indica dov'e' fisicamente collocata la dtd e dove poterla trovare e leggere per capire come interpretare i vari elementi
dovessi creare una mia dtd, l'url sarebbe quello dove l'ho salvata
qui sotto un esempio del contenuto di una dtd:
Codice: |
<!ELEMENT img EMPTY>
<!ATTLIST img
%attrs;
src %URI; #REQUIRED
alt %Text; #REQUIRED
longdesc %URI; #IMPLIED
height %Length; #IMPLIED
width %Length; #IMPLIED
usemap %URI; #IMPLIED
ismap (ismap) #IMPLIED
>
|
vi si legge che stiamo parlando dell'elemento img, che si tratta di un tag vuoto (empty) e che prevede l'uso di alcuni attributi: quelli comuni alla maggior parte degli elementi, tradotti con "%attrs" (cioe' id, class, style, title) e alcuni specifici per questo tag: src e alt (obbligatori), longdesc, height, width, usemap e ismap (facoltativi)
non e' indispensabile conoscere a memoria una dtd: una volta deciso qual'e' il linguaggio usato (e si presume naturalmente che un minimo lo si conosca ) e dichiarata la dtd a inizio pagina, un grande aiuto ci viene dato dal validatore messo a disposizione dal w3c: inviando la pagina al validatore, esso ci segnalera' gli errori, permettendoci di correggerli (e di imparare cosi' cose nuove sul linguaggio che stiamo usando)
il validatore permette di controllare un file caricandolo da locale, oppure di indicare un url da validare; alcuni browser permettono di inviare in automatico la pagina nella quale si sta navigando (ad esempio opera con ctrl+v permette l'invio di pagine locali o in rete, la toolbar di firefox solo di pagine in rete)
ho provato a validare una pagina a caso su cui stavo navigando, tanto per mostrarvi come sono segnalati gli errori:
Codice: |
Below are the results of attempting to parse this document with an SGML parser.
1. Line 26, column 7: required attribute "TYPE" not specified
<script>
The attribute given above is required for an element that you've used, but you have omitted it. For instance, in most HTML and XHTML document types the "type" attribute is required on the "script" element and the "alt" attribute is required for the "img" element.
Typical values for type are type="text/css" for <style> and type="text/javascript" for <script>. |
quindi mi sara' specificato a che linea trovo l'errore, di quale tag si tratta e cosa non va: comodo, vero?
per chi volesse approfondire, in questa pagina del w3c troverete le varie dichiarazioni corrette per le dtd e i link alle stesse
precisazione: document type definition e' il documento vero e proprio, document type declaration e' la stringa che aggiungo alla mia pagina
 |
|