This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: XSLT vs Omnimark


Ken,

Thank you *very* *very* much for your 
excellent posting.

I now need to think a lot about Omnimark.

It was realy not that easy to understand 
how many cool concepts are in there, 
without your posting.

Many thanks.

Rgds.Paul.

----- Original Message ----- 
From: G. Ken Holman <gkholman@CraneSoftwrights.com>
To: <xsl-list@mulberrytech.com>
Sent: Sunday, March 05, 2000 2:09 PM
Subject: Re: XSLT vs Omnimark


> At 00/03/05 13:05 -0800, Paul Tchistopolskii wrote:
> >And I said  that XSLT engines are slower not because they are written
> >in Java, but because they allow look-ahead pull which Omnimark does
> >not allow. Is that right?
> >...
> >Could you please help me?
> >
> >What particluar part explains how to do look-head pull? Their documentation
> >is huge and unstructured.
> 
> The construct in OmniMark is named a "referent".  These are user defined 
> name/value place-holders added to the output.  Referents can be scoped 
> under program control ("begin and end the identification and evaluation of 
> the set of referents").
> 
> OmniMark does one pass of the input and one-and-a-half passes of the output 
> when using referents (only one pass of the output when not declaring that 
> referents are in use).
> 
> >Look-ahead pull is
> >
> ><xsl:template match="/doc/first_element">
> ><xsl:value-of select="/doc/last_element">
> ></xsl:template>
> 
> It is the programmer's responsibility to accommodate all output 
> requirements at the point of the one pass of the input:
> 
> ELEMENT first-element
>    OUTPUT REFERENT "last-thing"
>    OUTPUT "%c"
> 
> ELEMENT last-element
>    SET REFERENT "last-thing" to "%c"
> 
> There is only access to the currently element and its ancestry (all 
> currently open elements) and no access to other constructs of the source, 
> thus, the programmer must accommodate forward referencing (your term 
> "look-ahead pull").
> 
> It is OmniMark's responsibility (not the programmer) to emit the final file 
> with all the programmer-resolved referent values (it is an error if a 
> referent's value is not defined by the programmer).  While some term this 
> "two-pass", I've heard "two-pass" reserved for when it is the programmer's 
> responsibility to satisfy the second pass, which is not true in this 
> case.  The programmer only sees the result data once; the programmer only 
> sees the source data once; OmniMark sees the result data the second time 
> when filling in the place-holders and is *very* efficient doing so entirely 
> behind the scenes without program intervention, thus I find the term 
> "one-and-a-half-pass" quite apropos.
> 
> The streaming nature of OmniMark is great for some problems and there is no 
> overhead for the source document (it is not maintained in memory), only for 
> the result document (and the intermediate result is on disk, not memory; I 
> think referent values are in memory, but I'm not sure and it doesn't affect 
> me as a programmer).
> 
> The tree nature of XSLT is great for some problems and, being result 
> oriented, has no overhead for the result (it can be instantly serialized), 
> but does for the source (the entire file has to be accessible at all times; 
> currently this is in memory for the processors I'm aware of).
> 
> Two different approaches for transformation ... one isn't necessarily 
> better or worse than the other in the general case or language definition, 
> just different to the extent that a direct comparison of the two is 
> difficult.  I use both and I choose which one based on the requirement, the 
> customer, the nature of the data, and the nature of the transformation.
> 
> I hope this has helped.
> 
> ................ Ken
> 
> --
> G. Ken Holman                    mailto:gkholman@CraneSoftwrights.com
> Crane Softwrights Ltd.             http://www.CraneSoftwrights.com/s/
> Box 266, Kars, Ontario CANADA K0A-2E0   +1(613)489-0999   (Fax:-0995)
> Web site: XSL/XML/DSSSL/SGML services, training, libraries, products.
> Practical Transformation Using XSLT and XPath      ISBN 1-894049-04-7
> Next instructor-led training:               2000-05-11/12,2000-05-15,
> -                                    2000-06-12,2000-06-13,2001-01-27
> 
> 
>  XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]