diff options
Diffstat (limited to '')
-rw-r--r-- | sca-cpp/branches/cpp-contrib/xsd/sca-core-1.1-cd04.xsd | 534 |
1 files changed, 534 insertions, 0 deletions
diff --git a/sca-cpp/branches/cpp-contrib/xsd/sca-core-1.1-cd04.xsd b/sca-cpp/branches/cpp-contrib/xsd/sca-core-1.1-cd04.xsd new file mode 100644 index 0000000000..158daff214 --- /dev/null +++ b/sca-cpp/branches/cpp-contrib/xsd/sca-core-1.1-cd04.xsd @@ -0,0 +1,534 @@ +<?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/200912" + targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200912" + 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> + <!-- Comment out the sca:implementation to workaround http://www.mail-archive.com/dev@tuscany.apache.org/msg08924.html. --> + <!-- + <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="##other" 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="##other" 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"/> + <attribute name="value" type="string" use="optional"/> + <anyAttribute namespace="##other" 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" abstract="true"/> + <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" abstract="true"/> + <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> + <!-- Set minOccurs="1" instead of "0" to workaround http://www.mail-archive.com/dev@tuscany.apache.org/msg08924.html. --> + <element ref="sca:implementation" minOccurs="1"/> + <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> |