Per tutti quanti (o per lo meno per chi non lo ha ancora fatto) dò un link che vi porterà al sito del w3c per la specifica dell'xhtml che tutti dovrebbero usare. Non solo questo link. Il file più importante (o i file se volete) è il dtd ovvero Document Type Definition. In questo documento vengono definiti tutti (ma veramente tutti) i tag di xhtml.
Come leggere i file dtd?
I tag che noi utilizziamo sono definiti in questi file. Per spiegare utilizzerò il xhtml1-transitional.dtd che si trova nella cartella dtd.
Prendiamo un tag tipo div (il più banale ma anche il più utile)
Ecco la sua descrizione:
<!ELEMENT div %Flow;> <!-- generic language/style container -->
<!ATTLIST div
%attrs;
%TextAlign;
>
un elemento (ovvero il tag) è definito da <!ELEMENT nomeDellElemento proprietà> <!-- descrizione -->
Gli attributi (ovvero quelli che mettiamo all'interno del tag) sono definiti in
<!ATTLIST
e per quanto riguarda il div sono
%attrs e %TextAlign
Ma queste sono variabili che a loro volta contengono attributi e dovremo cercarceli all'interno del file.
<!-- core attributes common to most elements
id document-wide unique id
class space separated list of classes
style associated style info
title advisory title/amplification
-->
<!ENTITY % coreattrs
"id ID #IMPLIED
class CDATA #IMPLIED
style %StyleSheet; #IMPLIED
title %Text; #IMPLIED"
>
<!-- internationalization attributes
lang language code (backwards compatible)
xml:lang language code (as per XML 1.0 spec)
dir direction for weak/neutral text
-->
<!ENTITY % i18n
"lang %LanguageCode; #IMPLIED
xml:lang %LanguageCode; #IMPLIED
dir (ltr|rtl) #IMPLIED"
>
<!-- attributes for common UI events
onclick a pointer button was clicked
ondblclick a pointer button was double clicked
onmousedown a pointer button was pressed down
onmouseup a pointer button was released
onmousemove a pointer was moved onto the element
onmouseout a pointer was moved away from the element
onkeypress a key was pressed and released
onkeydown a key was pressed down
onkeyup a key was released
-->
<!ENTITY % events
"onclick %Script; #IMPLIED
ondblclick %Script; #IMPLIED
onmousedown %Script; #IMPLIED
onmouseup %Script; #IMPLIED
onmouseover %Script; #IMPLIED
onmousemove %Script; #IMPLIED
onmouseout %Script; #IMPLIED
onkeypress %Script; #IMPLIED
onkeydown %Script; #IMPLIED
onkeyup %Script; #IMPLIED"
>
<!-- attributes for elements that can get the focus
accesskey accessibility key character
tabindex position in tabbing order
onfocus the element got the focus
onblur the element lost the focus
-->
<!ENTITY % focus
"accesskey %Character; #IMPLIED
tabindex %Number; #IMPLIED
onfocus %Script; #IMPLIED
onblur %Script; #IMPLIED"
>
<!ENTITY % attrs "%coreattrs; %i18n; %events;">
<!-- text alignment for p, div, h1-h6. The default is
align="left" for ltr headings, "right" for rtl -->
In effetti quelli che interessavano a noi stanno alla fine del grande listato. Come vediamo attrs possiede a sua volta coreattrs i18n e events. Che significa? Significa che tutti quei ELEMENT che hanno %attrs tra i loro attributi posseggono anche gli altri 3 attributi... Ebbene io mi sono divertito per esempio a giocarci. Prendete l'entità i18n. Possiede 3 campi. Il terzo (dir) specifica il senso di scrittura. Provate a mettere in un campo della form dir = "rtl" e provate a scriverci dentro...
Altro esempio: il tag div possiede gli attributi events (che sono gli script java o altri). ecc. ecc.
Questo è il metodo giusto. Credo che questa guida possa essere utile per tutti. Soprattutto per quelle persone che vogliono fare delle pagine come il W3C comanda...