blob: 81d7eb346c0eb4d8859ab13d021f77e266445fcb [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright(C) OASIS(R) 2005,2010. All Rights Reserved.
OASIS trademark, IPR and other policies apply. -->
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200912"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
elementFormDefault="qualified">
<include schemaLocation="sca-core-1.1-cd05.xsd"/>
<import namespace="http://www.w3.org/ns/ws-policy"
schemaLocation="external/ws-policy.xsd"/>
<element name="intent" type="sca:Intent"/>
<complexType name="Intent">
<sequence>
<element name="description" type="string" minOccurs="0"
maxOccurs="1" />
<element name="qualifier" type="sca:IntentQualifier"
minOccurs="0" maxOccurs="unbounded" />
<any namespace="##other" processContents="lax"
minOccurs="0" maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="NCName" use="required"/>
<attribute name="constrains" type="sca:listOfQNames"
use="optional"/>
<attribute name="requires" type="sca:listOfQNames"
use="optional"/>
<attribute name="excludes" type="sca:listOfQNames"
use="optional"/>
<attribute name="mutuallyExclusive" type="boolean"
use="optional" default="false"/>
<attribute name="intentType"
type="sca:InteractionOrImplementation"
use="optional" default="interaction"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="IntentQualifier">
<sequence>
<element name="description" type="string" minOccurs="0"
maxOccurs="1" />
<any namespace="##other" processContents="lax" minOccurs="0"
maxOccurs="unbounded"/>
</sequence>
<attribute name="name" type="NCName" use="required"/>
<attribute name="default" type="boolean" use="optional"
default="false"/>
</complexType>
<element name="requires">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<any namespace="##other" processContents="lax"/>
</sequence>
<attribute name="intents" type="sca:listOfQNames" use="required"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
</element>
<element name="policySet" type="sca:PolicySet"/>
<complexType name="PolicySet">
<choice minOccurs="0" maxOccurs="unbounded">
<element name="policySetReference"
type="sca:PolicySetReference"/>
<element name="intentMap" type="sca:IntentMap"/>
<any namespace="##other" processContents="lax"/>
</choice>
<attribute name="name" type="NCName" use="required"/>
<attribute name="provides" type="sca:listOfQNames"/>
<attribute name="appliesTo" type="string" use="optional"/>
<attribute name="attachTo" type="string" use="optional"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<element name="policySetAttachment">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<any namespace="##other" processContents="lax"/>
</sequence>
<attribute name="name" type="QName" use="required"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
</element>
<complexType name="PolicySetReference">
<attribute name="name" type="QName" use="required"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="IntentMap">
<choice minOccurs="1" maxOccurs="unbounded">
<element name="qualifier" type="sca:Qualifier"/>
<any namespace="##other" processContents="lax"/>
</choice>
<attribute name="provides" type="QName" use="required"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<complexType name="Qualifier">
<sequence minOccurs="0" maxOccurs="unbounded">
<any namespace="##other" processContents="lax"/>
</sequence>
<attribute name="name" type="string" use="required"/>
<anyAttribute namespace="##other" processContents="lax"/>
</complexType>
<simpleType name="listOfNCNames">
<list itemType="NCName"/>
</simpleType>
<simpleType name="InteractionOrImplementation">
<restriction base="string">
<enumeration value="interaction"/>
<enumeration value="implementation"/>
</restriction>
</simpleType>
</schema>