[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: [sca-assembly] ISSUE 12: Abstract base type for Service and Reference
Re: Question that was brought up in the
meeting about whether ComponentReference and ComponentService should also have a
common supertype. I apologize – I didn’t hear it
during the meeting but I saw it in the minutes. I’d propose that we don’t
introduce a common supertype like “ComponentBindable”. XSD doesn’t support multiple
inheritance in this way – you can’t have a ComponentReference which
extends both ComponentBindable and Reference. So my proposed type hierarchy would be: Bindable <--Reference (extends Bindable) <--ComponentReference
(extends Reference) <--Service (extends Bindable) <--ComponentService
(extends Service) I’d be happy using the word “Contract”,
or something else, instead of “Bindable”. From: David DiFranco
[mailto:ddifranc@bea.com] Title: Abstract base type
for Service and Reference TARGET: Assembly spec DESCRIPTION: The XML schema definitions for Service and
Reference contain an identical set of elements, and also share some
attributes. It would be useful to have Service and Reference extend from
a common base class. This would make it easier to deal with Services and References
programmatically, when processing an SCA XML file, or working with code
generated from the XML schema. PROPOSAL:
New proposed schema content below. If someone can think of
a better name for the base type than “Bindable”, please suggest. <complexType name="Bindable" abstract="true">
<sequence>
<element ref="sca:interface"
minOccurs="0" maxOccurs="1" />
<element name="operation" type="sca:Operation" minOccurs="0" maxOccurs="unbounded" />
<choice minOccurs="0" maxOccurs="unbounded">
<element ref="sca:binding" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
</choice>
<element ref="sca:callback" minOccurs="0" maxOccurs="1" />
<any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" /> </sequence> <attribute name="name" type="NCName" use="required" /> <attribute name="requires" type="sca:listOfQNames" use="optional" />
<attribute
name="policySets"
type="sca:listOfQNames"
use="optional"/>
<anyAttribute
namespace="##any" processContents="lax" /> </complexType>
<complexType name="Service">
<complexContent>
<extension
base="sca:Bindable">
<attribute name="promote" type="anyURI" use="required" />
</extension>
</complexContent> </complexType> <complexType name="Reference">
<complexContent>
<extension
base="sca:Bindable">
<attribute name="target" type="sca:listOfAnyURIs" use="optional"/>
<attribute name="wiredByImpl" type="boolean" use="optional" default="false"/>
<attribute name="multiplicity" type="sca:Multiplicity" use="optional" default="1..1" />
<attribute name="promote" type="sca:listOfAnyURIs" use="required" />
</extension>
</complexContent>
</complexType>
Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. Notice: This email message, together with any attachments, may contain information of BEA Systems, Inc., its subsidiaries and affiliated entities, that may be confidential, proprietary, copyrighted and/or legally privileged, and is intended solely for the use of the individual or entity named in this message. If you are not the intended recipient, and have received this message in error, please immediately return this by email and then delete it. |
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]