- From: Alex Milowski <alex@milowski.org>
- Date: Thu, 22 Jun 2006 11:57:25 -0700
- To: public-xml-processing-model-wg@w3.org
Murray Maloney wrote: > I know that this is coming from left field and that I am not an implementor, > however please consider the following as my suggestion toward a bit of > the overall syntax. Notice that the steps no longer declare their 'type'; > instead, I have made step a wrapper for an <p:xslt> or <p:xinclude> or > whatever components we make public. I am imagining that such elements > definitions would include subordinate elements for an appropriate number of > <input>, <output> and <param> elements, plus whatever other elements > might be appropriate to the specific component. I'd prefer this to what we have now. That is, I'd prefer that a step's name is the name of the element much like actions are distinguished elements in XSLT templates. I have some inline notes below. > I imagine that components would prescribe the names to be used for > their input and output interfaces, for example in cases where a > component has multiple inputs or outputs with distinct roles. > > <p:flow> > <input name="source" src="file:stdin" /> I think we need to distinguish on inputs * references to outputs of other steps * references to external inputs * declarations of unbound inputs: For example, an input to a pipeline might be two of the above: * the implicit "input" bound to a name via the environment (e.g. a command-line option) <input name="source"/> * an ancillary file reference via an embedded relative URI: <input name="source" href="somebits.xml"/> I don't think we need to invent a URI syntax for stdin, stdout, etc. as that can be bound by name by the tool/implementation environment (e.g. xproc -stdin input.xml -stdout output.xml mypipe.pd) > <output name="result" src="#inc.result"/> Here I think fragment identifier might be useful: * A simple NCName value would be the constructed name of some output. This is a good reason why the '.' notation might be the right choice of syntax. * Other parts could be referenced with a Xpointer link scheme: #xproc(step::p:xslt/input::source) > <choose> > <input src="#source"/> > <output name="cond.result"/> Here's a bit where the prefix notion for output naming could be difficult to understand. So, here the author has constructed a name that looks like a step result (e.g. 'cont.result'). To be consistent, we'd have to name the choose: <choose name="cond"> <input src="#source"/> <output name="result"/> ...but that seems strange to me. Maybe names are just optional attributes that can be used. If you don't want to name something, then you can use the #xproc() fragment identifier scheme. > I also imagine the possibility of an equivalent to a UNIX 'here' > document, where > I can for example write > > <input name="boilerplate"> > <P>Here is the XML document that I want to process</P> > </input> Yes! I really want/need the ability to embed an input. Putting right where the input is declared would be really convenient. --Alex Milowski
Received on Thursday, 22 June 2006 18:57:36 UTC