> are there any XSL generators available in the market. I mean i have a html
> file and that file needs to be split into content(xml) and
> presentation(xsl). Is this possible?
The way you've stated the question here (and in another message with a
different subject a couple days ago) leads me to think the short answer
must be "no."
It's possible you've been misled by the "S" in "XSL." XSL actually is
two separate XML vocabularies. Neither of these vocabularies really has
much to do with "style" in a simple way as CSS does ("display this as
24pt Helvetica on a yellow background").
One vocabulary, XSLT, is used to transform an XML source document into
some other form -- like (X)HTML, another XML vocabulary, another version
of the *same* vocabulary, or a comma-separated values text file. XSLT
has been a W3C Recommendation for about 2-1/2 years now, and has a
fairly strong and stable body of software and community expertise to
Then there's XSL-FO. The "FO" stands for "Formatting Objects." (Think of
each formatting object as a "thing" which may have presentation
characteristics: a text block, a single character, an area containing
nothing at all but around which you want to wrap other areas, an image,
a bulleted list, and so on.)
One way of looking at XSL-FO is to think of it as CSS recast in XML
syntax and restricted, for all practical purposes, to print media. Thus,
not only does it include all the angle-bracket syntax; it's also capable
of expressing features which CSS can't express (or can express only
clumsily), such as different layouts for odd and even pages, tables of
contents, and so on. XSL-FO, however, is not yet a W3C Recommendation
and has very limited support in software. (And the XSL-FO community is
much smaller than XSLT's, for now anyhow.)
Now, what you're asking is theoretically possible. It depends on
whether by "presentation" you mean "presentation for the Web,"
"presentation for print," or something else (or all the above).
But as a practical matter it depends on a lot of other factors. Say
you've got even a simple HTML document which looks like this:
Luckily, while the vocabulary of this document is HTML's, it's also a
well-formed XML document. (E.g., the p element is bracketed by both
start and end tags.) Therefore we could use XSLT to transform this
document into (as you say) "content (xml) and presentation." (This
assumes that you've got some (xml) vocabulary to transform TO.) But I'm
not at all sure that you could add a parenthetical "(xsl)" after the
word "presentation." You'd have to figure out, hmm, how you wanted to
present *everything* here, and whether you wanted to present all
occurrences of a given element/attribute type (even in other documents,
since you don't want to have to do this differently for every input
document) the same way, and what does "h1" mean in presentation terms,
and what does "yellow" mean, and what are all other possible values for
the bgcolor attribute and what do THEY mean, and how to do all of this
It's hard enough to map one vocabulary onto another. What you're asking,
it seems to me, is a tool to map one vocabulary (HTML) onto TWO others:
the result vocabulary, whatever it is, plus a presentation vocabulary.
It's possible for a human to do this (although I hope I'm not the human
given the job :) but an "XSL generator" is probably at least a couple
years away. (Would love to be proved wrong though!)
P.S. I've looked at a couple of automated "*XSLT* generators." These let
you associate structural components (elements, attributes, text, etc.)
as represented in one vocabulary with content in another. For example,
you might drag an XHTML h3 element and drop it onto an XSL-FO fo:block
element with a certain font and so on. The result of all this dragging
and dropping is an XSLT stylesheet which can then be used to transform
documents from source to result. These seem to work wonderfully for toy
data like the above HTML document, but break down as soon as you try to
do anything really meaningful with them. And the XSLT stylesheets they
generate are *monsters* -- the equivalent of, I don't know, a Zip drive
powered by a Diesel engine.
John E. Simpson | "I can levitate birds. No one cares."
http://www.flixml.org | (Steven Wright)
XML Q&A: www.xml.com |