- From: James Fuller <jim@webcomposite.com>
- Date: Thu, 21 Apr 2016 11:55:38 +0100
- To: Alex Miłowski <alex@milowski.com>
- Cc: XProc WG <public-xml-processing-model-wg@w3.org>
After yesterdays meeting had a helpful chat with Alex who clarified a
lot of things for me.
We are bumping up against complexity and confusion because of the
tensions betwixt vars, options, ports, inputs/outputs etc. This is not
at all helped by the 'nomenclature menagerie' of
* options
* variables
* port
* pipelines
* connections
* inputs/outputs
* pipes
* flows
* chains
====================
Possible next step ?
====================
If we synthesize from previous discussions there maybe a way to
simplify so we only define:
* flows
* pipes
* variables
xproc version = "2.0";
@source as document-node();
@result as document-node();
$version as xs:decimal = 3.0;
@source
→ if (xs:decimal(/*/@version) < $version)
then [schema="v1schema.xsd"] → validate-with-xml-schema()
else [schema="v2schema.xsd"] → validate-with-xml-schema()
→ [@(),"stylesheet.xsl"]
→ xslt()
≫ @result
where the entire example is a flow and:
* @ denotes named pipe
* $ declares a variable which becomes part of the signature of the
flow (aka option) - we can consider how to annotate things like
'required' in the future
* in scope pipes are referenced with @ or @() ex. @source, @result,
@schema, @(), @(1)
This clarifies that
* -> passes inscope pipes to next step
* >> appends to a pipe
Another example for discussion fodder:
xproc version = "2.0";
@source as document-node();
@result as document-node();
$version as xs:decimal = 3.0;
@source
→ if (xs:decimal(/*/@version) < $version)
then [schema="v1schema.xsd"] → validate-with-xml-schema()
else [schema="v2schema.xsd"] → validate-with-xml-schema()
→ [@(),"stylesheet.xsl"]
→ xslt()
≫ @myresults as document-node()
"http://www.example.org/someotherdata.xml"
≫ @result
@myresults
→ add-attribute(match="/",attribute-name="id", attribute-value="
el{count($myresults)}")
≫ @result
We would expect @result pipe to contain someotherdata.xml +
adulterated @myresults.
One might access current contents of a pipe by referencing the pipe as
a variable ex. $pipe gets the actual current context on @pipe. I am
not sure count($myresults) does what I think it should but added it to
provoke comment. Doing anything like this obviously would have an
impact on speed, streaming etc.
I have a follow up synthesis to flow decl but that depends if the
above is acceptable or just the rantings of a mad man.
thx, J
Received on Thursday, 21 April 2016 10:56:06 UTC