Subject: Re: Generating high-level formatting output From: Norman Gray <norman@xxxxxxxxxxxxxxx> Date: Fri, 18 Jun 1999 12:22:28 +0100 (GMT) |
Greetings, On Thu, 17 Jun 1999, Sebastian Rahtz wrote: > Adam Di Carlo writes: > > AFAIK, XSLT (the most mature and implemented part of XSL right now) is > > for DTD-to-DTD conversions, so wouldn't buy us much in XML -> TeX > > production > no, its a delusion that you cannot write XML to TeX in XSL. You can do > it two ways > <xsl:text>\documentclass{foo}</xsl:text> > or > <documentclass name="foo"/> I don't think this gains you anything, unless you know that all you're ever going to be interested in is conversion from XML to LaTeX2e; TeXML doesn't appear to do anything beyond making that particular conversion easier. I've recently spent some time on a DTD-to-LaTeX transformation, and I'm keenly aware that this is partly wasted effort, because there's logic in that transformation -- more-or-less elaborate queries of the source document -- which would have to be duplicated in a LaTeX3 (sometime) or LaTeX-for-screen-PDF version of the output. That logic is best expressed in a DTD-to-DTD transformation, with, say, XML output ready to be turned into LaTeX or whatever by a simple stylesheet such as Sebastian describes. When I, at least, talk about high-level formatting output, I mean output conforming to some presentation-based DTD (HTML may not be too far from this! (ooooh, bleachhhh, forget I said that -- can of worms)). It's that potentially hard/interesting transformation -- rather than the rather easy issue of how you spit out LaTeX -- which needs a powerful language, which to me looks like a better case for DSSSL than XSLT. > If you want the FO approach, stick with DSSSL. If you want translation to > a high-level language like LaTeX, and delay the formatting to LaTeX > style sheets, then XSL-which-is-the-child-of-DSSSL (ie its nothing to > be ashamed of) seems a fair way to proceed. Mind you, Jade is probably > _faster_ today than XSL implementations. The weaknesses of XSLT (gained from a half-hour acquaintance with the spec this morning, so apologies if I've missed some fundamentals), seem to be: - I wasn't able to find any obvious way of creating external entities: all the hits for the word `external' seemed to be specific to reading rather than writing them. If you're going to use external tools (such as BibTeX or graphics conversion tools) as part of your processing system, or if you want to create a result document plus an abstract simultaneously, then you need this, I think. I realise that there may not be an obvious home for such a thing in a model which transforms a source tree to a result tree, but since (a) this is something one really does want to do, and (b) this desire appears to me to be legitimate in SGML terms, the omission seems unattractive. - It doesn't seem particularly extensible. It does have the get-out-of-jail-free card of external functions and system functions, but resort to that sort of mechanism in a language is only for the desparate[1]. Say XSLT didn't have a sort function: It's not obvious to me how I would supply that from within the XSLT, though implementing, say, quicksort in DSSSL would be merely an afternoon's work. XSLT does have a sort function, of course, but the principle remains. - XSLT just doesn't look very nice. Even the short fragments displayed in the spec are difficult to parse (for me -- machines are supposed to be good at that stuff). Something like <xsl:if test="function-available('jjc:currentDate')"> <xsl:value-of select="jjc:currentDate()"/> </xsl:if> takes some work to see as a test. This is important: if it's unpleasant to read, then it's difficult to understand, and murder to maintain. Certainly DSSSL's brackets take a little getting used to, but you _can_ get used to them; the visual clutter of XSLT code wouldn't go away. - XSLT doesn't grok SGML. For me this is a killer because I want subdocs and minimisation, but it clearly isn't a problem in other applications. However, there will remain SGML applications (!), so `use XSL(T) for high-level output' isn't a general answer to the problem. XSL(T) seems fine at putting an XML document on paper, or turning it into a web page. But straightforward rendering is not the only thing you do with *ML, as folk will not need reminding. Recently, Sebastian said something to the effect that if you don't use the FO strengths of DSSSL, and merely use it as a transformation language, then the language simply becomes another competitor in a cluttered field. I can't see this. DSSSL is a standard, is well integrated with the grove, and isn't Perl: all these are advantages (I'm only a Perl enthusiast on even days of the week). Failing to use a specific one of the advantages (the FO approach) doesn't make these remaining advantages suddenly evaporate. Ohh dear, I'm blathering again. But if you've got down here then at least I'm being provocative. All the best, Norman [1] I realise that it's through precisely this sort of extension that Jade's implementation of the style language can generate SGML, but in that case you have a well-designed (and pseudo-standard, now) extension bringing in a whole class of possibilities, rather than inviting stylesheet authors to use the facility routinely. --------------------------------------------------------------------------- Norman Gray http://www.astro.gla.ac.uk/users/norman/ Physics and Astronomy, University of Glasgow, UK norman@xxxxxxxxxxxxxxx DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
Re: Generating high-level formattin, Sebastian Rahtz | Thread | Re: Generating high-level formattin, Sebastian Rahtz |
RE: [OpenJade] Bugfix for +/- vs. l, Frank A. Christoph | Date | page-sequence and modes., Jany Quintard |
Month |