Sca-core.xsd should define different types for composite/service and 
componentType/service
------------------------------------------------------------------------------------------

                 Key: TUSCANY-636
                 URL: http://issues.apache.org/jira/browse/TUSCANY-636
             Project: Tuscany
          Issue Type: Bug
          Components: Specification
    Affects Versions: Cpp-current
            Reporter: Jean-Sebastien Delfino
         Assigned To: Jean-Sebastien Delfino


Sca-core.xsd defines a single Service complex type, trying to support both 
<service> inside a <composite> and <service> inside a <componentType>.

The problem with this approach is that composite / service is pretty different 
from componentType / service. For example a composite service can contain 
bindings, references to other services, an a multiplicty attribute. Composite 
service looks to me more like a pattern of component than an actual service 
definition. ComponentType / service does not allow for this pattern at all. 

The consequence is that the current  XSD cannot be used to validate SCDL 
documents. To fix this I propose to have two different complex types to model 
these two different things:
- Service for ComponentType / service
- CompositeService for Composite / service.

    <complexType name="Service">
        <sequence>
            <element ref="sca:interface" minOccurs="1" maxOccurs="1" />
            <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded" />
        </sequence>
        <attribute name="name" type="NCName" use="required" />
        <anyAttribute namespace="##any" processContents="lax" />
    </complexType>

    <complexType name="CompositeService">
        <sequence>
            <element ref="sca:interface" minOccurs="1" maxOccurs="1" />
            <element ref="sca:binding" minOccurs="0" maxOccurs="unbounded" />
            <element name="reference" minOccurs="0" maxOccurs="unbounded" 
type="anyURI" />
            <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded" />
        </sequence>
        <attribute name="name" type="NCName" use="required" />
        <attribute name="multiplicity" type="sca:Multiplicity" use="optional" 
default="1..1" />
        <anyAttribute namespace="##any" processContents="lax" />
    </complexType>

I also propose that we do the same thing for references.


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to