- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Mon, 24 Jul 2006 14:19:17 +0100
- To: public-xml-processing-model-wg@w3.org
Rui,
Rui Lopes wrote:
> Jeni Tennison wrote:
>> I don't think we need to worry about 1) if we have support for 2):
>> it's always an option for users to write a separate 'called pipeline'
>> if they want to repeat processing logic inside the main pipeline.
>
> I like that approach, but for some cases (albeit not knowing the
> possible percentage), having the ability to define an inner pipeline
> might be useful.
Can you explain why/when?
>> FWIW, this is my favoured design at the moment:
>>
>> 1. All components are identified through a QName
>>
>> 2. Pipelines are components (and are thus identified by a QName, and
>> called using the <p:step> syntax)
>
> If we say pipeline QName's have to be explicitly bound to a namespace to
> avoid naming conflict, I'll support this idea.
Presumably you mean that you want every pipeline QName has to have a
non-null namespace. I'm kinda OK with that, though I think that for
simple cases it might be burdensome for users.
> This becomes an issue in the following scenario:
>
> 1) pipeline author A creates a (sub)pipeline named "foo", and it
> compiles and runs ok in its xproc implementation;
>
> 2) pipeline author B has another xproc implementation that has support
> for a custom component named "foo";
>
> 3) B tries to run A's pipeline. *halt and catch fire* on component
> naming conflict. Therefore, interoperability issues.
I think we can allow users to create pipelines whose QNames have no
namespace while saying that implementation-defined components must have
a namespace.
>> 5. Pipeline invocation uses a component library, a component name, and
>> a set of inputs and parameters. The component library includes the
>> built-in components, pipeline components defined in XProc files, and
>> implementation-defined components (which might be web services etc.)
>
> Yes, but still allowing the definition and usage of pipelines inside a
> pipeline or in a separate file (without defining in the component
> library). It will ease interoperability (as users may have their own
> component library properly configured for their purposes).
I was thinking of the definition at a spec level. If we say
"implementations have a component library", then it's
implementation-defined how that component library is set up by the user.
A command line might be:
myproc my:pipe -file foo.xp -in document=book.xml -out result=out/
where my:pipe is the name of the (pipeline) component to be used, "-file
foo.xp" means "include the pipeline components declared in foo.xp in the
component library", "-in document=book.xml" means "the 'document' input
comes from book.xml", and "-out result=out/" means "put the 'result'
output as files in the 'out' directory".
If you wanted to use a built-in component, you could do:
myproc p:xslt -in document=book.xml -in stylesheet=docbook2html.xsl
-out result=out/
Cheers,
Jeni
--
Jeni Tennison
http://www.jenitennison.com
Received on Monday, 24 July 2006 13:53:38 UTC