XML transformation language: Difference between revisions

Content deleted Content added
added CDuce and Xtatic
Xmlizer (talk | contribs)
define XML to XML transformation
Line 1:
<div style="float:right;margin-left:0.5em;text-align:center">[[image:xml_transformation.png]]<br>''An XML transformation''</div>An '''XML transformation language''' is a [[programming language]] designed specifically to create an ''awesome output XML document'' based on an ''input XML document''.
 
There is two special case of transformation
A typical application of XML transformation languages is to style [[HTML]] pages. In this scenario the input document is bare-bone [[XHTML]] and the transformation can add sidebars, footers and sets formatting information, like colors, fonts and cell background colors in tables. XML transformations can be chained to form [[XML pipeline]]s.
* '''XML to XML''' : the ''output document'' is an XML document.
* '''XML to Data''' : the ''output document'' is a byte stream.
== XML to XML ==
 
<div style="float:right;margin-left:0.5em;text-align:center">[[image:xml_transformation.png]]
<br>''An'' '''XML to XML''' ''transformation''</div>
As '''XML to XML''' transformation outputs XML document, it is current to chain '''XML to XML''' transformation to form [[XML pipeline]]s
 
== XML to Data ==
 
'''XML to Data''' transformation contain some important case. The most notable one is '''XML to HTML''', as an [[HTML]] document ''is not'' an XML document.
 
== Existing languages ==
 
; '''[[XSLT]]''' : XSLT is the best known XML transformation language. The XSLT 1.0 W3C recommendation was published in [[1999]] and it has been widely implemented since then. XSLT 2.0 is expected to be released soon as a W3C recommendation and early implementations of the specification like [http://saxon.sourceforge.net/ SAXON 78] are already available.
; '''[[XML_query_language|XQuery]]''' : XQuery is also bound to become a W3C standard. XQuery is not an XML application, like XSLT. Consequently its syntax is much lighter. The language is based on XPath 2.0. XQuery programs cannot have [[side-effect]]s, just like XSLT and provides almost the same capabilities (for instance: declaring variables and functions, iterating over sequences, using W3C schema types), even though the program syntax are quite different. In addition to the syntax, the main difference between XSLT and XQuery is the XSLT push processing model, where certain conditions of the input document trigger the execution of templates, which is not shared with XQuery.
; '''[[STX]]''' : STX (Streaming Transformations for XML) is inspired by XSLT but has been designed to allow a one-pass transformation process that never prevents streaming. Implementations are available in Java ([http://joost.sourceforge.net/ Joost]) and Perl ([http://stx.gingerall.cz/stx/xml-stx/index.html XML::STX]).