8bed0e0a256327f1416720613393aa0ca1954d2d
[vfc/nfvo/wfengine.git] / winery / org.eclipse.winery.common / src / main / resources / TOSCA-v1.0.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3         Topology and Orchestration Specification for Cloud Applications Version 1.0
4         Committee Specification Draft 08
5         09 May 2013
6         Copyright (c) OASIS Open 2013. All rights reserved.
7      Source: http://docs.oasis-open.org/tosca/TOSCA/v1.0/csd08/schemas/
8 -->
9 <xs:schema targetNamespace="http://docs.oasis-open.org/tosca/ns/2011/12" elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns="http://docs.oasis-open.org/tosca/ns/2011/12" xmlns:xs="http://www.w3.org/2001/XMLSchema">
10  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
11  <xs:element name="documentation" type="tDocumentation"/>
12  <xs:complexType name="tDocumentation" mixed="true">
13   <xs:sequence>
14    <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
15   </xs:sequence>
16   <xs:attribute name="source" type="xs:anyURI"/>
17   <xs:attribute ref="xml:lang"/>
18  </xs:complexType>
19  <xs:complexType name="tExtensibleElements">
20   <xs:sequence>
21    <xs:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
22    <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
23   </xs:sequence>
24   <xs:anyAttribute namespace="##other" processContents="lax"/>
25  </xs:complexType>
26  <xs:complexType name="tImport">
27   <xs:complexContent>
28    <xs:extension base="tExtensibleElements">
29     <xs:attribute name="namespace" type="xs:anyURI"/>
30     <xs:attribute name="location" type="xs:anyURI"/>
31     <xs:attribute name="importType" type="importedURI" use="required"/>
32    </xs:extension>
33   </xs:complexContent>
34  </xs:complexType>
35  <xs:element name="Definitions">
36   <xs:complexType>
37    <xs:complexContent>
38     <xs:extension base="tDefinitions"/>
39    </xs:complexContent>
40   </xs:complexType>
41  </xs:element>
42  <xs:complexType name="tDefinitions">
43   <xs:complexContent>
44    <xs:extension base="tExtensibleElements">
45     <xs:sequence>
46      <xs:element name="Extensions" minOccurs="0">
47       <xs:complexType>
48        <xs:sequence>
49         <xs:element name="Extension" type="tExtension" maxOccurs="unbounded"/>
50        </xs:sequence>
51       </xs:complexType>
52      </xs:element>
53      <xs:element name="Import" type="tImport" minOccurs="0" maxOccurs="unbounded"/>
54      <xs:element name="Types" minOccurs="0">
55       <xs:complexType>
56        <xs:sequence>
57         <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
58        </xs:sequence>
59       </xs:complexType>
60      </xs:element>
61      <xs:choice maxOccurs="unbounded">
62       <xs:element name="ServiceTemplate" type="tServiceTemplate"/>
63       <xs:element name="NodeType" type="tNodeType"/>
64       <xs:element name="NodeTypeImplementation" type="tNodeTypeImplementation"/>
65       <xs:element name="RelationshipType" type="tRelationshipType"/>
66       <xs:element name="RelationshipTypeImplementation" type="tRelationshipTypeImplementation"/>
67       <xs:element name="RequirementType" type="tRequirementType"/>
68       <xs:element name="CapabilityType" type="tCapabilityType"/>
69       <xs:element name="ArtifactType" type="tArtifactType"/>
70       <xs:element name="ArtifactTemplate" type="tArtifactTemplate"/>
71       <xs:element name="PolicyType" type="tPolicyType"/>
72       <xs:element name="PolicyTemplate" type="tPolicyTemplate"/>
73      </xs:choice>
74     </xs:sequence>
75     <xs:attribute name="id" type="xs:ID" use="required"/>
76     <xs:attribute name="name" type="xs:string" use="optional"/>
77     <xs:attribute name="targetNamespace" type="xs:anyURI" use="required"/>
78    </xs:extension>
79   </xs:complexContent>
80  </xs:complexType>
81  <xs:complexType name="tServiceTemplate">
82   <xs:complexContent>
83    <xs:extension base="tExtensibleElements">
84     <xs:sequence>
85      <xs:element name="Tags" type="tTags" minOccurs="0"/>
86      <xs:element name="BoundaryDefinitions" type="tBoundaryDefinitions" minOccurs="0"/>
87      <xs:element name="TopologyTemplate" type="tTopologyTemplate"/>
88      <xs:element name="Plans" type="tPlans" minOccurs="0"/>
89     </xs:sequence>
90     <xs:attribute name="id" type="xs:ID" use="required"/>
91     <xs:attribute name="name" type="xs:string" use="optional"/>
92     <xs:attribute name="targetNamespace" type="xs:anyURI"/>
93     <xs:attribute name="substitutableNodeType" type="xs:QName" use="optional"/>
94    </xs:extension>
95   </xs:complexContent>
96  </xs:complexType>
97  <xs:complexType name="tTags">
98   <xs:sequence>
99    <xs:element name="Tag" type="tTag" maxOccurs="unbounded"/>
100   </xs:sequence>
101  </xs:complexType>
102  <xs:complexType name="tTag">
103   <xs:attribute name="name" type="xs:string" use="required"/>
104   <xs:attribute name="value" type="xs:string" use="required"/>
105  </xs:complexType>
106  <xs:complexType name="tBoundaryDefinitions">
107   <xs:sequence>
108    <xs:element name="Properties" minOccurs="0">
109     <xs:complexType>
110      <xs:sequence>
111       <xs:any namespace="##other"/>
112       <xs:element name="PropertyMappings" minOccurs="0">
113        <xs:complexType>
114         <xs:sequence>
115          <xs:element name="PropertyMapping" type="tPropertyMapping" maxOccurs="unbounded"/>
116         </xs:sequence>
117        </xs:complexType>
118       </xs:element>
119      </xs:sequence>
120     </xs:complexType>
121    </xs:element>
122    <xs:element name="PropertyConstraints" minOccurs="0">
123     <xs:complexType>
124      <xs:sequence>
125       <xs:element name="PropertyConstraint" type="tPropertyConstraint" maxOccurs="unbounded"/>
126      </xs:sequence>
127     </xs:complexType>
128    </xs:element>
129    <xs:element name="Requirements" minOccurs="0">
130     <xs:complexType>
131      <xs:sequence>
132       <xs:element name="Requirement" type="tRequirementRef" maxOccurs="unbounded"/>
133      </xs:sequence>
134     </xs:complexType>
135    </xs:element>
136    <xs:element name="Capabilities" minOccurs="0">
137     <xs:complexType>
138      <xs:sequence>
139       <xs:element name="Capability" type="tCapabilityRef" maxOccurs="unbounded"/>
140      </xs:sequence>
141     </xs:complexType>
142    </xs:element>
143    <xs:element name="Policies" minOccurs="0">
144     <xs:complexType>
145      <xs:sequence>
146       <xs:element name="Policy" type="tPolicy" maxOccurs="unbounded"/>
147      </xs:sequence>
148     </xs:complexType>
149    </xs:element>
150    <xs:element name="Interfaces" minOccurs="0">
151     <xs:complexType>
152      <xs:sequence>
153       <xs:element name="Interface" type="tExportedInterface" maxOccurs="unbounded"/>
154      </xs:sequence>
155     </xs:complexType>
156    </xs:element>
157   </xs:sequence>
158  </xs:complexType>
159  <xs:complexType name="tPropertyMapping">
160   <xs:attribute name="serviceTemplatePropertyRef" type="xs:string" use="required"/>
161   <xs:attribute name="targetObjectRef" type="xs:IDREF" use="required"/>
162   <xs:attribute name="targetPropertyRef" type="xs:string" use="required"/>
163  </xs:complexType>
164  <xs:complexType name="tRequirementRef">
165   <xs:attribute name="name" type="xs:string" use="optional"/>
166   <xs:attribute name="ref" type="xs:IDREF" use="required"/>
167  </xs:complexType>
168  <xs:complexType name="tCapabilityRef">
169   <xs:attribute name="name" type="xs:string" use="optional"/>
170   <xs:attribute name="ref" type="xs:IDREF" use="required"/>
171  </xs:complexType>
172  <xs:complexType name="tEntityType" abstract="true">
173   <xs:complexContent>
174    <xs:extension base="tExtensibleElements">
175     <xs:sequence>
176      <xs:element name="Tags" type="tTags" minOccurs="0"/>
177      <xs:element name="DerivedFrom" minOccurs="0">
178       <xs:complexType>
179        <xs:attribute name="typeRef" type="xs:QName" use="required"/>
180       </xs:complexType>
181      </xs:element>
182      <xs:element name="PropertiesDefinition" minOccurs="0">
183       <xs:complexType>
184        <xs:attribute name="element" type="xs:QName"/>
185        <xs:attribute name="type" type="xs:QName"/>
186       </xs:complexType>
187      </xs:element>
188     </xs:sequence>
189     <xs:attribute name="name" type="xs:NCName" use="required"/>
190     <xs:attribute name="abstract" type="tBoolean" default="no"/>
191     <xs:attribute name="final" type="tBoolean" default="no"/>
192     <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/>
193    </xs:extension>
194   </xs:complexContent>
195  </xs:complexType>
196  <xs:complexType name="tEntityTemplate" abstract="true">
197   <xs:complexContent>
198    <xs:extension base="tExtensibleElements">
199     <xs:sequence>
200      <xs:element name="Properties" minOccurs="0">
201       <xs:complexType>
202        <xs:sequence>
203         <xs:any namespace="##other" processContents="lax"/>
204        </xs:sequence>
205       </xs:complexType>
206      </xs:element>
207      <xs:element name="PropertyConstraints" minOccurs="0">
208       <xs:complexType>
209        <xs:sequence>
210         <xs:element name="PropertyConstraint" type="tPropertyConstraint" maxOccurs="unbounded"/>
211        </xs:sequence>
212       </xs:complexType>
213      </xs:element>
214     </xs:sequence>
215     <xs:attribute name="id" type="xs:ID" use="required"/>
216     <xs:attribute name="type" type="xs:QName" use="required"/>
217    </xs:extension>
218   </xs:complexContent>
219  </xs:complexType>
220  <xs:complexType name="tNodeTemplate">
221   <xs:complexContent>
222    <xs:extension base="tEntityTemplate">
223     <xs:sequence>
224      <xs:element name="Requirements" minOccurs="0">
225       <xs:complexType>
226        <xs:sequence>
227         <xs:element name="Requirement" type="tRequirement" maxOccurs="unbounded"/>
228        </xs:sequence>
229       </xs:complexType>
230      </xs:element>
231      <xs:element name="Capabilities" minOccurs="0">
232       <xs:complexType>
233        <xs:sequence>
234         <xs:element name="Capability" type="tCapability" maxOccurs="unbounded"/>
235        </xs:sequence>
236       </xs:complexType>
237      </xs:element>
238      <xs:element name="Policies" minOccurs="0">
239       <xs:complexType>
240        <xs:sequence>
241         <xs:element name="Policy" type="tPolicy" maxOccurs="unbounded"/>
242        </xs:sequence>
243       </xs:complexType>
244      </xs:element>
245      <xs:element name="DeploymentArtifacts" type="tDeploymentArtifacts" minOccurs="0"/>
246     </xs:sequence>
247     <xs:attribute name="name" type="xs:string" use="optional"/>
248     <xs:attribute name="minInstances" type="xs:int" use="optional" default="1"/>
249     <xs:attribute name="maxInstances" use="optional" default="1">
250      <xs:simpleType>
251       <xs:union>
252        <xs:simpleType>
253         <xs:restriction base="xs:nonNegativeInteger">
254          <xs:pattern value="([1-9]+[0-9]*)"/>
255         </xs:restriction>
256        </xs:simpleType>
257        <xs:simpleType>
258         <xs:restriction base="xs:string">
259          <xs:enumeration value="unbounded"/>
260         </xs:restriction>
261        </xs:simpleType>
262       </xs:union>
263      </xs:simpleType>
264     </xs:attribute>
265    </xs:extension>
266   </xs:complexContent>
267  </xs:complexType>
268  <xs:complexType name="tTopologyTemplate">
269   <xs:complexContent>
270    <xs:extension base="tExtensibleElements">
271     <xs:choice maxOccurs="unbounded">
272      <xs:element name="NodeTemplate" type="tNodeTemplate"/>
273      <xs:element name="RelationshipTemplate" type="tRelationshipTemplate"/>
274     </xs:choice>
275    </xs:extension>
276   </xs:complexContent>
277  </xs:complexType>
278  <xs:complexType name="tRelationshipType">
279   <xs:complexContent>
280    <xs:extension base="tEntityType">
281     <xs:sequence>
282      <xs:element name="InstanceStates" type="tTopologyElementInstanceStates" minOccurs="0"/>
283      <xs:element name="SourceInterfaces" minOccurs="0">
284       <xs:complexType>
285        <xs:sequence>
286         <xs:element name="Interface" type="tInterface" maxOccurs="unbounded"/>
287        </xs:sequence>
288       </xs:complexType>
289      </xs:element>
290      <xs:element name="TargetInterfaces" minOccurs="0">
291       <xs:complexType>
292        <xs:sequence>
293         <xs:element name="Interface" type="tInterface" maxOccurs="unbounded"/>
294        </xs:sequence>
295       </xs:complexType>
296      </xs:element>
297      <xs:element name="ValidSource" minOccurs="0">
298       <xs:complexType>
299        <xs:attribute name="typeRef" type="xs:QName" use="required"/>
300       </xs:complexType>
301      </xs:element>
302      <xs:element name="ValidTarget" minOccurs="0">
303       <xs:complexType>
304        <xs:attribute name="typeRef" type="xs:QName" use="required"/>
305       </xs:complexType>
306      </xs:element>
307     </xs:sequence>
308    </xs:extension>
309   </xs:complexContent>
310  </xs:complexType>
311  <xs:complexType name="tRelationshipTypeImplementation">
312   <xs:complexContent>
313    <xs:extension base="tExtensibleElements">
314     <xs:sequence>
315      <xs:element name="Tags" type="tTags" minOccurs="0"/>
316      <xs:element name="DerivedFrom" minOccurs="0">
317       <xs:complexType>
318        <xs:attribute name="relationshipTypeImplementationRef" type="xs:QName" use="required"/>
319       </xs:complexType>
320      </xs:element>
321      <xs:element name="RequiredContainerFeatures" type="tRequiredContainerFeatures" minOccurs="0"/>
322      <xs:element name="ImplementationArtifacts" type="tImplementationArtifacts" minOccurs="0"/>
323     </xs:sequence>
324     <xs:attribute name="name" type="xs:NCName" use="required"/>
325     <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/>
326     <xs:attribute name="relationshipType" type="xs:QName" use="required"/>
327     <xs:attribute name="abstract" type="tBoolean" use="optional" default="no"/>
328     <xs:attribute name="final" type="tBoolean" use="optional" default="no"/>
329    </xs:extension>
330   </xs:complexContent>
331  </xs:complexType>
332  <xs:complexType name="tRelationshipTemplate">
333   <xs:complexContent>
334    <xs:extension base="tEntityTemplate">
335     <xs:sequence>
336      <xs:element name="SourceElement">
337       <xs:complexType>
338        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
339       </xs:complexType>
340      </xs:element>
341      <xs:element name="TargetElement">
342       <xs:complexType>
343        <xs:attribute name="ref" type="xs:IDREF" use="required"/>
344       </xs:complexType>
345      </xs:element>
346      <xs:element name="RelationshipConstraints" minOccurs="0">
347       <xs:complexType>
348        <xs:sequence>
349         <xs:element name="RelationshipConstraint" maxOccurs="unbounded">
350          <xs:complexType>
351           <xs:sequence>
352            <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
353           </xs:sequence>
354           <xs:attribute name="constraintType" type="xs:anyURI" use="required"/>
355          </xs:complexType>
356         </xs:element>
357        </xs:sequence>
358       </xs:complexType>
359      </xs:element>
360     </xs:sequence>
361     <xs:attribute name="name" type="xs:string" use="optional"/>
362    </xs:extension>
363   </xs:complexContent>
364  </xs:complexType>
365  <xs:complexType name="tNodeType">
366   <xs:complexContent>
367    <xs:extension base="tEntityType">
368     <xs:sequence>
369      <xs:element name="RequirementDefinitions" minOccurs="0">
370       <xs:complexType>
371        <xs:sequence>
372         <xs:element name="RequirementDefinition" type="tRequirementDefinition" maxOccurs="unbounded"/>
373        </xs:sequence>
374       </xs:complexType>
375      </xs:element>
376      <xs:element name="CapabilityDefinitions" minOccurs="0">
377       <xs:complexType>
378        <xs:sequence>
379         <xs:element name="CapabilityDefinition" type="tCapabilityDefinition" maxOccurs="unbounded"/>
380        </xs:sequence>
381       </xs:complexType>
382      </xs:element>
383      <xs:element name="InstanceStates" type="tTopologyElementInstanceStates" minOccurs="0"/>
384      <xs:element name="Interfaces" minOccurs="0">
385       <xs:complexType>
386        <xs:sequence>
387         <xs:element name="Interface" type="tInterface" maxOccurs="unbounded"/>
388        </xs:sequence>
389       </xs:complexType>
390      </xs:element>
391     </xs:sequence>
392    </xs:extension>
393   </xs:complexContent>
394  </xs:complexType>
395  <xs:complexType name="tNodeTypeImplementation">
396   <xs:complexContent>
397    <xs:extension base="tExtensibleElements">
398     <xs:sequence>
399      <xs:element name="Tags" type="tTags" minOccurs="0"/>
400      <xs:element name="DerivedFrom" minOccurs="0">
401       <xs:complexType>
402        <xs:attribute name="nodeTypeImplementationRef" type="xs:QName" use="required"/>
403       </xs:complexType>
404      </xs:element>
405      <xs:element name="RequiredContainerFeatures" type="tRequiredContainerFeatures" minOccurs="0"/>
406      <xs:element name="ImplementationArtifacts" type="tImplementationArtifacts" minOccurs="0"/>
407      <xs:element name="DeploymentArtifacts" type="tDeploymentArtifacts" minOccurs="0"/>
408     </xs:sequence>
409     <xs:attribute name="name" type="xs:NCName" use="required"/>
410     <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/>
411     <xs:attribute name="nodeType" type="xs:QName" use="required"/>
412     <xs:attribute name="abstract" type="tBoolean" use="optional" default="no"/>
413     <xs:attribute name="final" type="tBoolean" use="optional" default="no"/>
414    </xs:extension>
415   </xs:complexContent>
416  </xs:complexType>
417  <xs:complexType name="tRequirementType">
418   <xs:complexContent>
419    <xs:extension base="tEntityType">
420     <xs:attribute name="requiredCapabilityType" type="xs:QName" use="optional"/>
421    </xs:extension>
422   </xs:complexContent>
423  </xs:complexType>
424  <xs:complexType name="tRequirementDefinition">
425   <xs:complexContent>
426    <xs:extension base="tExtensibleElements">
427     <xs:sequence>
428      <xs:element name="Constraints" minOccurs="0">
429       <xs:complexType>
430        <xs:sequence>
431         <xs:element name="Constraint" type="tConstraint" maxOccurs="unbounded"/>
432        </xs:sequence>
433       </xs:complexType>
434      </xs:element>
435     </xs:sequence>
436     <xs:attribute name="name" type="xs:string" use="required"/>
437     <xs:attribute name="requirementType" type="xs:QName" use="required"/>
438     <xs:attribute name="lowerBound" type="xs:int" use="optional" default="1"/>
439     <xs:attribute name="upperBound" use="optional" default="1">
440      <xs:simpleType>
441       <xs:union>
442        <xs:simpleType>
443         <xs:restriction base="xs:nonNegativeInteger">
444          <xs:pattern value="([1-9]+[0-9]*)"/>
445         </xs:restriction>
446        </xs:simpleType>
447        <xs:simpleType>
448         <xs:restriction base="xs:string">
449          <xs:enumeration value="unbounded"/>
450         </xs:restriction>
451        </xs:simpleType>
452       </xs:union>
453      </xs:simpleType>
454     </xs:attribute>
455    </xs:extension>
456   </xs:complexContent>
457  </xs:complexType>
458  <xs:complexType name="tRequirement">
459   <xs:complexContent>
460    <xs:extension base="tEntityTemplate">
461     <xs:attribute name="name" type="xs:string" use="required"/>
462    </xs:extension>
463   </xs:complexContent>
464  </xs:complexType>
465  <xs:complexType name="tCapabilityType">
466   <xs:complexContent>
467    <xs:extension base="tEntityType"/>
468   </xs:complexContent>
469  </xs:complexType>
470  <xs:complexType name="tCapabilityDefinition">
471   <xs:complexContent>
472    <xs:extension base="tExtensibleElements">
473     <xs:sequence>
474      <xs:element name="Constraints" minOccurs="0">
475       <xs:complexType>
476        <xs:sequence>
477         <xs:element name="Constraint" type="tConstraint" maxOccurs="unbounded"/>
478        </xs:sequence>
479       </xs:complexType>
480      </xs:element>
481     </xs:sequence>
482     <xs:attribute name="name" type="xs:string" use="required"/>
483     <xs:attribute name="capabilityType" type="xs:QName" use="required"/>
484     <xs:attribute name="lowerBound" type="xs:int" use="optional" default="1"/>
485     <xs:attribute name="upperBound" use="optional" default="1">
486      <xs:simpleType>
487       <xs:union>
488        <xs:simpleType>
489         <xs:restriction base="xs:nonNegativeInteger">
490          <xs:pattern value="([1-9]+[0-9]*)"/>
491         </xs:restriction>
492        </xs:simpleType>
493        <xs:simpleType>
494         <xs:restriction base="xs:string">
495          <xs:enumeration value="unbounded"/>
496         </xs:restriction>
497        </xs:simpleType>
498       </xs:union>
499      </xs:simpleType>
500     </xs:attribute>
501    </xs:extension>
502   </xs:complexContent>
503  </xs:complexType>
504  <xs:complexType name="tCapability">
505   <xs:complexContent>
506    <xs:extension base="tEntityTemplate">
507     <xs:attribute name="name" type="xs:string" use="required"/>
508    </xs:extension>
509   </xs:complexContent>
510  </xs:complexType>
511  <xs:complexType name="tArtifactType">
512   <xs:complexContent>
513    <xs:extension base="tEntityType"/>
514   </xs:complexContent>
515  </xs:complexType>
516  <xs:complexType name="tArtifactTemplate">
517   <xs:complexContent>
518    <xs:extension base="tEntityTemplate">
519     <xs:sequence>
520      <xs:element name="ArtifactReferences" minOccurs="0">
521       <xs:complexType>
522        <xs:sequence>
523         <xs:element name="ArtifactReference" type="tArtifactReference" maxOccurs="unbounded"/>
524        </xs:sequence>
525       </xs:complexType>
526      </xs:element>
527     </xs:sequence>
528     <xs:attribute name="name" type="xs:string" use="optional"/>
529    </xs:extension>
530   </xs:complexContent>
531  </xs:complexType>
532  <xs:complexType name="tDeploymentArtifacts">
533   <xs:sequence>
534    <xs:element name="DeploymentArtifact" type="tDeploymentArtifact" maxOccurs="unbounded"/>
535   </xs:sequence>
536  </xs:complexType>
537  <xs:complexType name="tDeploymentArtifact">
538   <xs:complexContent>
539    <xs:extension base="tExtensibleElements">
540     <xs:attribute name="name" type="xs:string" use="required"/>
541     <xs:attribute name="artifactType" type="xs:QName" use="required"/>
542     <xs:attribute name="artifactRef" type="xs:QName" use="optional"/>
543    </xs:extension>
544   </xs:complexContent>
545  </xs:complexType>
546  <xs:complexType name="tImplementationArtifacts">
547   <xs:sequence>
548    <xs:element name="ImplementationArtifact" maxOccurs="unbounded">
549     <xs:complexType>
550      <xs:complexContent>
551       <xs:extension base="tImplementationArtifact"/>
552      </xs:complexContent>
553     </xs:complexType>
554    </xs:element>
555   </xs:sequence>
556  </xs:complexType>
557  <xs:complexType name="tImplementationArtifact">
558   <xs:complexContent>
559    <xs:extension base="tExtensibleElements">
560     <xs:attribute name="name" type="xs:string" use="optional"/>
561     <xs:attribute name="interfaceName" type="xs:anyURI" use="optional"/>
562     <xs:attribute name="operationName" type="xs:NCName" use="optional"/>
563     <xs:attribute name="artifactType" type="xs:QName" use="required"/>
564     <xs:attribute name="artifactRef" type="xs:QName" use="optional"/>
565    </xs:extension>
566   </xs:complexContent>
567  </xs:complexType>
568  <xs:complexType name="tPlans">
569   <xs:sequence>
570    <xs:element name="Plan" type="tPlan" maxOccurs="unbounded"/>
571   </xs:sequence>
572   <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/>
573  </xs:complexType>
574  <xs:complexType name="tPlan">
575   <xs:complexContent>
576    <xs:extension base="tExtensibleElements">
577     <xs:sequence>
578      <xs:element name="Precondition" type="tCondition" minOccurs="0"/>
579      <xs:element name="InputParameters" minOccurs="0">
580       <xs:complexType>
581        <xs:sequence>
582         <xs:element name="InputParameter" type="tParameter" maxOccurs="unbounded"/>
583        </xs:sequence>
584       </xs:complexType>
585      </xs:element>
586      <xs:element name="OutputParameters" minOccurs="0">
587       <xs:complexType>
588        <xs:sequence>
589         <xs:element name="OutputParameter" type="tParameter" maxOccurs="unbounded"/>
590        </xs:sequence>
591       </xs:complexType>
592      </xs:element>
593      <xs:choice>
594       <xs:element name="PlanModel">
595        <xs:complexType>
596         <xs:sequence>
597          <xs:any namespace="##other" processContents="lax"/>
598         </xs:sequence>
599        </xs:complexType>
600       </xs:element>
601       <xs:element name="PlanModelReference">
602        <xs:complexType>
603         <xs:attribute name="reference" type="xs:anyURI" use="required"/>
604        </xs:complexType>
605       </xs:element>
606      </xs:choice>
607     </xs:sequence>
608     <xs:attribute name="id" type="xs:ID" use="required"/>
609     <xs:attribute name="name" type="xs:string" use="optional"/>
610     <xs:attribute name="planType" type="xs:anyURI" use="required"/>
611     <xs:attribute name="planLanguage" type="xs:anyURI" use="required"/>
612    </xs:extension>
613   </xs:complexContent>
614  </xs:complexType>
615  <xs:complexType name="tPolicyType">
616   <xs:complexContent>
617    <xs:extension base="tEntityType">
618     <xs:sequence>
619      <xs:element name="AppliesTo" type="tAppliesTo" minOccurs="0"/>
620     </xs:sequence>
621     <xs:attribute name="policyLanguage" type="xs:anyURI" use="optional"/>
622    </xs:extension>
623   </xs:complexContent>
624  </xs:complexType>
625  <xs:complexType name="tPolicyTemplate">
626   <xs:complexContent>
627    <xs:extension base="tEntityTemplate">
628     <xs:attribute name="name" type="xs:string" use="optional"/>
629    </xs:extension>
630   </xs:complexContent>
631  </xs:complexType>
632  <xs:complexType name="tAppliesTo">
633   <xs:sequence>
634    <xs:element name="NodeTypeReference" maxOccurs="unbounded">
635     <xs:complexType>
636      <xs:attribute name="typeRef" type="xs:QName" use="required"/>
637     </xs:complexType>
638    </xs:element>
639   </xs:sequence>
640  </xs:complexType>
641  <xs:complexType name="tPolicy">
642   <xs:complexContent>
643    <xs:extension base="tExtensibleElements">
644     <xs:attribute name="name" type="xs:string" use="optional"/>
645     <xs:attribute name="policyType" type="xs:QName" use="required"/>
646     <xs:attribute name="policyRef" type="xs:QName" use="optional"/>
647    </xs:extension>
648   </xs:complexContent>
649  </xs:complexType>
650  <xs:complexType name="tConstraint">
651   <xs:sequence>
652    <xs:any namespace="##other" processContents="lax"/>
653   </xs:sequence>
654   <xs:attribute name="constraintType" type="xs:anyURI" use="required"/>
655  </xs:complexType>
656  <xs:complexType name="tPropertyConstraint">
657   <xs:complexContent>
658    <xs:extension base="tConstraint">
659     <xs:attribute name="property" type="xs:string" use="required"/>
660    </xs:extension>
661   </xs:complexContent>
662  </xs:complexType>
663  <xs:complexType name="tExtensions">
664   <xs:complexContent>
665    <xs:extension base="tExtensibleElements">
666     <xs:sequence>
667      <xs:element name="Extension" type="tExtension" maxOccurs="unbounded"/>
668     </xs:sequence>
669    </xs:extension>
670   </xs:complexContent>
671  </xs:complexType>
672  <xs:complexType name="tExtension">
673   <xs:complexContent>
674    <xs:extension base="tExtensibleElements">
675     <xs:attribute name="namespace" type="xs:anyURI" use="required"/>
676     <xs:attribute name="mustUnderstand" type="tBoolean" use="optional" default="yes"/>
677    </xs:extension>
678   </xs:complexContent>
679  </xs:complexType>
680  <xs:complexType name="tParameter">
681   <xs:attribute name="name" type="xs:string" use="required"/>
682   <xs:attribute name="type" type="xs:string" use="required"/>
683   <xs:attribute name="required" type="tBoolean" use="optional" default="yes"/>
684  </xs:complexType>
685  <xs:complexType name="tInterface">
686   <xs:sequence>
687    <xs:element name="Operation" type="tOperation" maxOccurs="unbounded"/>
688   </xs:sequence>
689   <xs:attribute name="name" type="xs:anyURI" use="required"/>
690  </xs:complexType>
691  <xs:complexType name="tExportedInterface">
692   <xs:sequence>
693    <xs:element name="Operation" type="tExportedOperation" maxOccurs="unbounded"/>
694   </xs:sequence>
695   <xs:attribute name="name" type="xs:anyURI" use="required"/>
696  </xs:complexType>
697  <xs:complexType name="tOperation">
698   <xs:complexContent>
699    <xs:extension base="tExtensibleElements">
700     <xs:sequence>
701      <xs:element name="InputParameters" minOccurs="0">
702       <xs:complexType>
703        <xs:sequence>
704         <xs:element name="InputParameter" type="tParameter" maxOccurs="unbounded"/>
705        </xs:sequence>
706       </xs:complexType>
707      </xs:element>
708      <xs:element name="OutputParameters" minOccurs="0">
709       <xs:complexType>
710        <xs:sequence>
711         <xs:element name="OutputParameter" type="tParameter" maxOccurs="unbounded"/>
712        </xs:sequence>
713       </xs:complexType>
714      </xs:element>
715     </xs:sequence>
716     <xs:attribute name="name" type="xs:NCName" use="required"/>
717    </xs:extension>
718   </xs:complexContent>
719  </xs:complexType>
720  <xs:complexType name="tExportedOperation">
721   <xs:choice>
722    <xs:element name="NodeOperation">
723     <xs:complexType>
724      <xs:attribute name="nodeRef" type="xs:IDREF" use="required"/>
725      <xs:attribute name="interfaceName" type="xs:anyURI" use="required"/>
726      <xs:attribute name="operationName" type="xs:NCName" use="required"/>
727     </xs:complexType>
728    </xs:element>
729    <xs:element name="RelationshipOperation">
730     <xs:complexType>
731      <xs:attribute name="relationshipRef" type="xs:IDREF" use="required"/>
732      <xs:attribute name="interfaceName" type="xs:anyURI" use="required"/>
733      <xs:attribute name="operationName" type="xs:NCName" use="required"/>
734     </xs:complexType>
735    </xs:element>
736    <xs:element name="Plan">
737     <xs:complexType>
738      <xs:attribute name="planRef" type="xs:IDREF" use="required"/>
739     </xs:complexType>
740    </xs:element>
741   </xs:choice>
742   <xs:attribute name="name" type="xs:NCName" use="required"/>
743  </xs:complexType>
744  <xs:complexType name="tCondition">
745   <xs:sequence>
746    <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
747   </xs:sequence>
748   <xs:attribute name="expressionLanguage" type="xs:anyURI" use="required"/>
749  </xs:complexType>
750  <xs:complexType name="tTopologyElementInstanceStates">
751   <xs:sequence>
752    <xs:element name="InstanceState" maxOccurs="unbounded">
753     <xs:complexType>
754      <xs:attribute name="state" type="xs:anyURI" use="required"/>
755     </xs:complexType>
756    </xs:element>
757   </xs:sequence>
758  </xs:complexType>
759  <xs:complexType name="tArtifactReference">
760   <xs:choice minOccurs="0" maxOccurs="unbounded">
761    <xs:element name="Include">
762     <xs:complexType>
763      <xs:attribute name="pattern" type="xs:string" use="required"/>
764     </xs:complexType>
765    </xs:element>
766    <xs:element name="Exclude">
767     <xs:complexType>
768      <xs:attribute name="pattern" type="xs:string" use="required"/>
769     </xs:complexType>
770    </xs:element>
771   </xs:choice>
772   <xs:attribute name="reference" type="xs:anyURI" use="required"/>
773  </xs:complexType>
774  <xs:complexType name="tRequiredContainerFeatures">
775   <xs:sequence>
776    <xs:element name="RequiredContainerFeature" type="tRequiredContainerFeature" maxOccurs="unbounded"/>
777   </xs:sequence>
778  </xs:complexType>
779  <xs:complexType name="tRequiredContainerFeature">
780   <xs:attribute name="feature" type="xs:anyURI" use="required"/>
781  </xs:complexType>
782  <xs:simpleType name="tBoolean">
783   <xs:restriction base="xs:string">
784    <xs:enumeration value="yes"/>
785    <xs:enumeration value="no"/>
786   </xs:restriction>
787  </xs:simpleType>
788  <xs:simpleType name="importedURI">
789   <xs:restriction base="xs:anyURI"/>
790  </xs:simpleType>
791 </xs:schema>