- From: Imsieke, Gerrit, le-tex <gerrit.imsieke@le-tex.de>
- Date: Mon, 25 Sep 2017 12:58:29 +0200
- To: xproc-dev@w3.org
I don’t think it will fit well into content-types. But we can think of allowing the as attribute also on input and output ports, like this: <p:input port="source" as="document-node(element(*))*"/> or <p:output port="result as="document-node()"/> As long we don’t permit arbitrary XDM items on ports, we need to raise an error though (statically?) if the declared sequence type is atomic, a map, or anything else except item() or document-node(). Gerrit On 25.09.2017 12:45, Kraetke, Martin, le-tex wrote: > Naturally, sequence is the default for 3.0 but I agree that pipeline > authors should have the chance to change this. However, there are cases > where you want to specify the number of possible documents more > precisely. I would suggest that we drop the sequence attribute and > instead specify that a pipeline author can add the operators "?", "*" > and "+" to the content-type attribute, e.g: > > <p:output port="result" content-type="text/xml+"/> > > best, Martin > > Am 23.09.2017 um 08:06 schrieb Imsieke, Gerrit, le-tex: >> The weird errors are probably the processor’s fault. A processor should >> be able to tell you (and should in fact tell you) which step in which >> pipeline expected a sequence / a single document and which input that it >> received or emitted violated this restriction. >> >> ----- >> >> If we think that “zero to many documents arriving on a port” is the new >> normal: What about keeping the sequence attribute on p:input and >> p:output but make it true by default? >> >> Gerrit >> >> On 22.09.2017 15:21, Ari Nordström wrote: >>> Hi, >>> >>> Getting rid of @sequence seems like a good idea to me. I know I've had >>> it set to false on numerous occasions, only to get weird errors and an >>> 'oh' moment when realising why. Having everything be a sequence makes >>> sense to me. >>> >>> Having said that, I like #3 but need to think about it more. >>> >>> Thanks, >>> >>> /Ari >>> >>> >>> On 22 September 2017 at 15:05, Vojtech Toman <vtoman@opentext.com >>> <mailto:vtoman@opentext.com>> wrote: >>> >>> I think removing sequence=true/false is a good idea. In the ideal >>> world, everything is a sequence :) >>> >>> My personal favorite is option 2. (To be honest, I don't quite >>> understand option 1 - is this some sort of backward compatibility >>> mode for old XProc 1.0 pipelines?) >>> >>> Option 3 (implicit looping) looks fancy but I think it would work >>> only with simple steps that have only one input port. For steps that >>> have multiple non-sequence input ports, it is far from clear to me >>> how it could work. Would it loop? Would it loop over all >>> combinations of the inputs (implications on streaming)? Etc. Also, >>> there would probably have to be some mechanism to tell the processor >>> whether it should loop over a port or not (because sometimes you do >>> want to pass a sequence of items to the step). Consider, for >>> example, the p:xquery step: it takes a sequence of documents on the >>> "source" port (the default collection) and the XQuery on the "query" >>> port. You definitely don't want to loop over "source" but you may or >>> may not want to looping over "query". >>> >>> Regards, >>> Vojtech >>> >>> -----Original Message----- >>> From: Achim Berndzen [mailto:achim.berndzen@xml-project.com >>> <mailto:achim.berndzen@xml-project.com>] >>> Sent: Friday, September 22, 2017 2:41 PM >>> To: XProc Dev >>> Subject: [EXTERNAL] - Getting rid of @sequence="true/false"? >>> >>> Hi all, >>> >>> A while ago, @ndw and I had a mail conversation about sequence ports >>> in XProc 3.0. In order to make it easier to learn XProc, we >>> discussed about elimination non-sequence ports and @sequence, so >>> that in XProc 3.0 all steps accept sequences on all ports. >>> >>> Following this line of thought, some options are possible: >>> >>> 1. Nothing changes: All steps accepting sequences on a port in XProc >>> 1.0 will do so in XProc 3.0. Steps that do not accept a sequence >>> will only raise an error, when an empty sequence is delivered. If >>> not, they we process the first document in the sequence as described >>> and discard all others. >>> >>> 2. We simply move task of raising an error to the step and its >>> semantic: Instead of having one global error (XD0006) we could have >>> more informative errors like (XS????: It is a dynamic error if not >>> exactly one document appears on port "stylesheet" >>> of p:xslt). >>> >>> 3. Implicit looping: One possible consequence I personally like very >>> much is the idea, that some steps (like p:add-attribute, p:delete, >>> p:insert etc.) do an implicit looping for the sequence. This might >>> be more natural the XProc newbies and may appear attractive to >>> current users, because in some cases you will not need "p:for-each" >>> any more. This would be inline with p:viewport in XProc 3.0 with >>> does implicit looping. For other steps, where implicit looping does >>> not make sense (e.g. p:compare or p:http-request) we could choose >>> option (1) or (2). >>> >>> 4. Bad idea, keep it like it is: You might say that the distinction >>> between a document and a sequence of documents is very easy to grasp >>> and that it is perfectly established in XSLT, XQuery and other >>> X-technologies. Also you might argue, that in XProc 3.0 we will have >>> mixed sequences with XML and non-XML documents and we would need a >>> special treat when p:add-attribute is applied to a sequence of xml >>> documents, JPEGs and texts. >>> >>> What do you think? >>> >>> Greetings from Germany, >>> Achim >>> ------------------------------------------------ >>> Achim Berndzen >>> achim.berndzen@xml-project.com >>> <mailto:achim.berndzen@xml-project.com> >>> >>> >>> https://urldefense.proofpoint.com/v2/url?u=http-3A__www.xml-2Dproject.com&d=DwIFAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=aJZr6mdNzy-qsGbVYWF8KIxwje5rrbk2V7QfMr35EhU&m=cPHeErshVOYtQvSxAMDAic7JkUGz2HP66H7HpBWsndQ&s=mHiMaFmT9YqrWTQHwBnXpOa4VbbxxpA4Y2cOjvacjmY&e= >>> >>> >>> >>> <https://urldefense.proofpoint.com/v2/url?u=http-3A__www.xml-2Dproject.com&d=DwIFAg&c=ZgVRmm3mf2P1-XDAyDsu4A&r=aJZr6mdNzy-qsGbVYWF8KIxwje5rrbk2V7QfMr35EhU&m=cPHeErshVOYtQvSxAMDAic7JkUGz2HP66H7HpBWsndQ&s=mHiMaFmT9YqrWTQHwBnXpOa4VbbxxpA4Y2cOjvacjmY&e=> >>> >>> >>> >>> >>> >>> >>> >>> >>> >>> >> > -- Gerrit Imsieke Geschäftsführer / Managing Director le-tex publishing services GmbH Weissenfelser Str. 84, 04229 Leipzig, Germany Phone +49 341 355356 110, Fax +49 341 355356 510 gerrit.imsieke@le-tex.de, http://www.le-tex.de Registergericht / Commercial Register: Amtsgericht Leipzig Registernummer / Registration Number: HRB 24930 Geschäftsführer: Gerrit Imsieke, Svea Jelonek, Thomas Schmidt, Dr. Reinhard Vöckler ------------------------------------------------------------------------------ Meet us at Frankfurt Book Fair Hall 4.2, L 72. More at https://www.le-tex.de/en/buchmesse.html
Received on Monday, 25 September 2017 10:59:02 UTC