25/10/2001: 14h: Philippe Audebaud (ENS Lyon)
XSLTT : XSLT avec Types
Philippe Audebaud (LIP) et Kristoffer H. Rose (IBM - TJ Watson)
Résumé
XSLT fournit une syntaxe pour un langage de transformations de documents de
l'internet (XML, HTML, WAP, etc). Un élément de ce langage, appelé
stylesheet, peut donc être interprété comme un objet S d'un type fonctionnel
T_in -> T_out, où T_in et T_out sont les types de base décrits les documents
transformés.
Pour ces derniers, il s'agit le plus souvent de DTD (Document Type
Description), et dans ce cas, on sait faire de la vérification de types, et
de l'inférence de type.
Il n'y a rien de semblable concernant les stylesheets ; notre étude se
propose de partir de partir de l'observation précédente pour élaborer un
système d'inférence de types. La démarche procède par une analyse statique
des stylesheets, et ne nécessite pas une connaissance particulière des types
d'entrée et sortie. L'analyse génère des contraintes portant sur chacun
d'eux, ou exprimant une dépendance entre entrée et sortie de la
transformation.
Sous l'hypothèse particulière où T_in et T_out sont des DTD, nous obtenons
un système permettant de faire du type-checking sur les stylesheets. La
question de l'inférence de type requiert de mieux comprendre en quoi
consiste exactement la notion de type de stylesheet sous sa forme la plus
générale ; c'est encore une recherche en cours.
Notre approche est utilisée dans l'éditeur XSLT développé en Java par IBM.
L'analyse statique a été implantée en Perl + Lambda-Prolog ; elle couvre un
sous-ensemble strict mais significatif de XSLT.