Support TOSCA in verigraph (gRPC service)
[parser.git] / verigraph / schema / tosca / 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     OASIS Standard
5     25 November 2013
6     Copyright (c) OASIS Open 2013. All rights reserved.
7     Source: http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/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="interfaceName" type="xs:anyURI" use="optional"/>
561     <xs:attribute name="operationName" type="xs:NCName" use="optional"/>
562     <xs:attribute name="artifactType" type="xs:QName" use="required"/>
563     <xs:attribute name="artifactRef" type="xs:QName" use="optional"/>
564    </xs:extension>
565   </xs:complexContent>
566  </xs:complexType>
567  <xs:complexType name="tPlans">
568   <xs:sequence>
569    <xs:element name="Plan" type="tPlan" maxOccurs="unbounded"/>
570   </xs:sequence>
571   <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/>
572  </xs:complexType>
573  <xs:complexType name="tPlan">
574   <xs:complexContent>
575    <xs:extension base="tExtensibleElements">
576     <xs:sequence>
577      <xs:element name="Precondition" type="tCondition" minOccurs="0"/>
578      <xs:element name="InputParameters" minOccurs="0">
579       <xs:complexType>
580        <xs:sequence>
581         <xs:element name="InputParameter" type="tParameter" maxOccurs="unbounded"/>
582        </xs:sequence>
583       </xs:complexType>
584      </xs:element>
585      <xs:element name="OutputParameters" minOccurs="0">
586       <xs:complexType>
587        <xs:sequence>
588         <xs:element name="OutputParameter" type="tParameter" maxOccurs="unbounded"/>
589        </xs:sequence>
590       </xs:complexType>
591      </xs:element>
592      <xs:choice>
593       <xs:element name="PlanModel">
594        <xs:complexType>
595         <xs:sequence>
596          <xs:any namespace="##other" processContents="lax"/>
597         </xs:sequence>
598        </xs:complexType>
599       </xs:element>
600       <xs:element name="PlanModelReference">
601        <xs:complexType>
602         <xs:attribute name="reference" type="xs:anyURI" use="required"/>
603        </xs:complexType>
604       </xs:element>
605      </xs:choice>
606     </xs:sequence>
607     <xs:attribute name="id" type="xs:ID" use="required"/>
608     <xs:attribute name="name" type="xs:string" use="optional"/>
609     <xs:attribute name="planType" type="xs:anyURI" use="required"/>
610     <xs:attribute name="planLanguage" type="xs:anyURI" use="required"/>
611    </xs:extension>
612   </xs:complexContent>
613  </xs:complexType>
614  <xs:complexType name="tPolicyType">
615   <xs:complexContent>
616    <xs:extension base="tEntityType">
617     <xs:sequence>
618      <xs:element name="AppliesTo" type="tAppliesTo" minOccurs="0"/>
619     </xs:sequence>
620     <xs:attribute name="policyLanguage" type="xs:anyURI" use="optional"/>
621    </xs:extension>
622   </xs:complexContent>
623  </xs:complexType>
624  <xs:complexType name="tPolicyTemplate">
625   <xs:complexContent>
626    <xs:extension base="tEntityTemplate">
627     <xs:attribute name="name" type="xs:string" use="optional"/>
628    </xs:extension>
629   </xs:complexContent>
630  </xs:complexType>
631  <xs:complexType name="tAppliesTo">
632   <xs:sequence>
633    <xs:element name="NodeTypeReference" maxOccurs="unbounded">
634     <xs:complexType>
635      <xs:attribute name="typeRef" type="xs:QName" use="required"/>
636     </xs:complexType>
637    </xs:element>
638   </xs:sequence>
639  </xs:complexType>
640  <xs:complexType name="tPolicy">
641   <xs:complexContent>
642    <xs:extension base="tExtensibleElements">
643     <xs:attribute name="name" type="xs:string" use="optional"/>
644     <xs:attribute name="policyType" type="xs:QName" use="required"/>
645     <xs:attribute name="policyRef" type="xs:QName" use="optional"/>
646    </xs:extension>
647   </xs:complexContent>
648  </xs:complexType>
649  <xs:complexType name="tConstraint">
650   <xs:sequence>
651    <xs:any namespace="##other" processContents="lax"/>
652   </xs:sequence>
653   <xs:attribute name="constraintType" type="xs:anyURI" use="required"/>
654  </xs:complexType>
655  <xs:complexType name="tPropertyConstraint">
656   <xs:complexContent>
657    <xs:extension base="tConstraint">
658     <xs:attribute name="property" type="xs:string" use="required"/>
659    </xs:extension>
660   </xs:complexContent>
661  </xs:complexType>
662  <xs:complexType name="tExtensions">
663   <xs:complexContent>
664    <xs:extension base="tExtensibleElements">
665     <xs:sequence>
666      <xs:element name="Extension" type="tExtension" maxOccurs="unbounded"/>
667     </xs:sequence>
668    </xs:extension>
669   </xs:complexContent>
670  </xs:complexType>
671  <xs:complexType name="tExtension">
672   <xs:complexContent>
673    <xs:extension base="tExtensibleElements">
674     <xs:attribute name="namespace" type="xs:anyURI" use="required"/>
675     <xs:attribute name="mustUnderstand" type="tBoolean" use="optional" default="yes"/>
676    </xs:extension>
677   </xs:complexContent>
678  </xs:complexType>
679  <xs:complexType name="tParameter">
680   <xs:attribute name="name" type="xs:string" use="required"/>
681   <xs:attribute name="type" type="xs:string" use="required"/>
682   <xs:attribute name="required" type="tBoolean" use="optional" default="yes"/>
683  </xs:complexType>
684  <xs:complexType name="tInterface">
685   <xs:sequence>
686    <xs:element name="Operation" type="tOperation" maxOccurs="unbounded"/>
687   </xs:sequence>
688   <xs:attribute name="name" type="xs:anyURI" use="required"/>
689  </xs:complexType>
690  <xs:complexType name="tExportedInterface">
691   <xs:sequence>
692    <xs:element name="Operation" type="tExportedOperation" maxOccurs="unbounded"/>
693   </xs:sequence>
694   <xs:attribute name="name" type="xs:anyURI" use="required"/>
695  </xs:complexType>
696  <xs:complexType name="tOperation">
697   <xs:complexContent>
698    <xs:extension base="tExtensibleElements">
699     <xs:sequence>
700      <xs:element name="InputParameters" minOccurs="0">
701       <xs:complexType>
702        <xs:sequence>
703         <xs:element name="InputParameter" type="tParameter" maxOccurs="unbounded"/>
704        </xs:sequence>
705       </xs:complexType>
706      </xs:element>
707      <xs:element name="OutputParameters" minOccurs="0">
708       <xs:complexType>
709        <xs:sequence>
710         <xs:element name="OutputParameter" type="tParameter" maxOccurs="unbounded"/>
711        </xs:sequence>
712       </xs:complexType>
713      </xs:element>
714     </xs:sequence>
715     <xs:attribute name="name" type="xs:NCName" use="required"/>
716    </xs:extension>
717   </xs:complexContent>
718  </xs:complexType>
719  <xs:complexType name="tExportedOperation">
720   <xs:choice>
721    <xs:element name="NodeOperation">
722     <xs:complexType>
723      <xs:attribute name="nodeRef" type="xs:IDREF" use="required"/>
724      <xs:attribute name="interfaceName" type="xs:anyURI" use="required"/>
725      <xs:attribute name="operationName" type="xs:NCName" use="required"/>
726     </xs:complexType>
727    </xs:element>
728    <xs:element name="RelationshipOperation">
729     <xs:complexType>
730      <xs:attribute name="relationshipRef" type="xs:IDREF" use="required"/>
731      <xs:attribute name="interfaceName" type="xs:anyURI" use="required"/>
732      <xs:attribute name="operationName" type="xs:NCName" use="required"/>
733     </xs:complexType>
734    </xs:element>
735    <xs:element name="Plan">
736     <xs:complexType>
737      <xs:attribute name="planRef" type="xs:IDREF" use="required"/>
738     </xs:complexType>
739    </xs:element>
740   </xs:choice>
741   <xs:attribute name="name" type="xs:NCName" use="required"/>
742  </xs:complexType>
743  <xs:complexType name="tCondition">
744   <xs:sequence>
745    <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
746   </xs:sequence>
747   <xs:attribute name="expressionLanguage" type="xs:anyURI" use="required"/>
748  </xs:complexType>
749  <xs:complexType name="tTopologyElementInstanceStates">
750   <xs:sequence>
751    <xs:element name="InstanceState" maxOccurs="unbounded">
752     <xs:complexType>
753      <xs:attribute name="state" type="xs:anyURI" use="required"/>
754     </xs:complexType>
755    </xs:element>
756   </xs:sequence>
757  </xs:complexType>
758  <xs:complexType name="tArtifactReference">
759   <xs:choice minOccurs="0" maxOccurs="unbounded">
760    <xs:element name="Include">
761     <xs:complexType>
762      <xs:attribute name="pattern" type="xs:string" use="required"/>
763     </xs:complexType>
764    </xs:element>
765    <xs:element name="Exclude">
766     <xs:complexType>
767      <xs:attribute name="pattern" type="xs:string" use="required"/>
768     </xs:complexType>
769    </xs:element>
770   </xs:choice>
771   <xs:attribute name="reference" type="xs:anyURI" use="required"/>
772  </xs:complexType>
773  <xs:complexType name="tRequiredContainerFeatures">
774   <xs:sequence>
775    <xs:element name="RequiredContainerFeature" type="tRequiredContainerFeature" maxOccurs="unbounded"/>
776   </xs:sequence>
777  </xs:complexType>
778  <xs:complexType name="tRequiredContainerFeature">
779   <xs:attribute name="feature" type="xs:anyURI" use="required"/>
780  </xs:complexType>
781  <xs:simpleType name="tBoolean">
782   <xs:restriction base="xs:string">
783    <xs:enumeration value="yes"/>
784    <xs:enumeration value="no"/>
785   </xs:restriction>
786  </xs:simpleType>
787  <xs:simpleType name="importedURI">
788   <xs:restriction base="xs:anyURI"/>
789  </xs:simpleType>
790 </xs:schema>