Issue 192: Applying extensibility uniformly to
<partnerLinkType>, <role>, <property> and
<propertyAlias>
Proposal for vote
Change the XSD definition for <partnerLinkType>, <role>,
<property> and <propertyAlias> by make their type extending
from "tExtensibleElements".
In "6.3. Language Extensibility", add the following:
Apart from core WS-BPEL process constructs, extensions are
also allowed in WSDL-based WS-BPEL constructs, such as,
<partnerLinkType>, <role>, <property> and
<propertyAlias>. The same syntax pattern and semantic rules for
extensions of core BPEL constructs are applied to these extensions as
well. Particularly, <extension> directives of a WS-BPEL process
are applied to all extensions used in WSDL-based WS-BPEL constructs, of
which the WSDL definitions are transitively referenced by the process.
[Editor's Note: The above wordings on <extension> directives may
need to be refined a bit upon the passing of Issue 92 and/or 92.*]
XSD Editorial Details:
- Factor out "tExtensibleElements" from "wsbpel_main.xsd" into a
schema of no targetNamespace called "wsbpel_extensible.xsd"
- Add the following xsd:include to all existing 3 XSD:
<include schemaLocation="wsbpel_extensible.xsd" />
- Make the following type definition extended from
"tExtensibleElements":
<element name="property">
<complexType>
<complexContent>
<extension base="tExtensibleElements">
<attribute name="name" type="NCName"
use="required"/>
<attribute name="type" type="QName"
use="required"/>
</extension>
</complexContent>
</complexType>
</element>
<element name="propertyAlias">
<complexType>
<complexContent>
<extension base="bpws:tExtensibleElements">
<sequence>
<element name="query" minOccurs="0">
<complexType mixed="true">
<sequence>
<any processContents="lax"
minOccurs="0"/>
</sequence>
<attribute name="queryLanguage"
type="anyURI"/>
</complexType>
</element>
</sequence>
<attribute name="propertyName" type="QName"
use="required"/>
<attribute name="messageType" type="QName"
use="required"/>
<attribute name="part" type="NCName"/>
</extension>
</complexContent>
</complexType>
</element>
<complexType name="tPartnerLinkType">
<complexContent>
<extension base="bpws:tExtensibleElements">
<sequence>
<element name="role" type="plnk:tRole"
maxOccurs="2"/>
</sequence>
<attribute name="name" type="NCName"
use="required"/>
</extension>
</complexContent>
</complexType>
<complexType name="tRole">
<complexContent>
<extension base="bpws:tExtensibleElements">
<attribute name="name" type="NCName"
use="required"/>
<attribute name="portType" type="QName"
use="required"/>
</extension>
</complexContent>
</complexType>
---------------------------------------------
Thanks!
Regards,
Alex Yiu
|