xsd/sca-core-1.1-cd05.xsd (403 lines of code) (raw):

<?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"> <include schemaLocation="sca-policy-1.1-cd03.xsd"/> <import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="external/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> </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 ref="sca:requires"/> <element ref="sca:policySetAttachment"/> <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="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" /> <element ref="sca:requires" minOccurs="0" maxOccurs="unbounded"/> <element ref="sca:policySetAttachment" minOccurs="0" maxOccurs="unbounded"/> <element ref="sca:extensions" minOccurs="0" maxOccurs="1" /> </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"> <choice minOccurs="0" maxOccurs="unbounded"> <element ref="sca:requires"/> <element ref="sca:policySetAttachment"/> </choice> <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="target" type="sca:listOfAnyURIs" use="optional"/> <attribute name="wiredByImpl" type="boolean" use="optional" default="false"/> <attribute name="multiplicity" type="sca:Multiplicity" use="required"/> <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="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="value" type="anySimpleType" use="optional"/> <anyAttribute namespace="##other" processContents="lax"/> </complexType> <complexType name="Property" mixed="true"> <complexContent mixed="true"> <extension base="sca:SCAPropertyBase"> <attribute name="mustSupply" type="boolean" use="optional" default="false"/> </extension> </complexContent> </complexType> <complexType name="PropertyValue" mixed="true"> <complexContent mixed="true"> <extension base="sca:SCAPropertyBase"> <attribute name="source" type="string" use="optional"/> <attribute name="file" type="anyURI" use="optional"/> </extension> </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" /> <element ref="sca:requires" minOccurs="0" maxOccurs="unbounded"/> <element ref="sca:policySetAttachment" minOccurs="0" maxOccurs="unbounded"/> </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"/> <element ref="sca:requires"/> <element ref="sca:policySetAttachment"/> <!-- 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="1" maxOccurs="1"/> <choice minOccurs="0" maxOccurs="unbounded"> <element name="service" type="sca:ComponentService"/> <element name="reference" type="sca:ComponentReference"/> <element name="property" type="sca:PropertyValue"/> <element ref="sca:requires"/> <element ref="sca:policySetAttachment"/> </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="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> <!-- 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> <!-- 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"/> <element ref="sca:requires" minOccurs="0" maxOccurs="unbounded"/> <element ref="sca:policySetAttachment" minOccurs="0" maxOccurs="unbounded"/> <element ref="sca:extensions" minOccurs="0" maxOccurs="1" /> </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"> <choice minOccurs="0" maxOccurs="unbounded"> <element ref="sca:requires"/> <element ref="sca:policySetAttachment"/> </choice> <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> <!-- Extensions element --> <element name="extensions"> <complexType> <sequence> <any namespace="##other" processContents="lax" minOccurs="1" maxOccurs="unbounded"/> </sequence> </complexType> </element> <!-- 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>