Bug 21002 - [XPROC10] Error in XS0018
Summary: [XPROC10] Error in XS0018
Status: ASSIGNED
Alias: None
Product: XML Processing Model
Classification: Unclassified
Component: Pipeline language (show other bugs)
Version: unspecified
Hardware: PC Windows NT
: P2 normal
Target Milestone: ---
Assignee: Norman Walsh
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-02-15 08:40 UTC by Tim Mills
Modified: 2014-02-19 10:26 UTC (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Tim Mills 2013-02-15 08:40:37 UTC
Static error XS0018 is defined as follows.

"If an option is required, it is a static error to invoke the step 
without specifying a value for that option."

Section 6.1 Static Errors defines the meaning of static error.

"[Definition: A static error is one which can be detected before 
pipeline evaluation is even attempted.] Examples of static errors 
include cycles and incorrect specification of inputs and outputs.

Static errors are fatal and must be detected before any steps are 
evaluated."

Invocation of a step is typically something performed during 
evaluation.  Therefore either this error should be a dynamic error, or 
it should be redefined to avoid use of "invoke", e.g.

"If an option is required, it is a static error to specify the 
invocation of a step without specifying a value for that option."

Test case "Test for err:XS0018 - 002" illustrates an example where this 
error condition can only be detected at run time - when options are not 
supplied when invoking the top-level pipeline.  It is only when the host 
language fails to pass an option which is required that the invocation 
will fail.
Comment 1 Vojtech Toman 2013-02-27 14:14:54 UTC
Good observation. The simplest solution probably is to remove the test err-s0018-002 (and replace it with err-s0018-003).
Comment 2 Tim Mills 2013-03-24 21:55:47 UTC
Having read the minutes of the WG teleconference, might I suggest adding new dynamic error codes to cover the case of (external) initiation of a pipeline, analogous to those in XSLT for initiating a transformation.
Comment 3 Norman Walsh 2014-02-19 10:24:46 UTC
In 5.7.2 p:option, replace the first paragraph after the first
p:option syntax diagram with:


  An option may be declared as required. If an option is required, it
  is an error to invoke that step without specifying a value for that
  option. For steps invoked within a pipeline, it is a static error
  (err:XS0018) to specify an invocation without specifying a value for
  a requried option. For pipelines invoked directly by an external
  environment (informally, top-level pipelines), this error cannot be
  detected statically. It is a dymamic error (err:XD????) to invoke
  a pipeline without specifying a value for a required option.
Comment 4 Tim Mills 2014-02-19 10:26:22 UTC
Thanks.