OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

wsbpel message

[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]


Subject: Re: [wsbpel] 20040902 schema comments / RNC version



Hi, Paul and all others,

[Note: I have exchanged a number of emails with Paul in private already. I would like to share our conversation to the general public.]

For items (1), (4), (5), (8): those are non-normative editorial changes. I have just made those into the latest round of XSD editing work.

For item (2):
I have confirmed with our XSD team at Oracle.  [Millions thanks to their help and advice.]
<xsd:anyAttribute namespace="##other"  .../> actually requires a namespace-qualified attribute. Therefore, its semantics fits our expectation.

See section 3.10.2:
http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#declare-openness
------------------------------------------------------
##other
a pair of not and the ·actual value· of the targetNamespace [attribute] of the <schema> ancestor element information item if present, otherwise ·absent·.
------------------------------------------------------

AND, Section 3.10.4: (Validation 2.* for "##other")  http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#section-Wildcard-Validation-Rules
------------------------------------------------------
Validation Rule: Wildcard allows Namespace Name
For a value which is either a namespace name or ·absent· to be ·valid· with respect to a wildcard constraint (the value of a {namespace constraint}) one of the following must be true:
1 The constraint must be any.
2 All of the following must be true:
2.1 The constraint is a pair of not and a namespace name or ·absent· ([Definition:]  call this the namespace test).
2.2 The value must not be identical to the ·namespace test·.
2.3 The value must not be ·absent·.
3 The constraint is a set, and the value is identical to one of the members of the set.
------------------------------------------------------

For item (3):
This is a good catch and a bug that we need to fix. I would agree with your suggestion. However, it will cause a minor normative change in the spec. We can piggy-back that with Issue 103, if you want. Or else, you may want to file a separate bug issue.

For item (7):
I agree with your findings. There is a bug + lack of parallel constructions ("bpel:imports") issue. The same bug was discovered by Dieter Koenig also. I have fixed maxOccurs bug. Regarding to the parallel construction, since it will cause a minor normative changes, I would suggest you to file a bug issue against that.

For item (9):
Originally, I also thought that was a good idea. However, after I played with it, I discovered that introduces a non-determinism error at <choice>.
W3C-XSV reported this error:
-------------------------
Invalid: non-deterministic content model for type tEventHandlers: {http://schemas.xmlsoap.org/ws/2004/03/business-process/}:onAlarm/{http://schemas.xmlsoap.org/ws/2004/03/business-process/}:onAlarm
-------------------------

For item (10):
There is a real reason to have multiple documentation. Please note that the documentation is i18N ready with xml:lang attribute. Users of an international BPEL project may need to document the same BPEL with different languages. And, again we borrow this design pattern from XML Schema itself.

For (11):
I am comfortable with your suggestion in general. Again, since it contains normative changes to the spec for parallel construction, I would suggest you to file a bug issue to track this down.

For (12), what are other legal values in your mind? This will qualify a normative changes again.

For (13), I feel comfortable with your suggestion. This will qualify another normative change. Again, please file a bug issue against that.


Thanks!


Regards,
Alex Yiu




Paul R Brown wrote:

Hi, Prasad / Alex --

Sept 02, 2004 version of the WS-BPEL main schema.

For any fellow emacs/nxml-mode junkies, I have a version of the schema in RNC form; it is here[1] for anyone who wants it.  (There is also a version[2] of BPEL4WS 1.1 (March 2003).)  I have (probably) made some mistakes with the transcription, but there are some niceties with the RNC versions, e.g., enforcement of different from-spec's.

In the course of performing the transcription, I came up with a few items/comments; I'll request an advance indulgence for anything that constitutes overmuch language-lawyering.

1) I agree with Ian's earlier comments about explicitly stating mixed content when present (whether or not the minutiae in the XML schema specification(s) require it), since it's clearer to someone (God forbid) reading the schema.

2) The use of the xs:anyAttribute extensibility mechanism seems a little silly from a practical perspective...  The schema states that any attributes outside of xmlns:bpel are permitted, but since the attributes in the schema are all unqualified, this doesn't really meet the goal of excluding the namespace that the schema addresses.  This should really be "any namespace-qualified attribute in a non-default namespace other than the xmlns:bpel namespace", but this is not possible in XML schema[3].  Nonetheless, it could be specified in the documentation for the schema or other annotation.

