* Daniel Fagerstrom <[EMAIL PROTECTED]> [2004-03-01 14:54]:
> Bertrand Delacretaz wrote:
>
> >Le Mercredi, 25 f?v 2004, ? 16:49 Europe/Zurich, Daniel Fagerstrom a
> >?crit :
> >
> ><snip-plenty-of-good-stuff/>
> >
> >>...But in many cases using SAX based XML as in pipelines is not enough
> >>we need a data structure i.e. DOM. This leads to flowscript components
> >>that reads some input format to DOM and from DOM to some output format
> >>or some store. We also will need flowscript components that go from
> >>DOM to DOM...
> >
> >
> >Just trying to understand from a practical point of view, does this mean
> >something like
> >
> ><map:generate type="request"/>
> ><map:transform src="prepare-query-for-user-preferences"/>
> ><map:transform type="sql"/>
> ><map:call function="myFlow()" dom-input="domIn"/>
> >
> >At which point myFlow() is called with a "domIn" variable containing the
> >current pipeline XML as a DOM?
> >
> >And maybe the opposite:
> ><map:call function="myFlow()" dom-output="domOut"/>
> >meaning that myFlow() is expected to write a DOM structure to domOut for
> >insertion in the pipeline?
> >
> >-Bertrand
>
> I meant something a little bit more explicit:
>
> <map:generate type="request"/>
> <map:transform src="prepare-query-for-user-preferences"/>
> <map:transform type="sql"/>
> <map:store type="xml" dest="xmodule:request-attr:foo"/>
> <map:call function="myFlow()">
> <map:parameter name="foo" value="{req-attr:foo}"/>
> </map:call/>
> <map:generate src="xmodule:flow-attribute:bar"/>
> ...
> <map:serialize/>
>
> Following the "to much magic kills the confidence"-principle, I prefer
> to describe exactly what happens in the sitemap.
>
> The store component is like a serializer, but the output is directed to
> a modifiable source given in the dest attribute. And it does not create
> a return from the sitemap execution as the serializer does, but in the
> same way as the serializer, the store executes the pipeline ending in
> the store at setup time. E.g. in the example above the call function
> will be executed _after_ the pipeline ending in the store component.
> Most (all?) the current serializers could be used as store components as
> well if we provide a serializer to store adaptor. The dest attribute
> should probably be optional, one could consider storing to things that
> are not described by a modifyable source, e.g. a DB.
>
> The flow attribute will be set to the return value of the called function.
>
> function myFlow(foo) {
> ...
> var bar = doSomething( foo, ... );
> return { "bar" : bar };
> }
>
> Probably another name than call should be used, to differ this use of
> flowscripts from the one intended for multi page flow. For this kind of
> use of flowscripts, the sendPage and sendPageAndContinue, functions
> should be dissabled to protect the user from confusing behaviour.
In your example, is map:store generating a DOM document?
What would doSomething do? Is this where the document gets
stored?
I don't see the need for flowscript in this example. There are
idioms here I don't understand. I'd like to discuss a complete
example.
<map:match pattern="/request-submit">
<map:generate type="request"/>
<map:validate type="relax-ng" src="relax-ng/request.xml"/>
<map:transform src="reqeust-to-sql-update.xslt"/>
<map:store type="sql"/>
<map:generate type="sql" src="query.sql"/>
<map:transform src="query-to-html.xslt"/>
<map:serialize type="html"/>
</map:match>
<map:match pattern="error-pipline">
<map:generate type="error"/>
<map:transform src="error-to-html.xslt"/>
<map:serialize type="html"/>
</map:match>
--
Alan / [EMAIL PROTECTED] / http://engrm.com/
aim/yim: alanengrm - icq: 228631855 - msn: [EMAIL PROTECTED]