RE: IRC Minutes for 2011-05-11

All,

RE: Transform function module

> Kurt: In . you pass an XML node that contains the parameters
> ... you could store the parameters in the instance

> klotz: we do that for headers to


We can reference values for a header in an instance but the definition of the individual headers is done in-line within the xf:submission.


Although you cannot deny how concise the currently proposed transform function is:

<xf:insert origin="transform(instance('source'), '/resources/schemas/schematron/atom-feed.xsl')" 
    position="after" nodeset="." context="instance('svrlReport')"/>

I think it would be hard to ever achieve the necessary level of control that an xf:transform action would allow you to define with regard to location and type of transforms, declaring parameters and handling of errors. The following examples have only been sketchily thought-out and they are based upon the xf:insert action.


<xf:transform ref="instance('compiledSchema')" origin="instance('source')" 
    position="after" nodeset="." context="instance('svrlReport')"/>


<xf:transform resource="/resources/schemas/schematron/atom-feed.xsl" 
    origin="instance('source')" position="after" nodeset="." context="instance('svrlReport')"/>


<xf:transform origin="instance('source')" position="after" nodeset="." 
    context="instance('svrlReport')" media-type="application/xslt+xml">
  <xf:resource value=" some xpath expression "/>
<xf:transform>


<xf:transform ref="instance('compiledSchema')" origin="instance('source')" 
    position="after" nodeset="." context="instance('svrlReport')">
  <xf:param>
    <xf:name>foo</xf:name>
    <xf:value>bar</xf:value>
  </xf:param>
<xf:transform>


<xf:transform ref="instance('compiledSchema')" origin="instance('source')" 
    position="after" nodeset="." context="instance('svrlReport')">
  <xf:action ev:event="xforms-transform-error">
    <xf:message level="modal">
      Problem: <xf:output value="event('error-type')"/>
      Message: <xf:output value="event('error-message')"/>
    </xf:message>				
  </xf:action>
<xf:transform>


Although I think that the binding of multiple result documents to instances could prove complex, seeing as they're defined with a URI in the transform and that URI can be constructed at run-time if XForms were to adopt the concept of primary and secondary output result ports, like XProc, then that would help cover both XProc and XSLT 2+ transformations. The 'secondary' output port would have to accommodate a sequence of results but how you'd un-pick them I'm not quite sure. 

<xf:transform ref="instance('compiledSchema')" origin="instance('source')" 
    position="after" nodeset=".">
  <xf:output type="primary" ref="instance('foo')"/> 
  <xf:output type="secondary" ref="instance('bar')"/>
</xf:transform>


Personally I think there's room for both the function were conciseness is desired and the action were control, extensibility and expressivity is required.


Regards

Philip Fennell
Consultant
MarkLogic Corporation

One Kingdom Street
Paddington Central
London W2 6BD
United Kingdom

Mobile: +44 (0) 7824 830 866 
Tel:    +44 (0) 203 402 3619

email  Philip.Fennell@marklogic.com
web    www.marklogic.com




-----Original Message-----
From: public-forms-request@w3.org [mailto:public-forms-request@w3.org] On Behalf Of Leigh L. Klotz, Jr.
Sent: Thursday, May 12, 2011 6:28 AM
To: public-forms@w3.org
Subject: IRC Minutes for 2011-05-11

Thanks to Nick van den Bleeken:
http://www.w3.org/2011/05/11-forms-minutes.html

Received on Thursday, 12 May 2011 11:06:25 UTC