XSLT is an acronym for "ExtensibleStylesheetLanguageTransformations?". It is a language designed for transforming XML documents into other formats. There's no restriction on the format of the output, and in particular the somewhat less-well-known XslFormattingObjects portion of XSL is not a requirement.
XSLT is in the category FunctionalProgrammingLanguages.
XSLT does not allow programmers to modify state. XSLT templates behave like pure functions. A light bulb goes on. Trying to write an XSL document with a procedural mind-set is certain to end in frustration. An interesting characteristic of XSLT is that the language syntax is defined to be well-formed, valid XML, which makes it verbose. Imagine the angle brackets as parentheses and it begins to look familiar.
The basic element of an XSL sheet is a template rule. The processor walks the document tree and attempts to match each node with a template rule. When a rule is matched, it is fired, typically resulting in generation of some new text and data, possibly transformed in other ways, and some information copied from the input document. The processor uses a complex syntax in the match patterns, and will recursively process nodes. Some elements can use the XpathLanguage syntax.
A simple graphic of the XSL engine, from xml.com:
Beginners corner
See Using XML Queries and Transformations from Wrox Sample chapter from Professional VB XML at http://www.developerfusion.com/scripts/print.aspx?id=89
Try doing some transformations - http://xslt.sitesfree.com/
Known uses of XSLT
Is XSLT really one of the FunctionalProgrammingLanguages?
No, apparently it is not. Lack of side effects and support for minimal function declarations do not a functional language make. How about function as values, easy and convenient functional composition (=support for lambda expressions), currying to name but a few features of functional languages. A functional language is about manipulating functions, not tree structures. I'm sure that many functional programming afficionados will find the comparison with such a clumsy language appalling.
I tend to think of it as a "rule-based" language - similar in concept to rule based expert systems. -- JeffGrigg
Or, maybe it is:
The following articles describe the support for these design patterns and their use in specific problem areas:
"The Functional Programming Language XSLT - A proof through examples" http://www.topxml.com/xsl/articles/fp/ -- StevenNewton
Is XSLT a logic language? <xsl:value-of select="current()["@name = /root/path/name"].
-- DougRansom
Q I am looking for examples that help a complete novice to write a XsltLanguage based transform that will convert plain text to AwikiLikeSite compatible Html format. Is that trivial?
A The input to an XSLT stylesheet is XML, not plain text. You COULD wrap your plain text in a pair of tags, and use the pathetic string processing capabilities present, but it would probably be easier to use a TuringMachine.
That TuringMachine idea doesn't seem very helpful. Here, if you'd like to try Xslt for your solution, and you need to work with plain text, take a look at the EXSLT extensions at http://www.exslt.org/ - there are more helpful manipulation functions, especially string tokenizers.
Q Could XSLT be considered a member of the family of HomoiconicLanguages? While both program and data are XML, it's not possible for a stylesheet to access its own code.
A
See also XsltAsSoftLayer, TransformView