- From: mozer <xmlizer@gmail.com>
- Date: Sun, 20 May 2012 22:34:56 +0200
- To: Florent Georges <fgeorges@fgeorges.org>
- Cc: XProc Comments <public-xml-processing-model-comments@w3.org>
- Message-ID: <CAKdwC_MKDSpmJu+jsXCqjaKiU4EEksWHTu7B08eP_iVHyBuB7Q@mail.gmail.com>
Florent, 2012/5/20 Florent Georges <fgeorges@fgeorges.org> > On 20 May 2012 13:10, mozer wrote: > > > Do you want to provide a default content ? > > No. > Ok > > > What is exactly the use case ? > > There are two different aspects here. The first one is to be able > to declare a primary port just for the convenience of connecting it > implicitly, without imposing the user to write the following when > he/she doesn't want to pass it (this is really syntactic sugar, but > XProc syntax is sometimes rather salty, so I think it couldn't hurt): > > <p:input port="source"> > <p:empty/> > </p:input> > You might had noticed that you can provide a default value when YOU DECLARE an input port [[ An input *declaration* has the following form: <p:input *port* = NCName sequence? = boolean primary? = boolean kind? = "document" select? = XPathExpression> (p:empty <http://www.w3.org/TR/xproc/#p.empty> | (p:document <http://www.w3.org/TR/xproc/#p.document> | p:inline <http://www.w3.org/TR/xproc/#p.inline> | p:data <http://www.w3.org/TR/xproc/#p.data>)+)? </p:input> ]] And can this helps you [[ If a connection is provided in the declaration, then select may be used to select a portion of the input identified by the p:empty<http://www.w3.org/TR/xproc/#p.empty> , p:document <http://www.w3.org/TR/xproc/#p.document>, p:data<http://www.w3.org/TR/xproc/#p.data>, or p:inline <http://www.w3.org/TR/xproc/#p.inline> elements in the p:input<http://www.w3.org/TR/xproc/#p.input>. This select expression applies *only* if the default connection is used. If an explicit connection is provided by the caller, then the default select expression is ignored. ]] > > The second aspect is to check the documents flowing through a port, > by checking their root element name: > > <p:declare-step type="my:format-article"> > <p:input port="source" as="document-node(db:article)"/> > ... > </p:declare-step> > > Feeding the previous step with something else than a document with a > root element called "db:article" would then throw a type error, like > for the "as" attribute in XSLT 2.0. > It just a syntactic sugar of something that you can do with <p:choose> <p:when test="/db:article"> ... </p:when> <p:otherwise> <p:error/> </p:otherwise> </p:choose> Am I correct ? Xmlizer
Received on Sunday, 20 May 2012 20:35:26 UTC