Subject: Re: [xsl] The output of evaluating an XSLT transform is the same regardless of the order in which output elements are evaluated. Right? From: Dimitre Novatchev <dnovatchev@xxxxxxxxx> Date: Fri, 16 Apr 2010 13:33:25 -0700 |
> Are there other factors which cause sequential ordering of execution? Yes, one very important factor: the data structures involved. More specifically, for XSLT, the structure of the XML document that is being processed. Given the following source XML document and a data-driven (push style) XSLT transformation: <a1> <a2> <a3> <a4/> </a3> </a2> </a1> then the start of processing <a{N}> will be after the start of processing of <a{N-1}>. To be even more specific, imagine that the XSLT transformation is very simple: just the identity rule. There are data structures, that by definition impose sequential processing -- some of them very fundamental like the List data structure. More generally, anything isomorphic to a stuffed Matrioshka doll requires sequential access to any inner doll in it. -- Cheers, Dimitre Novatchev --------------------------------------- Truly great madness cannot be achieved without significant intelligence. --------------------------------------- To invent, you need a good imagination and a pile of junk ------------------------------------- Never fight an inanimate object ------------------------------------- You've achieved success in your field when you don't know whether what you're doing is work or play On Fri, Apr 16, 2010 at 12:33 PM, Costello, Roger L. <costello@xxxxxxxxx> wrote: > Hi Folks, > > I'd like to flip the discussion around and discuss what factors cause sequential processing of XSLT programs (i.e., inhibit parallel processing). > > From MSM's message I learned that there are two factors which cause a sequential order of execution: > > B 1. Sequential ordering due to the language specification. > > B 2. Sequential ordering due to logical dependencies of constructs in the code. > > > I want to be sure that I understand what these mean. > > Below are examples of each. Do you agree with them? Would you provide additional examples please? > > EXAMPLES OF SEQUENTIAL ORDERING DUE TO THE XSLT SPECIFICATION > > B EXAMPLE #1 > > In an <xsl:choose> element the first <xsl:when> element must be evaluated before the following <xsl:when> elements and the <xsl:otherwise> element, if present. > > B <xsl:choose> > B B B <xsl:when test="evaluate me first"> > B B B B ... > B B B </xsl:when> > B B B <xsl:when test="evaluate me second (if the first test failed)"> > B B B B ... > B B B </xsl:when> > B </xsl:choose> > > > B EXAMPLE #2 > > -- need another example -- > > > EXAMPLES OF SEQUENTIAL ORDERING DUE TO LOGICAL DEPENDENCIES OF CONSTRUCTS IN THE XSLT CODE > > B EXAMPLE #1 > > A variable can be used only _after_ it's been initialized, e.g., > > B <xsl:variable name="number" select="ex:Square(4)" /> > > B <xsl:value-of select="$number" /> > > The <xsl:value-of> element must be evaluated only _after_ the <xsl:variable> element has been evaluated. > > > B EXAMPLE #2 > > In this example the sum() function must be evaluated before the multiplication occurs: > > B <xsl:value-of select="sum(Cost) * 1.2" /> > > > Are there other factors which cause sequential ordering of execution? > > /Roger
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: [xsl] The output of evaluating , Costello, Roger L. | Thread | RE: [xsl] The output of evaluating , Michael Kay |
RE: [xsl] The output of evaluating , Costello, Roger L. | Date | RE: [xsl] The output of evaluating , Michael Kay |
Month |