summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoredwardsmj <edwardsmj@13f79535-47bb-0310-9956-ffa450edef68>2009-04-22 09:24:08 +0000
committeredwardsmj <edwardsmj@13f79535-47bb-0310-9956-ffa450edef68>2009-04-22 09:24:08 +0000
commit03754e53289fc27324c4fe7885627e4a24716b30 (patch)
treef43c21ae8901da368ff298f6045e8261fea688e8
parent74771851ef918985dd249dc32b74a38111f25d4e (diff)
Fixes to SCA Core XSD, to match recent Issues resolved in OASIS Assembly TC
git-svn-id: http://svn.us.apache.org/repos/asf/tuscany@767429 13f79535-47bb-0310-9956-ffa450edef68
-rw-r--r--java/sca/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd03.xsd1047
1 files changed, 529 insertions, 518 deletions
diff --git a/java/sca/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd03.xsd b/java/sca/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd03.xsd
index 6c9e75c9df..0c5f75e56f 100644
--- a/java/sca/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd03.xsd
+++ b/java/sca/modules/assembly-xsd/src/main/resources/sca-core-1.1-cd03.xsd
@@ -1,518 +1,529 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- Copyright(C) OASIS(R) 2005,2009. All Rights Reserved.
- OASIS trademark, IPR and other policies apply. -->
-<schema xmlns="http://www.w3.org/2001/XMLSchema"
- xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903"
- targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200903"
- elementFormDefault="qualified">
-
- <import namespace="http://www.w3.org/XML/1998/namespace"
- schemaLocation="http://www.w3.org/2001/xml.xsd"/>
-
- <!-- Common extension base for SCA definitions -->
- <complexType name="CommonExtensionBase">
- <sequence>
- <element ref="sca:documentation" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <anyAttribute namespace="##other" processContents="lax"/>
- </complexType>
-
- <element name="documentation" type="sca:Documentation"/>
- <complexType name="Documentation" mixed="true">
- <sequence>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute ref="xml:lang"/>
- </complexType>
-
- <!-- Component Type -->
- <element name="componentType" type="sca:ComponentType"/>
- <complexType name="ComponentType">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <element ref="sca:implementation" minOccurs="0"/>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="service" type="sca:ComponentService"/>
- <element name="reference"
- type="sca:ComponentTypeReference"/>
- <element name="property" type="sca:Property"/>
- </choice>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="constrainingType" type="QName" use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Composite -->
- <element name="composite" type="sca:Composite"/>
- <complexType name="Composite">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <element name="include" type="anyURI" minOccurs="0"
- maxOccurs="unbounded"/>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="service" type="sca:Service"/>
- <element name="property" type="sca:Property"/>
- <element name="component" type="sca:Component"/>
- <element name="reference" type="sca:Reference"/>
- <element name="wire" type="sca:Wire"/>
- </choice>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="name" type="NCName" use="required"/>
- <attribute name="targetNamespace" type="anyURI" use="required"/>
- <attribute name="local" type="boolean" use="optional"
- default="false"/>
- <attribute name="autowire" type="boolean" use="optional"
- default="false"/>
- <attribute name="constrainingType" type="QName" use="optional"/>
- <attribute name="requires" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Contract base type for Service, Reference -->
- <complexType name="Contract" abstract="true">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
- <element ref="sca:binding" minOccurs="0"
- maxOccurs="unbounded" />
- <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"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Service -->
- <complexType name="Service">
- <complexContent>
- <extension base="sca:Contract">
- <attribute name="promote" type="anyURI" use="required"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Interface -->
- <element name="interface" type="sca:Interface" abstract="true"/>
- <complexType name="Interface" abstract="true">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <attribute name="remotable" type="boolean" use="optional"/>
- <attribute name="requires" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Reference -->
- <complexType name="Reference">
- <complexContent>
- <extension base="sca:Contract">
- <attribute name="autowire" type="boolean" use="optional"/>
- <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>
-
- <!-- Property -->
- <complexType name="SCAPropertyBase" mixed="true">
- <sequence>
- <any namespace="##any" processContents="lax" minOccurs="0"/>
- <!-- NOT an extension point; This any exists to accept
- the element-based or complex type property
- i.e. no element-based extension point under "sca:property" -->
- </sequence>
- <!-- mixed="true" to handle simple type -->
- <attribute name="requires" type="sca:listOfQNames" use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
- </complexType>
-
- <complexType name="Property" mixed="true">
- <complexContent mixed="true">
- <extension base="sca:SCAPropertyBase">
- <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" use="optional"
- default="false"/>
- <attribute name="mustSupply" type="boolean" use="optional"
- default="false"/>
- <anyAttribute namespace="##any" processContents="lax"/>
- </extension>
- <!-- extension defines the place to hold default value -->
- <!-- an extension point ; attribute-based only -->
- </complexContent>
- </complexType>
-
- <!-- ConstrainingProperty is equivalent to the Property type but removes
- the capability to contain a value -->
- <complexType name="ConstrainingProperty" mixed="true">
- <complexContent mixed="true">
- <restriction base="sca:Property">
- <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" use="optional"
- default="false"/>
- <attribute name="mustSupply" type="boolean" use="optional"
- default="false"/>
- <anyAttribute namespace="##any" processContents="lax"/>
- </restriction>
- </complexContent>
- </complexType>
-
- <complexType name="PropertyValue" mixed="true">
- <complexContent mixed="true">
- <extension base="sca:SCAPropertyBase">
- <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" use="optional"
- default="false"/>
- <attribute name="source" type="string" use="optional"/>
- <attribute name="file" type="anyURI" use="optional"/>
- <anyAttribute namespace="##any" processContents="lax"/>
- </extension>
- <!-- an extension point ; attribute-based only -->
- </complexContent>
- </complexType>
-
- <!-- Binding -->
- <element name="binding" type="sca:Binding" abstract="true"/>
- <complexType name="Binding" abstract="true">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <element ref="sca:wireFormat" minOccurs="0" maxOccurs="1" />
- <element ref="sca:operationSelector" minOccurs="0"
- maxOccurs="1" />
- </sequence>
- <attribute name="uri" type="anyURI" use="optional"/>
- <attribute name="name" type="NCName" use="optional"/>
- <attribute name="requires" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Binding Type -->
- <element name="bindingType" type="sca:BindingType"/>
- <complexType name="BindingType">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="type" type="QName" use="required"/>
- <attribute name="alwaysProvides" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="mayProvide" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- WireFormat Type -->
- <element name="wireFormat" type="sca:WireFormatType"/>
- <complexType name="WireFormatType" abstract="true">
- <sequence>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded" />
- </sequence>
- <anyAttribute namespace="##other" processContents="lax"/>
- </complexType>
-
- <!-- OperationSelector Type -->
- <element name="operationSelector" type="sca:OperationSelectorType"/>
- <complexType name="OperationSelectorType" abstract="true">
- <sequence>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded" />
- </sequence>
- <anyAttribute namespace="##other" processContents="lax"/>
- </complexType>
-
- <!-- Callback -->
- <element name="callback" type="sca:Callback"/>
- <complexType name="Callback">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <choice minOccurs="0" maxOccurs="unbounded">
- <element ref="sca:binding"/>
- <any namespace="##other" processContents="lax"/>
- </choice>
- <attribute name="requires" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Component -->
- <complexType name="Component">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <element ref="sca:implementation" minOccurs="0"/>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="service" type="sca:ComponentService"/>
- <element name="reference" type="sca:ComponentReference"/>
- <element name="property" type="sca:PropertyValue"/>
- </choice>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="name" type="NCName" use="required"/>
- <attribute name="autowire" type="boolean" use="optional"/>
- <attribute name="constrainingType" type="QName" use="optional"/>
- <attribute name="requires" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Component Service -->
- <complexType name="ComponentService">
- <complexContent>
- <extension base="sca:Contract">
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Constraining Service -->
- <complexType name="ConstrainingService">
- <complexContent>
- <restriction base="sca:ComponentService">
- <sequence>
- <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
- <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" />
- </restriction>
- </complexContent>
- </complexType>
-
-
- <!-- Component Reference -->
- <complexType name="ComponentReference">
- <complexContent>
- <extension base="sca:Contract">
- <attribute name="autowire" type="boolean" use="optional"/>
- <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="nonOverridable" type="boolean" use="optional"
- default="false"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Constraining Reference -->
- <complexType name="ConstrainingReference">
- <complexContent>
- <restriction base="sca:ComponentReference">
- <sequence>
- <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
- <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="autowire" type="boolean" use="optional"/>
- <attribute name="wiredByImpl" type="boolean" use="optional"
- default="false"/>
- <attribute name="multiplicity" type="sca:Multiplicity"
- use="optional" default="1..1"/>
- </restriction>
- </complexContent>
- </complexType>
-
- <!-- Component Type Reference -->
- <complexType name="ComponentTypeReference">
- <complexContent>
- <restriction base="sca:ComponentReference">
- <sequence>
- <element ref="sca:documentation" minOccurs="0"
- maxOccurs="unbounded"/>
- <element ref="sca:interface" minOccurs="0"/>
- <element ref="sca:binding" minOccurs="0"
- maxOccurs="unbounded"/>
- <element ref="sca:callback" minOccurs="0"/>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="name" type="NCName" use="required"/>
- <attribute name="autowire" type="boolean" use="optional"/>
- <attribute name="wiredByImpl" type="boolean" use="optional"
- default="false"/>
- <attribute name="multiplicity" type="sca:Multiplicity"
- use="optional" default="1..1"/>
- <attribute name="requires" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames"
- use="optional"/>
- <anyAttribute namespace="##other" processContents="lax"/>
- </restriction>
- </complexContent>
- </complexType>
-
-
- <!-- Implementation -->
- <element name="implementation" type="sca:Implementation" abstract="true"/>
- <complexType name="Implementation" abstract="true">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <attribute name="requires" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="policySets" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Implementation Type -->
- <element name="implementationType" type="sca:ImplementationType"/>
- <complexType name="ImplementationType">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="type" type="QName" use="required"/>
- <attribute name="alwaysProvides" type="sca:listOfQNames"
- use="optional"/>
- <attribute name="mayProvide" type="sca:listOfQNames"
- use="optional"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Wire -->
- <complexType name="Wire">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="source" type="anyURI" use="required"/>
- <attribute name="target" type="anyURI" use="required"/>
- <attribute name="replace" type="boolean" use="optional"
- default="false"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Include -->
- <element name="include" type="sca:Include"/>
- <complexType name="Include">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <attribute name="name" type="QName"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Constraining Type -->
- <element name="constrainingType" type="sca:ConstrainingType"/>
- <complexType name="ConstrainingType">
- <complexContent>
- <extension base="sca:CommonExtensionBase">
- <sequence>
- <choice minOccurs="0" maxOccurs="unbounded">
- <element name="service" type="sca:ConstrainingService"/>
- <element name="reference"
- type="sca:ConstrainingReference"/>
- <element name="property" type="sca:ConstrainingProperty"/>
- </choice>
- <any namespace="##other" processContents="lax" minOccurs="0"
- maxOccurs="unbounded"/>
- </sequence>
- <attribute name="name" type="NCName" use="required"/>
- <attribute name="targetNamespace" type="anyURI"/>
- </extension>
- </complexContent>
- </complexType>
-
- <!-- Intents within WSDL documents -->
- <attribute name="requires" type="sca:listOfQNames"/>
-
- <!-- Global attribute definition for @callback to mark a WSDL port type
- as having a callback interface defined in terms of a second port
- type. -->
- <attribute name="callback" type="anyURI"/>
-
- <!-- Miscellaneous simple type definitions -->
- <simpleType name="Multiplicity">
- <restriction base="string">
- <enumeration value="0..1"/>
- <enumeration value="1..1"/>
- <enumeration value="0..n"/>
- <enumeration value="1..n"/>
- </restriction>
- </simpleType>
-
- <simpleType name="OverrideOptions">
- <restriction base="string">
- <enumeration value="no"/>
- <enumeration value="may"/>
- <enumeration value="must"/>
- </restriction>
- </simpleType>
-
- <simpleType name="listOfQNames">
- <list itemType="QName"/>
- </simpleType>
-
- <simpleType name="listOfAnyURIs">
- <list itemType="anyURI"/>
- </simpleType>
-
- <simpleType name="CreateResource">
- <restriction base="string">
- <enumeration value="always" />
- <enumeration value="never" />
- <enumeration value="ifnotexist" />
- </restriction>
- </simpleType>
-</schema>
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright(C) OASIS(R) 2005,2009. All Rights Reserved.
+ OASIS trademark, IPR and other policies apply. -->
+<schema xmlns="http://www.w3.org/2001/XMLSchema"
+ xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903"
+ targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200903"
+ elementFormDefault="qualified">
+
+ <import namespace="http://www.w3.org/XML/1998/namespace"
+ schemaLocation="http://www.w3.org/2001/xml.xsd"/>
+
+ <!-- Common extension base for SCA definitions -->
+ <complexType name="CommonExtensionBase">
+ <sequence>
+ <element ref="sca:documentation" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <anyAttribute namespace="##other" processContents="lax"/>
+ </complexType>
+
+ <element name="documentation" type="sca:Documentation"/>
+ <complexType name="Documentation" mixed="true">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute ref="xml:lang"/>
+ </complexType>
+
+ <!-- Component Type -->
+ <element name="componentType" type="sca:ComponentType"/>
+ <complexType name="ComponentType">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <element ref="sca:implementation" minOccurs="0"/>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="service" type="sca:ComponentService"/>
+ <element name="reference"
+ type="sca:ComponentTypeReference"/>
+ <element name="property" type="sca:Property"/>
+ </choice>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="constrainingType" type="QName" use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Composite -->
+ <element name="composite" type="sca:Composite"/>
+ <complexType name="Composite">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <element ref="sca:include" minOccurs="0"
+ maxOccurs="unbounded"/>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="service" type="sca:Service"/>
+ <element name="property" type="sca:Property"/>
+ <element name="component" type="sca:Component"/>
+ <element name="reference" type="sca:Reference"/>
+ <element name="wire" type="sca:Wire"/>
+ </choice>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="targetNamespace" type="anyURI" use="required"/>
+ <attribute name="local" type="boolean" use="optional"
+ default="false"/>
+ <attribute name="autowire" type="boolean" use="optional"
+ default="false"/>
+ <attribute name="constrainingType" type="QName" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Contract base type for Service, Reference -->
+ <complexType name="Contract" abstract="true">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
+ <element ref="sca:binding" minOccurs="0"
+ maxOccurs="unbounded" />
+ <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"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Service -->
+ <complexType name="Service">
+ <complexContent>
+ <extension base="sca:Contract">
+ <attribute name="promote" type="anyURI" use="required"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Interface -->
+ <element name="interface" type="sca:Interface" abstract="true"/>
+ <complexType name="Interface" abstract="true">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <attribute name="remotable" type="boolean" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Reference -->
+ <complexType name="Reference">
+ <complexContent>
+ <extension base="sca:Contract">
+ <attribute name="autowire" type="boolean" use="optional"/>
+ <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>
+
+ <!-- Property -->
+ <complexType name="SCAPropertyBase" mixed="true">
+ <sequence>
+ <any namespace="##any" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ <!-- NOT an extension point; This any exists to accept
+ the element-based or complex type property
+ i.e. no element-based extension point under "sca:property" -->
+ </sequence>
+ <!-- mixed="true" to handle simple type -->
+ <attribute name="requires" type="sca:listOfQNames" use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames" use="optional"/>
+ </complexType>
+
+ <complexType name="Property" mixed="true">
+ <complexContent mixed="true">
+ <extension base="sca:SCAPropertyBase">
+ <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" use="optional"
+ default="false"/>
+ <attribute name="mustSupply" type="boolean" use="optional"
+ default="false"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ <!-- extension defines the place to hold default value -->
+ <!-- an extension point ; attribute-based only -->
+ </complexContent>
+ </complexType>
+
+ <!-- ConstrainingProperty is equivalent to the Property type but removes
+ the capability to contain a value -->
+ <complexType name="ConstrainingProperty" mixed="true">
+ <complexContent mixed="true">
+ <restriction base="sca:Property">
+ <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" use="optional"
+ default="false"/>
+ <attribute name="mustSupply" type="boolean" use="optional"
+ default="false"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <complexType name="PropertyValue" mixed="true">
+ <complexContent mixed="true">
+ <extension base="sca:SCAPropertyBase">
+ <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" use="optional"
+ default="false"/>
+ <attribute name="source" type="string" use="optional"/>
+ <attribute name="file" type="anyURI" use="optional"/>
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </extension>
+ <!-- an extension point ; attribute-based only -->
+ </complexContent>
+ </complexType>
+
+ <!-- Binding -->
+ <element name="binding" type="sca:Binding" abstract="true"/>
+ <complexType name="Binding" abstract="true">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <element ref="sca:wireFormat" minOccurs="0" maxOccurs="1" />
+ <element ref="sca:operationSelector" minOccurs="0"
+ maxOccurs="1" />
+ </sequence>
+ <attribute name="uri" type="anyURI" use="optional"/>
+ <attribute name="name" type="NCName" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Binding Type -->
+ <element name="bindingType" type="sca:BindingType"/>
+ <complexType name="BindingType">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="type" type="QName" use="required"/>
+ <attribute name="alwaysProvides" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="mayProvide" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- WireFormat Type -->
+ <element name="wireFormat" type="sca:WireFormatType"/>
+ <complexType name="WireFormatType" abstract="true">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded" />
+ </sequence>
+ <anyAttribute namespace="##other" processContents="lax"/>
+ </complexType>
+
+ <!-- OperationSelector Type -->
+ <element name="operationSelector" type="sca:OperationSelectorType"/>
+ <complexType name="OperationSelectorType" abstract="true">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded" />
+ </sequence>
+ <anyAttribute namespace="##other" processContents="lax"/>
+ </complexType>
+
+ <!-- Callback -->
+ <element name="callback" type="sca:Callback"/>
+ <complexType name="Callback">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element ref="sca:binding"/>
+ <any namespace="##other" processContents="lax"/>
+ </choice>
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Component -->
+ <complexType name="Component">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <element ref="sca:implementation" minOccurs="0"/>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="service" type="sca:ComponentService"/>
+ <element name="reference" type="sca:ComponentReference"/>
+ <element name="property" type="sca:PropertyValue"/>
+ </choice>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="autowire" type="boolean" use="optional"/>
+ <attribute name="constrainingType" type="QName" use="optional"/>
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Component Service -->
+ <complexType name="ComponentService">
+ <complexContent>
+ <extension base="sca:Contract">
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Constraining Service -->
+ <complexType name="ConstrainingService">
+ <complexContent>
+ <restriction base="sca:ComponentService">
+ <sequence>
+ <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
+ <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" />
+ </restriction>
+ </complexContent>
+ </complexType>
+
+
+ <!-- Component Reference -->
+ <complexType name="ComponentReference">
+ <complexContent>
+ <extension base="sca:Contract">
+ <attribute name="autowire" type="boolean" use="optional"/>
+ <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="nonOverridable" type="boolean" use="optional"
+ default="false"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Constraining Reference -->
+ <complexType name="ConstrainingReference">
+ <complexContent>
+ <restriction base="sca:ComponentReference">
+ <sequence>
+ <element ref="sca:interface" minOccurs="0" maxOccurs="1" />
+ <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="autowire" type="boolean" use="optional"/>
+ <attribute name="wiredByImpl" type="boolean" use="optional"
+ default="false"/>
+ <attribute name="multiplicity" type="sca:Multiplicity"
+ use="optional" default="1..1"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+ <!-- Component Type Reference -->
+ <complexType name="ComponentTypeReference">
+ <complexContent>
+ <restriction base="sca:ComponentReference">
+ <sequence>
+ <element ref="sca:documentation" minOccurs="0"
+ maxOccurs="unbounded"/>
+ <element ref="sca:interface" minOccurs="0"/>
+ <element ref="sca:binding" minOccurs="0"
+ maxOccurs="unbounded"/>
+ <element ref="sca:callback" minOccurs="0"/>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="autowire" type="boolean" use="optional"/>
+ <attribute name="wiredByImpl" type="boolean" use="optional"
+ default="false"/>
+ <attribute name="multiplicity" type="sca:Multiplicity"
+ use="optional" default="1..1"/>
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ <anyAttribute namespace="##other" processContents="lax"/>
+ </restriction>
+ </complexContent>
+ </complexType>
+
+
+ <!-- Implementation -->
+ <element name="implementation" type="sca:Implementation" abstract="true"/>
+ <complexType name="Implementation" abstract="true">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <attribute name="requires" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="policySets" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Implementation Type -->
+ <element name="implementationType" type="sca:ImplementationType"/>
+ <complexType name="ImplementationType">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="type" type="QName" use="required"/>
+ <attribute name="alwaysProvides" type="sca:listOfQNames"
+ use="optional"/>
+ <attribute name="mayProvide" type="sca:listOfQNames"
+ use="optional"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Wire -->
+ <complexType name="Wire">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="source" type="anyURI" use="required"/>
+ <attribute name="target" type="anyURI" use="required"/>
+ <attribute name="replace" type="boolean" use="optional"
+ default="false"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Include -->
+ <element name="include" type="sca:Include"/>
+ <complexType name="Include">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <attribute name="name" type="QName"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Constraining Type -->
+ <element name="constrainingType" type="sca:ConstrainingType"/>
+ <complexType name="ConstrainingType">
+ <complexContent>
+ <extension base="sca:CommonExtensionBase">
+ <sequence>
+ <choice minOccurs="0" maxOccurs="unbounded">
+ <element name="service" type="sca:ConstrainingService"/>
+ <element name="reference"
+ type="sca:ConstrainingReference"/>
+ <element name="property" type="sca:ConstrainingProperty"/>
+ </choice>
+ <any namespace="##other" processContents="lax" minOccurs="0"
+ maxOccurs="unbounded"/>
+ </sequence>
+ <attribute name="name" type="NCName" use="required"/>
+ <attribute name="targetNamespace" type="anyURI"/>
+ </extension>
+ </complexContent>
+ </complexType>
+
+ <!-- Intents within WSDL documents -->
+ <attribute name="requires" type="sca:listOfQNames"/>
+
+ <!-- Global attribute definition for @callback to mark a WSDL port type
+ as having a callback interface defined in terms of a second port
+ type. -->
+ <attribute name="callback" type="anyURI"/>
+
+ <!-- Value type definition for property values -->
+ <element name="value" type="sca:ValueType"/>
+ <complexType name="ValueType" mixed="true">
+ <sequence>
+ <any namespace="##any" processContents="lax" minOccurs="0" maxOccurs='unbounded'/>
+ </sequence>
+ <!-- mixed="true" to handle simple type -->
+ <anyAttribute namespace="##any" processContents="lax"/>
+ </complexType>
+
+ <!-- Miscellaneous simple type definitions -->
+ <simpleType name="Multiplicity">
+ <restriction base="string">
+ <enumeration value="0..1"/>
+ <enumeration value="1..1"/>
+ <enumeration value="0..n"/>
+ <enumeration value="1..n"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="OverrideOptions">
+ <restriction base="string">
+ <enumeration value="no"/>
+ <enumeration value="may"/>
+ <enumeration value="must"/>
+ </restriction>
+ </simpleType>
+
+ <simpleType name="listOfQNames">
+ <list itemType="QName"/>
+ </simpleType>
+
+ <simpleType name="listOfAnyURIs">
+ <list itemType="anyURI"/>
+ </simpleType>
+
+ <simpleType name="CreateResource">
+ <restriction base="string">
+ <enumeration value="always" />
+ <enumeration value="never" />
+ <enumeration value="ifnotexist" />
+ </restriction>
+ </simpleType>
+</schema>