RE: Another take on versioning

Well, yes, it is. My point exactly. Unknown steps are also unknown elements.
If the p:import requirement is removed in favor of a version attribute, an
XProc 1.0 processor isn't going to know the signatures of any new steps.
Therefore, any new steps will HAVE TO BE treated as unknown elements. I
mean, for example:

<p:pipeline>
  <p:declare-step type="...">
    <p:unrecognized>...</p:unrecognized>
  </p:declare-step>
  <p:identity/>
</p:pipeline>

Is p:unrecognized an element like p:serialization or p:input that does
something new and fancy with p:declare-step, or is it a new atomic and/or
contained step that has no required options, reads the primary input port,
and outputs on the primary output port implicitly? Without having a step
signature, you don't know for sure (and even if you did, you don't know if
it's a contained step, or a p:serialization like element). So the only thing
you're left to do is ignore it or have a dynamic error if that newly
declared step is evaluated. Ignoring, I think, is the better option, but a
dynamic error is also fine.

Regards,
Vasil Rangelov

-----Original Message-----
From: public-xml-processing-model-comments-request@w3.org
[mailto:public-xml-processing-model-comments-request@w3.org] On Behalf Of
Toman_Vojtech@emc.com
Sent: Monday, October 12, 2009 10:38 AM
To: public-xml-processing-model-comments@w3.org
Subject: RE: Another take on versioning

> 2. Treatment of unknown steps
> 
> I think this is a wrong way to think about it (the word 
> "steps" I mean).
> There are some elements that don't have a formal 
> qualification. They aren't
> "atomic steps", they aren't "contained steps", they aren't 
> (always) direct
> child elements of steps either. They need a formal qualification, and
> unknown elements (regardless of their formal qualification in future
> versions) should be treated as these kinds of elements would 
> be treated.
> These elements currently include (among others?) 
> p:declare-step, p:pieline,
> p:import, p:log, p:serialization, p:xpath-context, p:iteration-source,
> p:viewport-source, p:inline, p:document, p:pipe, p:empty, p:input and
> p:output.

Isn't this already covered by the bullet 2?

"2. On any element in the XProc namespace, unrecognized attributes
(other than extension attributes) and unrecognized ***descendant***
elements are ignored. Any step which has either is marked as invalid. If
they occur on or in p:declare-step, all attempts to evaluate instances
of the declared type are also marked as invalid."

On the other hand, as it is stated now, bullet 2 may be too restrictive.
If I understand it correctly, the following pipeline would be marked as
invalid, but it should not be:

<p:pipeline>
  <p:declare-step type="...">
    <p:unrecognized>...</p:unrecognized>
  </p:declare-step>
  <p:identity/>
</p:pipeline>

The top-level pipeline contains an unrecognized descendant element, but
it actually does not use it at all.

Regards,
Vojtech

Received on Tuesday, 13 October 2009 07:30:02 UTC