Parsing et Validation
On distingue entre deux modèles de parsing
(validation):
modèle d’arbre: le parseur crée un arbre
dans la mémoire (DOM).
modèle par évènements: le parseur crée
des évènements qui correspondent à des
entrées et sorties des noeuds dans un
parcours de l’arbre de gauche à droite en
profondeur (SAX). Ce parcours correspond à
une lecture sequentielle d’un fichier XML sans
mémoire.
Grammaires d’arbre/ B. Amann – p.24/173
Clôture
les grammaires d’arbres régulières sont
fermés sous l’union, l’intersection et la
différence.
les grammaires locales, à types uniques et
avec concurrence restreinte sont uniquement
fermées sous l’intersection.
Grammaires d’arbre/ B. Amann – p.23/173
Expressivité
Dans une grammaire
locale,tous les éléments d’un type sont
associés à la même règle de production
à types uniques,tous les fils de type d’un
élément sont associés à la même règle de
production
avec concurrence restreinte, il est possible
d’identifier pour chaque élément une seule
règle de production à partir de son parent et
de ses frères de gauche.
locale type unique concurrence restreinte
Grammaires d’arbre/ B. Amann – p.22/173
Grammaires avec concurrence restreinte
Une grammaire avec concurrence restreinte
est une grammaire régulière telle que
pour chaque règle de production, le modèle
de contenu restreint la concurrence entre ses
non-terminaux et
les non-terminaux dans ne sont pas
concurrents.
La grammaire précédente est une grammaire
avec concurrence restreinte.
Grammaires d’arbre/ B. Amann – p.21/173
Non-terminaux concurrents
Un modèle de contenu restreint la
concurrence entre deux non-terminaux et
concurrents s’il n’existe pas de séquences de
non-terminaux , , et telles que génère
et .
Exemple: Le modèle de contenu de
Doc -> doc (Para1* Para2*) ne restreint
pas la concurrence entre Para1 et Para2.
Grammaires d’arbre/ B. Amann – p.20/173
Grammaires à types uniques
Une grammaire à types uniques est une
grammaire régulière telle que
pour chaque règle de production, les
non-terminaux dans son modèle de
contenu ne sont pas concurrents et
les symboles dans ne sont pas
concurrents.
La grammaire précédente n’est pas une
grammaire à types uniques.
Grammaires d’arbre/ B. Amann – p.19/173
Grammaires locales
Deux non-terminaux et différents sont
concurrents entre eux s’il existe deux règles
de production et .
Une grammaire locale est une grammaire
régulière sans non-terminaux concurrents.
La grammaire précédente n’est pas une
grammaire locale.
Grammaires d’arbre/ B. Amann – p.18/173
Géneration d’arbres et langages
Un arbre est généré par une grammaire
d’arbres s’il existe une interprétation de
dans .
Un langage d’arbres régulier est l’ensemble
des arbres générés par une grammaire
d’arbres régulièrs.
Grammaires d’arbre/ B. Amann – p.17/173