- From: Alex Milowski <alex@milowski.org>
- Date: Thu, 06 Jul 2006 08:43:28 -0700
- To: public-xml-processing-model-wg <public-xml-processing-model-wg@w3.org>
Henry S. Thompson wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > (Note this is essentially use-case 1 [1]) > > <components xmlns="[tbd]"> > <component name="xsdValidate"> > <input name="primary"/> > <input name="schemaDocs" arity="sequence"/> > <output name="primary"/> > </component> > <component name="xslt1.0"> > <input name="primary"/> > <input name="stylesheet"/> > <output name="primary"/> > </component> > <components> Is the idea here that if the names match, then they don't need to be declared? In that case you need some kind of sibling relationship that you don't have. That is, what about: <pipeline xmlns="[tbd]"> <step name="v1" type="xsdValidate"> <input name="schemaDocs" href="my.xsd"/> </step> <step name="s1" type="xslt1.0"> <input name="stylesheet" href="my.xsl"/> </step> <step name="s2" type="xslt1.0"> <input name="stylesheet" href="my2.xsl"/> </step> </pipeline> Which XSLT step is connected to the output of the validate step? In fact, which step starts the pipeline. This is why I was advocating a wrapper for sequences of steps where defaults apply. Then the sibling relationship means "sequence": <pipeline xmlns="[tbd]"> <sequence> <step name="v1" type="xsdValidate"> <input name="schemaDocs" href="my.xsd"/> </step> <step name="s1" type="xslt1.0"> <input name="stylesheet" href="my.xsl"/> </step> <step name="s2" type="xslt1.0"> <input name="stylesheet" href="my2.xsl"/> </step> </sequence> </pipeline> This means v1 is followed by s1 which is followed by s2. If you want s2 to operate on its own: <pipeline xmlns="[tbd]"> <sequence> <step name="v1" type="xsdValidate"> <input name="schemaDocs" href="my.xsd"/> </step> <step name="s1" type="xslt1.0"> <input name="stylesheet" href="my.xsl"/> </step> </sequence> <step name="s2" type="xslt1.0"> <input name="stylesheet" href="my2.xsl"/> </step> </pipeline> Then we have: input -> v1 -> s1 \ -> s2 I think the above is a great example of where defaulting becomes confusing. I had imagined defaulting only being in play when you have a sequence of steps that are chained together from output to input with some kind of primary input/output. Then it becomes: <pipeline xmlns="[tbd]"> <source name="primary"/> <sequence name="p1"> <input name="primary" source="$.primary"/> <step name="v1" type="xsdValidate"> <input name="schemaDocs" href="my.xsd"/> </step> <step name="s1" type="xslt1.0"> <input name="stylesheet" href="my.xsl"/> </step> </sequence> <step name="s2" type="xslt1.0"> <input name="primary" source="$.primary"/> <input name="stylesheet" href="my2.xsl"/> </step> <sink name="primary" source="p1.primary"/> <sink name="alt" source="s2.primary"/> </pipeline> (I'd also put the sink elements at the top with the source... ) BTW, I called 'sequence' the 'pipe' element in my syntax but it is the same idea. --Alex Milowski
Received on Thursday, 6 July 2006 15:43:49 UTC