- From: Jeni Tennison <jeni@jenitennison.com>
- Date: Wed, 23 Aug 2006 10:03:46 +0100
- To: public-xml-processing-model-wg@w3.org
Hi Norm,
> I believe that the editor's draft at
>
> http://www.w3.org/XML/XProc/docs/ED-xproc-20060821/
>
> is feature complete.
Regarding feature completeness: there doesn't seem to be anything in the
spec on extension elements/attributes, nor on documentation, both of
which I think we had at least preliminary decisions about. We did also
tackle a couple of the standard components, and came up with a massive
list of other possibles which it might be worth capturing in the draft
(especially if you can arrange them into groups).
A few editorial (I think) comments, on reading it through again:
1. I think you should mention "error outputs" in the definition of
components (2.1) or inputs and outputs (2.2). Currently, the concept is
only introduced when you talk about try/catch constructs (3.5).
2. It's not clear to me whether "Other Components" (3.6) is about
implementation-defined components (that you would refer to using
p:step/@component) or implementation-defined language constructs (that
would have their own specialist element, on a par with for-each/choose
and the other components listed in "Language Constructs" (Section 3). If
the former, I don't think this text belongs in Section 3; if the latter,
I don't think implementations should have to define a signature for
language constructs (just as you haven't for for-each/choose etc.). As
we've discussed, language constructs are special, and don't have
signatures like other components. (In fact, I wonder if we should avoid
calling them "components" altogether.)
3. I would like to see the 'select' attribute covered in Section 4.1.1
(Associating Documents with Ports), since that's what it does. I don't
see any reason why <p:declare-output> shouldn't have a select attribute.
4. In Section 4.2.1 (p:pipeline Element), Section 4.2.4 (p:step Element)
and elsewhere, we will have to make clear how QNames in attribute values
are resolved: without a prefix, does it use the default namespace or no
namespace? If pipeline names must have a namespace (which I think is
probably a good idea) then I think QNames without a prefix should belong
to the default namespace.
5. If we're using "p:declare-parameter" and "p:parameter" then I think
we should use "p:import-parameter" rather than "p:import-param". (Maybe
it should be plural, in fact, since you can import more than one at a time.)
6. Near the end of 4.2.5 (p:input Element), you talk about the role of
the 'select' attribute. Since this is an XPath expression rather than an
XSLT pattern, I think you should be talking about *selected* nodes
rather than *matched* nodes.
7. In Section 4.2.6 (p:param Element), I believe that we wanted to allow
a 'value' attribute as well (with perhaps a note saying that only one or
two of the possibilities was likely to survive to future drafts). Also,
earlier on this was called the p:parameter element...
8. In Section 4.2.7 (p:import-param Element), the syntax specification
gives the value of the name attribute as 'tokens', which implies that
this would be a list of tokens. If it's just a single token (as
specified by the text) then the syntax spec should say 'token'.
9. In Section 4.2.8 (p:for-each Element), the explanation of the example
says: "The resulting HTML and FO documents are aggregated together and
appear on the html and fo ports, respectively, of the chapters step." I
think it would be clearer if it said "The resulting HTML documents are
aggregated together and appear on the html port of the chapters step,
and the resulting FO documents are aggregated together and appear on the
fo port of the chapters step." At the moment, it sounds a bit like the
HTML and FO documents are all aggregated together into one sequence.
10. In Section 4.2.10 (p:choose/p:when/p:otherwise Elements), I may have
misinterpreted but was under the impression that these elements could
have 'href' (and 'select') attributes.
11. On p:group (Section 4.2.11) and in fact on the other language
constructs, I'm pretty sure that we wanted to allow arbitrary
p:declare-input and p:declare-param in order to support scoped
references to documents and parameters. This was our way of supporting
variables without having variables.
12. In Section 4.2.12 (p:try/p:catch Elements), why not just call the
input port "!error"? I don't think we need a # as in "!#error". We can
just mandate that there is an implicit input port declaration called
"error".
13. Section 4.2.13 (p:declare-component Element), the last paragraph says:
"The input and parameter declarations of a p:declare-component may use
the name “*” to indicate that the component accepts an arbitrary
number of inputs, outputs, or parameters."
Is "*" allowed on output declarations too? If it is, then the paragraph
should say:
"The input, output, and parameter declarations of a
p:declare-component may use the name “*” to indicate that the
component accepts or provides an arbitrary number of inputs, outputs,
or parameters."
If not, then it should say:
"The input and parameter declarations of a p:declare-component may use
the name “*” to indicate that the component accepts an arbitrary
number of inputs or parameters."
Cheers,
Jeni
--
Jeni Tennison
http://www.jenitennison.com
Received on Wednesday, 23 August 2006 09:04:05 UTC