|
XSLT, which stands for eXtensible Stylesheet Language:
Transformations, is a language which, according to the very first
sentence in the specification (found at http://www.w3.org/TR/xslt),
is primarily designed for transforming one XML document into another.
However, XSLT is more than capable of transforming XML to HTML and
many other text-based formats, so a more general definition might be
as follows:
XSLT is a language for transforming the structure of an XML
document.
Why should you want to do that? In order to answer this question
properly, we first need to remind ourselves why XML has proved such a
success and generated so much excitement.
XML is a simple, standard way to interchange structured textual
data between computer programs. Part of its success comes because it
is also readable and writable by humans, using nothing more
complicated than a text editor, but this doesn't alter the fact that
it is primarily intended for communication between software systems.
As such, XML satisfies two compelling requirements:
Separating data from presentation. The need to separate
information (such as a weather forecast) from details of the way it
is to be presented on a particular device. This need is becoming ever
more urgent as the range of internet-capable devices grows.
Organizations that have invested in creating valuable information
sources need to be able to deliver them not only to the traditional
PC-based web browser (which itself now comes in many flavors), but
also to TV sets and WAP phones, not to mention the continuing need to
produce print-on-paper.
Transmitting data between applications. The need to transmit
information (such as orders and invoices) from one organization to
another without investing in bespoke software integration projects.
As electronic commerce gathers pace, the amount of data exchanged
between enterprises increases daily and this need becomes ever more
urgent.
Of course, these two ways of using XML are not mutually exclusive.
An invoice can be presented on the screen as well as being input to a
financial application package, and weather forecasts can be
summarized, indexed, and aggregated by the recipient instead of being
displayed directly. Another of the key benefits of XML is that it
unifies the worlds of documents and data, providing a single way of
representing structure regardless of whether the information is
intended for human or machine consumption. The main point is that,
whether the XML data is ultimately used by people or by a software
application, it will very rarely be used directly in the form it
arrives: it first has to be transformed into something else.
In order to communicate with a human reader, this something else
might be a document that can be displayed or printed: for example an
HTML file, a PDF file, or even audible sound. Converting XML to HTML
for display is probably the most common application of XSLT today,
and it is the one I will use in most of the examples in this book.
Once you have the data in HTML format, it can be displayed on any
browser.
In order to transfer data between different applications we need
to be able to transform data from the data model used by one
application to the model used in another. To load the data into an
application, the required format might be a comma-separated-values
file, a SQL script, an HTTP message, or a sequence of calls on a
particular programming interface. Alternatively, it might be another
XML file using a different vocabulary from the original. As XML-based
electronic commerce becomes widespread, so the role of XSLT in data
conversion between applications also becomes ever more important.
Just because everyone is using XML does not mean the need for data
conversion will disappear. There will always be multiple
standards in use. For example, the newspaper industry is likely to
use different formats for exchanging news articles from the format
used in the TV industry. Equally, there will always be a need to do
things like extracting an address from a purchase order and adding it
to an invoice. So linking up enterprises to do e-Commerce will
increasingly become a case of defining how to extract and combine
data from one set of XML documents to generate another set of XML
documents: and XSLT is the ideal tool for the job.
At the end of this chapter we will come back to specific examples
of when XLST should be used to transform XML. For now, I just wanted
to establish just a general feel for the importance and usefulness of
transforming XML. Before we move on to discuss XSLT in more detail
and have a first look at how it works, let's take a look at an
example that clearly demonstrates the variety of formats to which we
can transform XML, using XSLT.
An Example: Transforming Music
There is an excellent registry of XML vocabularies and schemas at http://www.xml.org/xml/registry.jsp
If you look there, you will find at least three different XML
schemas for describing music; and if you follow the links, you will
find several more. These were all invented with different purposes in
mind: a markup language used by a publisher for printing sheet music
has different requirements from one designed to let you listen to the
music from a browser. MusicML, for example, is oriented to displaying
music notation graphically; ChordML is designed for encoding the
harmonic accompaniment to vocal lyrics, while the much more
comprehensive Music Markup Language (MML) from the University of
Pretoria is designed for serious musicological analysis, embracing
Eastern and African as well as Western musical idioms.
So you could use XSLT to process marked-up music in many different
ways:
You could use XSLT to convert music from one of these
representations to another, for example from MusicML to MML.
You could use XSLT to convert music from any of these
representations into visual music notation, by generating the
XML-based vector graphics format SVG.
You could use XSLT to play the music on a synthesizer, by
generating a MIDI (Musical Instrument Digital Interface) file.
You could use XSLT to perform a musical transformation, such as
transposing the music into a different key.
You could use XSLT to extract the lyrics, into HTML or into a
text-only XML document.
©1999 Wrox Press Limited,
US and UK.
|