1 <?xml version="1.0" encoding="UTF-8"?>
3 Topology and Orchestration Specification for Cloud Applications Version 1.0
6 Copyright (c) OASIS Open 2013. All rights reserved.
7 Source: http://docs.oasis-open.org/tosca/TOSCA/v1.0/os/schemas/
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">
14 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
16 <xs:attribute name="source" type="xs:anyURI"/>
17 <xs:attribute ref="xml:lang"/>
19 <xs:complexType name="tExtensibleElements">
21 <xs:element ref="documentation" minOccurs="0" maxOccurs="unbounded"/>
22 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
24 <xs:anyAttribute namespace="##other" processContents="lax"/>
26 <xs:complexType name="tImport">
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"/>
35 <xs:element name="Definitions">
38 <xs:extension base="tDefinitions"/>
42 <xs:complexType name="tDefinitions">
44 <xs:extension base="tExtensibleElements">
46 <xs:element name="Extensions" minOccurs="0">
49 <xs:element name="Extension" type="tExtension" maxOccurs="unbounded"/>
53 <xs:element name="Import" type="tImport" minOccurs="0" maxOccurs="unbounded"/>
54 <xs:element name="Types" minOccurs="0">
57 <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
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"/>
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"/>
81 <xs:complexType name="tServiceTemplate">
83 <xs:extension base="tExtensibleElements">
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"/>
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"/>
97 <xs:complexType name="tTags">
99 <xs:element name="Tag" type="tTag" maxOccurs="unbounded"/>
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"/>
106 <xs:complexType name="tBoundaryDefinitions">
108 <xs:element name="Properties" minOccurs="0">
111 <xs:any namespace="##other"/>
112 <xs:element name="PropertyMappings" minOccurs="0">
115 <xs:element name="PropertyMapping" type="tPropertyMapping" maxOccurs="unbounded"/>
122 <xs:element name="PropertyConstraints" minOccurs="0">
125 <xs:element name="PropertyConstraint" type="tPropertyConstraint" maxOccurs="unbounded"/>
129 <xs:element name="Requirements" minOccurs="0">
132 <xs:element name="Requirement" type="tRequirementRef" maxOccurs="unbounded"/>
136 <xs:element name="Capabilities" minOccurs="0">
139 <xs:element name="Capability" type="tCapabilityRef" maxOccurs="unbounded"/>
143 <xs:element name="Policies" minOccurs="0">
146 <xs:element name="Policy" type="tPolicy" maxOccurs="unbounded"/>
150 <xs:element name="Interfaces" minOccurs="0">
153 <xs:element name="Interface" type="tExportedInterface" maxOccurs="unbounded"/>
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"/>
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"/>
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"/>
172 <xs:complexType name="tEntityType" abstract="true">
174 <xs:extension base="tExtensibleElements">
176 <xs:element name="Tags" type="tTags" minOccurs="0"/>
177 <xs:element name="DerivedFrom" minOccurs="0">
179 <xs:attribute name="typeRef" type="xs:QName" use="required"/>
182 <xs:element name="PropertiesDefinition" minOccurs="0">
184 <xs:attribute name="element" type="xs:QName"/>
185 <xs:attribute name="type" type="xs:QName"/>
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"/>
196 <xs:complexType name="tEntityTemplate" abstract="true">
198 <xs:extension base="tExtensibleElements">
200 <xs:element name="Properties" minOccurs="0">
203 <xs:any namespace="##other" processContents="lax"/>
207 <xs:element name="PropertyConstraints" minOccurs="0">
210 <xs:element name="PropertyConstraint" type="tPropertyConstraint" maxOccurs="unbounded"/>
215 <xs:attribute name="id" type="xs:ID" use="required"/>
216 <xs:attribute name="type" type="xs:QName" use="required"/>
220 <xs:complexType name="tNodeTemplate">
222 <xs:extension base="tEntityTemplate">
224 <xs:element name="Requirements" minOccurs="0">
227 <xs:element name="Requirement" type="tRequirement" maxOccurs="unbounded"/>
231 <xs:element name="Capabilities" minOccurs="0">
234 <xs:element name="Capability" type="tCapability" maxOccurs="unbounded"/>
238 <xs:element name="Policies" minOccurs="0">
241 <xs:element name="Policy" type="tPolicy" maxOccurs="unbounded"/>
245 <xs:element name="DeploymentArtifacts" type="tDeploymentArtifacts" minOccurs="0"/>
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">
253 <xs:restriction base="xs:nonNegativeInteger">
254 <xs:pattern value="([1-9]+[0-9]*)"/>
258 <xs:restriction base="xs:string">
259 <xs:enumeration value="unbounded"/>
268 <xs:complexType name="tTopologyTemplate">
270 <xs:extension base="tExtensibleElements">
271 <xs:choice maxOccurs="unbounded">
272 <xs:element name="NodeTemplate" type="tNodeTemplate"/>
273 <xs:element name="RelationshipTemplate" type="tRelationshipTemplate"/>
278 <xs:complexType name="tRelationshipType">
280 <xs:extension base="tEntityType">
282 <xs:element name="InstanceStates" type="tTopologyElementInstanceStates" minOccurs="0"/>
283 <xs:element name="SourceInterfaces" minOccurs="0">
286 <xs:element name="Interface" type="tInterface" maxOccurs="unbounded"/>
290 <xs:element name="TargetInterfaces" minOccurs="0">
293 <xs:element name="Interface" type="tInterface" maxOccurs="unbounded"/>
297 <xs:element name="ValidSource" minOccurs="0">
299 <xs:attribute name="typeRef" type="xs:QName" use="required"/>
302 <xs:element name="ValidTarget" minOccurs="0">
304 <xs:attribute name="typeRef" type="xs:QName" use="required"/>
311 <xs:complexType name="tRelationshipTypeImplementation">
313 <xs:extension base="tExtensibleElements">
315 <xs:element name="Tags" type="tTags" minOccurs="0"/>
316 <xs:element name="DerivedFrom" minOccurs="0">
318 <xs:attribute name="relationshipTypeImplementationRef" type="xs:QName" use="required"/>
321 <xs:element name="RequiredContainerFeatures" type="tRequiredContainerFeatures" minOccurs="0"/>
322 <xs:element name="ImplementationArtifacts" type="tImplementationArtifacts" minOccurs="0"/>
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"/>
332 <xs:complexType name="tRelationshipTemplate">
334 <xs:extension base="tEntityTemplate">
336 <xs:element name="SourceElement">
338 <xs:attribute name="ref" type="xs:IDREF" use="required"/>
341 <xs:element name="TargetElement">
343 <xs:attribute name="ref" type="xs:IDREF" use="required"/>
346 <xs:element name="RelationshipConstraints" minOccurs="0">
349 <xs:element name="RelationshipConstraint" maxOccurs="unbounded">
352 <xs:any namespace="##other" processContents="lax" minOccurs="0"/>
354 <xs:attribute name="constraintType" type="xs:anyURI" use="required"/>
361 <xs:attribute name="name" type="xs:string" use="optional"/>
365 <xs:complexType name="tNodeType">
367 <xs:extension base="tEntityType">
369 <xs:element name="RequirementDefinitions" minOccurs="0">
372 <xs:element name="RequirementDefinition" type="tRequirementDefinition" maxOccurs="unbounded"/>
376 <xs:element name="CapabilityDefinitions" minOccurs="0">
379 <xs:element name="CapabilityDefinition" type="tCapabilityDefinition" maxOccurs="unbounded"/>
383 <xs:element name="InstanceStates" type="tTopologyElementInstanceStates" minOccurs="0"/>
384 <xs:element name="Interfaces" minOccurs="0">
387 <xs:element name="Interface" type="tInterface" maxOccurs="unbounded"/>
395 <xs:complexType name="tNodeTypeImplementation">
397 <xs:extension base="tExtensibleElements">
399 <xs:element name="Tags" type="tTags" minOccurs="0"/>
400 <xs:element name="DerivedFrom" minOccurs="0">
402 <xs:attribute name="nodeTypeImplementationRef" type="xs:QName" use="required"/>
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"/>
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"/>
417 <xs:complexType name="tRequirementType">
419 <xs:extension base="tEntityType">
420 <xs:attribute name="requiredCapabilityType" type="xs:QName" use="optional"/>
424 <xs:complexType name="tRequirementDefinition">
426 <xs:extension base="tExtensibleElements">
428 <xs:element name="Constraints" minOccurs="0">
431 <xs:element name="Constraint" type="tConstraint" maxOccurs="unbounded"/>
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">
443 <xs:restriction base="xs:nonNegativeInteger">
444 <xs:pattern value="([1-9]+[0-9]*)"/>
448 <xs:restriction base="xs:string">
449 <xs:enumeration value="unbounded"/>
458 <xs:complexType name="tRequirement">
460 <xs:extension base="tEntityTemplate">
461 <xs:attribute name="name" type="xs:string" use="required"/>
465 <xs:complexType name="tCapabilityType">
467 <xs:extension base="tEntityType"/>
470 <xs:complexType name="tCapabilityDefinition">
472 <xs:extension base="tExtensibleElements">
474 <xs:element name="Constraints" minOccurs="0">
477 <xs:element name="Constraint" type="tConstraint" maxOccurs="unbounded"/>
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">
489 <xs:restriction base="xs:nonNegativeInteger">
490 <xs:pattern value="([1-9]+[0-9]*)"/>
494 <xs:restriction base="xs:string">
495 <xs:enumeration value="unbounded"/>
504 <xs:complexType name="tCapability">
506 <xs:extension base="tEntityTemplate">
507 <xs:attribute name="name" type="xs:string" use="required"/>
511 <xs:complexType name="tArtifactType">
513 <xs:extension base="tEntityType"/>
516 <xs:complexType name="tArtifactTemplate">
518 <xs:extension base="tEntityTemplate">
520 <xs:element name="ArtifactReferences" minOccurs="0">
523 <xs:element name="ArtifactReference" type="tArtifactReference" maxOccurs="unbounded"/>
528 <xs:attribute name="name" type="xs:string" use="optional"/>
532 <xs:complexType name="tDeploymentArtifacts">
534 <xs:element name="DeploymentArtifact" type="tDeploymentArtifact" maxOccurs="unbounded"/>
537 <xs:complexType name="tDeploymentArtifact">
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"/>
546 <xs:complexType name="tImplementationArtifacts">
548 <xs:element name="ImplementationArtifact" maxOccurs="unbounded">
551 <xs:extension base="tImplementationArtifact"/>
557 <xs:complexType name="tImplementationArtifact">
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"/>
567 <xs:complexType name="tPlans">
569 <xs:element name="Plan" type="tPlan" maxOccurs="unbounded"/>
571 <xs:attribute name="targetNamespace" type="xs:anyURI" use="optional"/>
573 <xs:complexType name="tPlan">
575 <xs:extension base="tExtensibleElements">
577 <xs:element name="Precondition" type="tCondition" minOccurs="0"/>
578 <xs:element name="InputParameters" minOccurs="0">
581 <xs:element name="InputParameter" type="tParameter" maxOccurs="unbounded"/>
585 <xs:element name="OutputParameters" minOccurs="0">
588 <xs:element name="OutputParameter" type="tParameter" maxOccurs="unbounded"/>
593 <xs:element name="PlanModel">
596 <xs:any namespace="##other" processContents="lax"/>
600 <xs:element name="PlanModelReference">
602 <xs:attribute name="reference" type="xs:anyURI" use="required"/>
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"/>
614 <xs:complexType name="tPolicyType">
616 <xs:extension base="tEntityType">
618 <xs:element name="AppliesTo" type="tAppliesTo" minOccurs="0"/>
620 <xs:attribute name="policyLanguage" type="xs:anyURI" use="optional"/>
624 <xs:complexType name="tPolicyTemplate">
626 <xs:extension base="tEntityTemplate">
627 <xs:attribute name="name" type="xs:string" use="optional"/>
631 <xs:complexType name="tAppliesTo">
633 <xs:element name="NodeTypeReference" maxOccurs="unbounded">
635 <xs:attribute name="typeRef" type="xs:QName" use="required"/>
640 <xs:complexType name="tPolicy">
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"/>
649 <xs:complexType name="tConstraint">
651 <xs:any namespace="##other" processContents="lax"/>
653 <xs:attribute name="constraintType" type="xs:anyURI" use="required"/>
655 <xs:complexType name="tPropertyConstraint">
657 <xs:extension base="tConstraint">
658 <xs:attribute name="property" type="xs:string" use="required"/>
662 <xs:complexType name="tExtensions">
664 <xs:extension base="tExtensibleElements">
666 <xs:element name="Extension" type="tExtension" maxOccurs="unbounded"/>
671 <xs:complexType name="tExtension">
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"/>
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"/>
684 <xs:complexType name="tInterface">
686 <xs:element name="Operation" type="tOperation" maxOccurs="unbounded"/>
688 <xs:attribute name="name" type="xs:anyURI" use="required"/>
690 <xs:complexType name="tExportedInterface">
692 <xs:element name="Operation" type="tExportedOperation" maxOccurs="unbounded"/>
694 <xs:attribute name="name" type="xs:anyURI" use="required"/>
696 <xs:complexType name="tOperation">
698 <xs:extension base="tExtensibleElements">
700 <xs:element name="InputParameters" minOccurs="0">
703 <xs:element name="InputParameter" type="tParameter" maxOccurs="unbounded"/>
707 <xs:element name="OutputParameters" minOccurs="0">
710 <xs:element name="OutputParameter" type="tParameter" maxOccurs="unbounded"/>
715 <xs:attribute name="name" type="xs:NCName" use="required"/>
719 <xs:complexType name="tExportedOperation">
721 <xs:element name="NodeOperation">
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"/>
728 <xs:element name="RelationshipOperation">
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"/>
735 <xs:element name="Plan">
737 <xs:attribute name="planRef" type="xs:IDREF" use="required"/>
741 <xs:attribute name="name" type="xs:NCName" use="required"/>
743 <xs:complexType name="tCondition">
745 <xs:any processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
747 <xs:attribute name="expressionLanguage" type="xs:anyURI" use="required"/>
749 <xs:complexType name="tTopologyElementInstanceStates">
751 <xs:element name="InstanceState" maxOccurs="unbounded">
753 <xs:attribute name="state" type="xs:anyURI" use="required"/>
758 <xs:complexType name="tArtifactReference">
759 <xs:choice minOccurs="0" maxOccurs="unbounded">
760 <xs:element name="Include">
762 <xs:attribute name="pattern" type="xs:string" use="required"/>
765 <xs:element name="Exclude">
767 <xs:attribute name="pattern" type="xs:string" use="required"/>
771 <xs:attribute name="reference" type="xs:anyURI" use="required"/>
773 <xs:complexType name="tRequiredContainerFeatures">
775 <xs:element name="RequiredContainerFeature" type="tRequiredContainerFeature" maxOccurs="unbounded"/>
778 <xs:complexType name="tRequiredContainerFeature">
779 <xs:attribute name="feature" type="xs:anyURI" use="required"/>
781 <xs:simpleType name="tBoolean">
782 <xs:restriction base="xs:string">
783 <xs:enumeration value="yes"/>
784 <xs:enumeration value="no"/>
787 <xs:simpleType name="importedURI">
788 <xs:restriction base="xs:anyURI"/>