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.