Jazyk pro transformace XML (anglickyXML transformation language) je programovací jazyk navržený pro transformaci vstupníhoXML dokumentu na výstupní dokument požadovaného formátu.
Transformace XML (EXtensible Markup Language) na data obsahuje některé důležité případy. K nejvýznamnějším patří XML na HTML (HyperText Markup Language), protože HTML dokument (ve verzích 3 a 4) není XML dokumentem: Tím se staly až novější XHTML a HTML5.
XSLT je nejznámější jazyk pro XML transformace. W3C doporučení popisující XSLT 1.0 bylo publikováno v roce 1999 spolu s XPath 1.0 a od té doby bylo několikrát implementováno. Pro verze XSLT 2.0 vyšlo W3C doporučení v lednu 2007 a také jsou dostupné první implementace jako Saxon 8.
XQuery
Přestože jeho jméno obsahuje slovo „dotaz“, XQuery je plně funkcionální jazyk. Je to de facto standard používaný firmami Microsoft, Oracle, DB2, Mark Logic, atd., a je základem pro webový programovací model XRX a pro verze 1.0 existuje W3C doporučení. Je založený na XPath 2.0, ale protože není napsán přímo v XML jako XSLT, je jeho syntaxe mnohem jednodušší. Programy v XQuery nesmí mít vedlejší účinky jako v XSLT, ale poskytují téměř stejnou funkcionalitu (například: deklarování proměnných a funkcí, iterace přes posloupnosti, používání typy W3C schema), i když syntaxe program je úplně jiná. XQuery je řízený logikou, používají FOR, WHERE a skládání funkcí (například fn:concat("<html>", generuje-tělo(), "</html>")). Naproti tomu XSLT je řízený daty (push model zpracování), kde určité podmínky splněné ve vstupním dokumentu spouštějí provedení šablon místo provádění kódu v pořadí, ve kterém je napsán.
XProc
XProc je XML Pipeline jazyk. XProc 1.0 W3C doporučení bylo publikováno v květnu 2010.
XML document transform
Je standard firmy Microsoft pro provádění jednoduchých transformací XML dokumentů. Je primárně určený pro vytváření Web.config souborů pro IIS (Config Transforms). Jiné implementace umožňují, aby byl používán pro obecné konfigurační soubory jako je build time (Slow Cheetah) nebo z příkazového řádku (CTT).
STX
STX (Streaming Transformations for XML) je inspirován XSLT, ale navržený tak, aby umožňoval jednoprůchodový transformační proces, který umožní proudové zpracování. Implementace jsou dostupné v Javě[1] a v Perlu[2].
XML Script
XML Script je imperativní skriptovací jazyk inspirovaný jazykem Perl používající XML syntaxi. XML Script podporuje XPath a vlastní proprietární DSLPath pro výběr uzlů ze vstupního stromu.
FXT
FXT je funkcionální XML transformační nástroj implementovaný ve standardním ML.
XDuce
XDuce je typovaný jazyk s odlehčenou syntaxí v porovnání s XSLT. Je napsaný v ML.
XFun je funkcionální jazyk X-Fun pro definování transformací mezi datovými stromy XML, který poskytuje instrukce pro shredding. X-Fun lze chápat jako rozšíření Frischova jazyka XStream o výstupní shredding, kde vyhledávání vzorků je nahrazen navigací ve stromě pomocí XPath výrazů[5].
XStream
XStream je jednoduchý funkcionální transformační jazyk pro XML dokumenty založené na CAML. XML transformace napsané v XStream jsou vyhodnocované proudově: pokud je to možné, složky výstupu jsou vypočítané a vyrobené během syntaktickou analýzu vstupního dokumentu. Některé transformace tedy mohou být aplikovány na rozsáhlé XML dokumenty, které se ani nevejdou do paměti. Překladač XStream je distribuovaný s svobodnou softwarovou licencí CeCILL.
HaXml je knihovna a kolekce nástrojů pro zápis XML transformací v Haskell. Jeho přístup je velmi konzistentní a výkonný[7][8]. Byly publikovány i novější články, např. Haskell XML Toolbox[9], které vycházejí z myšlenek HaXml a HXML, ale používají obecnější přístup ke zpracování XML.
FleXML je jazyk na zpracování XML, který poprvé implementoval Kristofer Rose. Jeho principem je provádět činnosti na XML DTD popisující instrukce pro zpracování pro libovolnou podmnožinu DTD pravidel.
Scala
Scala je obecný funkcionální a objektově orientovaný jazyk se zvláštní podporou pro XML transformace ve formě vyhledávání XML vzorků, literálů a výrazů a se standardními XML knihovnami[11].
LINQ to XML
LINQ to XML je programovací API s .NET 3.5 syntaxí dostupnou v jazyce C#, Visual Basic .NET a některých jiných .NET jazycích. LINQ je primárně navržené jako dotazovací jazyk, ale podporuje i XML transformace.