[ 
https://issues.apache.org/jira/browse/TUSCANY-637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Jean-Sebastien Delfino resolved TUSCANY-637.
--------------------------------------------

    Resolution: Fixed

This was resolved by SCA spec issue #126.

Here are the detailed XSD changes:

<!-- complex type for sca:property declaration --> 
 <complexType name="Property" mixed="true">
     <extension base="PropertyValueBase">  
         <!-- extension defines the place to hold default value --> 
         <attribute name="name" type="NCName" use="required"/>
         <attribute name="type" type="QName" use="optional"/> 
         <attribute name="element" type="QName" use="optional"/>
         <attribute name="many" type="boolean" default="false" use="optional"/>
         <attribute name="required" type="boolean" default="false" 
use="optional"/>
         <anyAttribute namespace="##any" processContents="lax"/>
         <!-- an extension point ; attribute-based only --> 
     </extension> 
</complexType>

<complexType name="PropertyValueBase" mixed="true">
  <!-- mixed="true" to handle simple type --> 
  <sequence>
    <any namespace="##any" processContents="lax" minOccurs="0"
         maxOccurs="1"/>
    <!-- NOT an extension point ; 
         This xsd:any exists to accept the element-based or complex
           type property
         i.e. no element-based extension point under "sca:property" 
     -->   
  </sequence> 
</complexType>

<complexType name="PropertyValue" mixed="true">
  <complexContent>
    <extension base="PropertyValueBase">
       <attribute name="name" type="NCName" use="required"/>
       <attribute name="source" type="string" use="optional"/>
       <attribute name="file" type="xs:anyURI" use="optional"/> 
       <anyAttribute namespace="##any" processContents="lax"/>
       <!-- an extension point ; attribute-based only --> 
    </extension> 
  <complexContent> 
</complexType>

<complexType name="Component">
  <sequence>
    <element ref="sca:implementation" minOccurs="0"/>
    <choice minOccurs="0" maxOccurs="unbounded">
      <element name="reference" type="sca:ReferenceValue"/>
      <element name="property" type="sca:PropertyValue" />
    </choice>
    <any namespace="##other" processContents="lax" minOccurs="0" 
maxOccurs="unbounded"/>
  </sequence>
  <attribute name="name" type="NCName" use="required"/>
  <anyAttribute namespace="##any" processContents="lax"/>
</complexType>


> In sca-core.xsd, component should not contain property type definition 
> elements
> -------------------------------------------------------------------------------
>
>                 Key: TUSCANY-637
>                 URL: https://issues.apache.org/jira/browse/TUSCANY-637
>             Project: Tuscany
>          Issue Type: Bug
>          Components: Specification
>    Affects Versions: Cpp-current
>            Reporter: Jean-Sebastien Delfino
>         Assigned To: Jean-Sebastien Delfino
>             Fix For: Cpp-M3
>
>
> Sca-core.xsd defines a single complexType for two very different things:
> - the definition of a property type (in a Type definition, i.e. a component 
> type or a composite, which I view like a partial definition of a concrete 
> type)
> - the configuration of a property on a component (an instance of a type)
> As far as I know we're not supporting the definition of property types on 
> instances yet, some programming languages do that and it's useful but we 
> don't support this on components yet :) so Component should define its 
> <property> element differently. We should have two different types:
> - PropertyType - representing the definition of a property type
> - Property - representing the configuration of a property on a component
> I will bring this issue to the OSOA spec workgroup.
> Here's what I propose:
>     <complexType name="PropertyType">
>         <complexContent>
>             <extension base="anyType">
>                 <attribute name="name" type="NCName" use="required" />
>                 <attribute name="type" type="QName" use="required" />
>                 <attribute name="many" type="boolean" default="false" 
> use="optional" />
>                 <attribute name="override" type="sca:OverrideOptions" 
> default="may" use="optional" />
>                 <anyAttribute namespace="##any" processContents="lax" />
>             </extension>
>         </complexContent>
>     </complexType>
>     <complexType name="Property">
>         <complexContent>
>             <extension base="anyType">
>                 <attribute name="name" type="NCName" use="required" />
>                 <attribute name="source" type="string" use="optional" />
>                 <anyAttribute namespace="##any" processContents="lax" />
>             </extension>
>         </complexContent>
>     </complexType>
> Note: I also propose to change the definition of PropertyType and Property to 
> extend anyType instead of containing an <xsd:any>. The way the 0.95 XSD is 
> defined you cannot assign a simple value to a property or define a simple 
> default value on a property... for example the following SCDL will cause an 
> XMLSchema validation error complaining that property can only contain 
> "element only" content:
>       <property name="currency" type="xs:string">USD</property>
> I'm not an XSD expert so maybe there's a better - simpler? :) way to support 
> this very simple case than extending anyType... but this definitely needs to 
> be fixed.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://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