summaryrefslogtreecommitdiffstats
path: root/sca-cpp/trunk/xsd/sca-policy-1.1-cd03.xsd
blob: 81d7eb346c0eb4d8859ab13d021f77e266445fcb (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
<?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>