3) The literal form of the from-spec clashes with the extensibility elements.  (Is the schema-legal bpel:documentation element part of the assignment?)  A non-extensible bpel:literal child would correct this asymmetry and make the literal from-spec more explicit:

  from.literal =
    element bpel:from {
      extensibility,
      element bpel:literal {
        ( text* & OTHER* )
      }
    }

4) Having the tTo type be non-extensible (documentation and ##other children) seems asymmetric.  (If I can document a bpel:link, I should be able to document a bpel:to...)

5) The bpel:service-ref child of the bpel:from is not technically allowed by the literal form of the tFrom type (because the service-ref element is in the xmlns:bpel namespace).  This should probably be a sixth form of the from-spec and explicitly called-out in the schema.  In RNC, this would be:

  from.service-ref =
    element bpel:from {
      extensibility,
      element bpel:service-ref {
        attribute reference-scheme { xsd:anyURI },
        OTHER+
      }
    }

6) If I may nitpick, the hyphenated names for bpel:service-ref and reference-scheme are at odds with the camelCase names used elsewhere in the schema.

7) The schema specifies that bpel:import appears zero or one times; this should be zero or more.  (The default value[4] of maxOccurs is 1, so it should be specified to be "unbounded" in this case.)  Parallel construction with other items (variables, events/alarms, catch/catchAll, etc.) would suggestion that it be wrapped in a bpel:imports element.

8) It is possible to express the grammar for (for|until)?repeatEvery in XML schema without introducing non-determinism, so I'll propose the following alternative to what's in the schema:

  <complexType name="tOnAlarm">
    <complexContent>
      <extension base="bpws:tExtensibleElements">
        <sequence>
          <choice>
            <element name="for" type="bpws:tDuration-expr"/>
            <element name="until" type="bpws:tDeadline-expr"/>
          </choice>
          <element name="repeatEvery" type="bpws:tDuration-expr" minOccurs="0"/>
          <group ref="bpws:activity"/>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

The same holds for the bpel:wait activity:

  <complexType name="tWait">
    <complexContent>
      <extension base="bpws:tActivity">
        <choice>
          <element name="for" type="bpws:tDuration-expr"/>
          <element name="until" type="bpws:tDeadline-expr"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>

9) I'll propose a change to the grammar for tEventHandlers that is ((bpel:onEvent+ bpel:onAlarm*)|bpel:onAlarm+) instead of (bpel:onEvent* bpel:onAlarm*):

  <complexType name="tEventHandlers">
    <complexContent>
      <extension base="bpws:tExtensibleElements">
        <choice>
          <sequence>
            <element name="onEvent" type="bpws:tOnMessage" minOccurs="1" maxOccurs="unbounded"/>
            <element name="onAlarm" type="bpws:tOnAlarm" minOccurs="0" maxOccurs="unbounded"/>
          </sequence>
          <element name="onAlarm" type="bpws:tOnAlarm" minOccurs="1" maxOccurs="unbounded"/>
        </choice>
      </extension>
    </complexContent>
  </complexType>

10) IMHO, it doesn't make much sense to me to have multiple bpel:documentation elements head-to-tail at the start, so maxOccurs="1" makes more sense.

11) Either no bpel:faultHandlers element on bpel:process and bpel:scope or a bpel:faultHandlers child of bpel:invoke would be parallel construction.

12) The definition of the importedURI seems overly restrictive, as the two values are not the only two legal values.

13) Allowing the use of <xs:any processContents="lax" /> within bpel:documentation allows a bpel:documentation element to comment out portions of a process, but that's the only reason that I can think of to use <any processContents="lax" /> insetad of <any namespace="##other" processContents="lax" />

If it's useful, I'm willing to make these edits to the schema and circulate it.

    -- Paul

[1] http://blogs.fivesight.com/pbblog/wp-content/bpel_20040902.rnc
[2] http://blogs.fivesight.com/pbblog/wp-content/bpel_1_1.rnc
[3] http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#declare-openness
[4] http://www.w3.org/TR/xmlschema-0/#OccurrenceConstraints


To unsubscribe from this mailing list (and be removed from the roster of the OASIS TC), go to http://www.oasis-open.org/apps/org/workgroup/wsbpel/members/leave_workgroup.php.




[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]