WhatFlows
[Back to XprocVnext]
What flows?
And other substantial architectural additions/changes
Should we open up the pipeline architecture to allow more than XML documents to flow through it? With respect to other media types (see below for some possibilities), there are a number of possibilities in general:
- Allow staticly, only at the whole-pipeline margins
- Allow staticly, at the step level (i.e. step signatures include media types for all inputs and outputs)
- Reject any pipeline where the output media type doesn't match the media type of the input to which its connected
- and any non-XML output must immediately be converted to XML
- and foo--foo connections are allowed
- And auto-shim for every possible pair
- And auto-shim only for other-XML and XML-other, so other1→other2 requires two shims
- Reject any pipeline where the output media type doesn't match the media type of the input to which its connected
- Allow dynamically (e.g. from p:http-request)
- With a static declaration of the alternatives you expect, and anything else is an error
- With a pipeline fallback if all else fails, getting
<c:data media-type=...>...</c:data>
Any shim-to-XML can be (?) configured wrt the target vocabulary (how?)
- We could identify shim tactics with QNames, similar to the way serialization methods are done in XProc already
Sequences
Allow the same thing XQuery/XSLT allow as values for variables
Sets of Documents
Allow unbounded number of outputs from some steps? MZ says we need this for the NVDL use case [cross-reference needed]. Markup pipeline allowed this, subsequent steps need to access by name, where default naming is with the integers. . .
- p:pack could have more than two inputs, so you could do column-major packing . . .
Metadata
Plain text
JSON
Auto-shimming
That is, automatically converting between media types as required by output::input connections
General architecture
Events
Can we suspend a pipeline waiting for something to happen?
Synchronization/concurrency
Related-but-different, with pipeline-internal events, as it were
- Philip Fennel has done some work on XProc+SMIL
Pipelines frozen in time
Can we dump a partially evaluated pipeline instance for subsequent resumption?
Expose pipelines as XPath functions
A way of re-using pipelines
- Or allowing pipelines to be imported into XQuery or XSLT