Quelques définitions
Balise et élément
Dans la suite nous distinguons la notion de balise et celle d'élément. Un élément est contitué d'une balise ouvrante, d'un contenu et d'une balise fermante. La balise sert de marquage à l'élément.
Nous noterons <X> la balise et X l'élément correspondant. Ainsi l'élément head est marqué par la balise <head>.
Le contenu peut être vide, purement textuel ou un ensemble d'autres éléments éventuellement mêlés
à du texte. Cette définition se traduit plus formellement ainsi :
- élément = <X> contenu </X>
- contenu = composant* (* signifiant que le composant peut être répété zéro, une ou plusieurs fois)
- composant = texte | élément
- X = html|head|body|h1|h2|....|.... (X est une balise HTML)
Eléments enfants
L'ensemble des éléments enfants d'un élément X est ainsi défini :
- si X est un élément vide alors enfants(X) = Ø
- si X ne contient que du texte alors enfants(X) = Ø
- sinon X est de la forme <X> <X1> ... </X1> <X2> ... </X2> ......<XN> ... </XN> </X> et enfants(X) = (X1 X2 ... XN)
Element parent
La balise parent d'une balise X est ainsi définie :
- si X est l'élément html alors parent(X) = Ø
- sinon X est nécessairement enfant d'un élément Y : <Y> ... <X> ... </X> ...</Y>
et parent(X) = (Y)
Eléménts descendants
X est descendant de Y
-
si parent(X)=Y
-
ou si il existe Z tel que parent(X)=Z et Z est descendant de Y
Eléménts ascendants
X est ascendant de Y
<==> Y est descendant de X
Eléments frères
X et Y sont des éléments frères <==> parent(X)=parent(Y)