Langage de transformation XML
| Image manquante Langage_progr.png image:Langage_progr.png |
| Cet article fait partie de la série Langages de programmation |
| Langages à objets |
| Ada 95 - C++ - C# Common Lisp Delphi - Eiffel - Java Nice - Oz - Python Simula - Smalltalk Visual Basic |
| Langages impératifs |
| APL - ASP - Assembleur BASIC - C - COBOL Forth - FORTRAN - Logo Pascal - Perl - PHP |
| Langages fonctionnels |
| Erlang - Haskell ML/OCaml - Oz Lisp/Common Lisp Scheme |
| Langages déclaratifs |
| Clips - Oz - Prolog |
| Langages concurrents |
| Ada 95 - Erlang Java - Oz |
| Langages balisés |
| HTML - SGML - XML Dialectes XML S-expressions |
| Voir aussi |
| Conception - Codage Tests - Optimisations |
Un langage de transformation XML est un langage de programmation créé spécifiquement pour créer toute forme de document en sortie à partir d'un document XML en entrée.
Il y a deux cas spécifiques de transformation :
- XML vers XML : le document de sortie est un document XML.
- XML vers binaire : le document de sortie est un flux d'octets.
XML vers XML
Comme une transformation XML vers XML fournit en sortie des documents XML, il est donc possible de créer une chaîne de transformation pour former un pipeline XML.
XML vers binaire
La transformation XML vers binaire contient des cas particuliers importants. Le plus courant étant la transformation XML vers HTML, puisque généralement un document HTML n'est pas un document XML.
Les langages disponibles
- XSLT
- XSLT est le langage de transformation XML le plus connu. La recommendation XSLT 1.0 du W3C a été publiée en 1999, avec la recommendation XPath 1.0 et a fourni un grand nombre d'implémentations à ce jour (en Java, Perl, etc.). XSLT 2.0 est prévu d'être publié sous peu comme une recommendation W3C et des implémentations comme SAXON 8 sont déjà disponibles.
- XQuery
- XQuery est aussi amené à devenir un standard du W3C. Un programme XQuery peut être exprimé dans deux syntaxes : une succincte non XML et une syntaxe XML. Le langage est basé sur XPath 2.0. Les programmes XQuery sont dépourvus d'effets de bord, tout comme XSLT et fournissent des capacités voisines (par exemples : déclaration de variables et de fonctions, itération sur des séquences, utilisation de types de données XML Schema), même si la syntaxe n'a que peu de points communs. En plus de la syntaxe, la principale différence entre XSLT et XQuery est le modèle évenementiel par motifs d'XSLT que XQuery ne partage pas.
- STX
- STX (Streaming Transformations for XML) est inspiré de XSLT mais a été conçu pour permettre un traitement en une passe sous forme de flux du document de départ. Il utilise pour ce faire une version allégé de XPath 2.0, nommé STXPath. Des implémentations sont disponibles en Java (Joost) et en Perl (XML::STX).
- XML Script
- Un langage impératif de script inspiré de Perl qui utilise la syntaxe XML. XML Script support XPath ainsi que son langage propriétaire de sélection des nœuds DSLPath.
- FXT
- A Functional XML Transformation Tool, littéralement un outil fonctionnel de transformation XML.Il est implémenté en Standard ML.
- XDuce
- Un langage typé avec une syntaxe allégée (comparé à XSLT). L'implémentation est écrite en ML.
- CDuce
- Etends XDuce en langage de programmation fonctionnel généraliste, voir CDuce homepage.
- Xtatic
- Applique des techniques de XDuce à C#, voir Xtatic homepage.
- HaXml
- Une bibliothèque d'outils pour écrire des transformations XML en Haskell. Son approche est très consistente et puissante. Voir ce document à propos de HaXml publié en 1999 et cet article de IBM developerWorks.
- XMLambda
- XMLambda (XMλ) a été décrit dans un article daté de 1999 par Erik Meijer et Mark Shields. Aucune implémentation n'est actuellement disponible.
