<?xml version="1.0" encoding="UTF-8"?>
<!-- EPF UMA XML Data Interchange Schema -->
<xsd:schema xmlns:uma="http://www.eclipse.org/epf/uma/1.0.3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.eclipse.org/epf/uma/1.0.3">
	<xsd:simpleType name="WorkOrderType">
		<xsd:annotation>
			<xsd:documentation>Represents a relationship between two Breakdown Element in which one Breakdown Element depends on the start or finish of another Breakdown Element in order to begin or end. This enumeration defines the different types of Work Order relationships available in UMA and is used to provide values for Work Order's linkType attribute.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:NCName">
			<xsd:enumeration value="finishToStart"/>
			<xsd:enumeration value="finishToFinish"/>
			<xsd:enumeration value="startToStart"/>
			<xsd:enumeration value="startToFinish"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="VariabilityType">
		<xsd:annotation>
			<xsd:documentation>An Enumeration used for values for instances of Variability Element's attribute variabilityType.  It defines the nature of how a Variability Element extends another Variability Element. See enumeration literals for definitions for each type.</xsd:documentation>
		</xsd:annotation>
		<xsd:restriction base="xsd:NCName">
			<xsd:enumeration value="na"/>
			<xsd:enumeration value="contributes"/>
			<xsd:enumeration value="extends"/>
			<xsd:enumeration value="replaces"/>
			<xsd:enumeration value="localContribution"/>
			<xsd:enumeration value="localReplacement"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="Element">
		<xsd:annotation>
			<xsd:documentation>A UML 2.0 meta-class Element.</xsd:documentation>
		</xsd:annotation>
	</xsd:complexType>
	<xsd:complexType name="NamedElement">
		<xsd:annotation>
			<xsd:documentation>A UML 2.0 meta-class Named Element.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Element">
				<xsd:attribute name="name" type="xsd:string"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PackageableElement">
		<xsd:annotation>
			<xsd:documentation>A UML 2.0 meta-class Packagable Element.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:NamedElement"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="MethodElement">
		<xsd:annotation>
			<xsd:documentation>The root generalization for all UMA Method Elements.  Defines a common set of attributes inherited by all UMA Method Elements.  Method Element itself is derived from Packageable Element from the UML 2.0 Infrastructure.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:PackageableElement">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="OwnedRule" type="uma:Constraint">
						<xsd:annotation>
							<xsd:documentation>Defines the packaging rules for this Method Element.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:choice>
				<xsd:attribute name="id" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every instance of Method Element has a global unique id.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="briefDescription" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every instance of Method Element shall be briefly described with one or two sentences summarizing the element.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="suppressed" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>If a Variability Element is derived from another Variability Element using the "extends" Variability Specialization, then this attribute can be used to suppress inherited Method Elements that were part of the based-on Variability Element, which can be any type of Method Element.  In other words, if this attribute is set to true on a Method Element that has the same name than an inherited method element then it will not be regarded as inherited at all.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="orderingGuide" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Used for CASE tool realizations of this model to contain information about layout and ordering of the method element and its parts.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Constraint">
		<xsd:annotation>
			<xsd:documentation>A generalized Method Element that represents a condition or restriction expressed in natural language text or in a machine readable language for the purpose of declaring some of the semantics of a Method Element.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodElement">
				<xsd:attribute name="mainDescription" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Stores the main definition of the constraint.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Section">
		<xsd:annotation>
			<xsd:documentation>A special Method Element that represents structural subsections of a Content Description's sectionDescription attribute.  It is used for either large scale documentation of Content Elements organized into sections as well as to flexibly add new Sections to Content Elements using contribution variability added to the Section concept for Method Plug-ins.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodElement">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="SubSection" type="uma:Section"/>
					<xsd:element minOccurs="0" name="Predecessor" type="xsd:string"/>
					<xsd:element minOccurs="0" name="Description" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>This attributes store the description text for a Content Description's Section.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="sectionName" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every Section has a name used for external presentation of the section, e.g. when published or when section heading are listed in a table of contents.  This attribute is similar to Presentation Name for Content Elements.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="variabilityType" type="uma:VariabilityType"/>
				<xsd:attribute name="variabilityBasedOnElement" type="xsd:string"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="MethodUnit">
		<xsd:annotation>
			<xsd:documentation>A special Method Element that shall be maintained in a Method Library as a separate unit of control.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodElement">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Copyright" type="xsd:string"/>
				</xsd:sequence>
				<xsd:attribute name="authors" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every Method Unit is being created and owned by an author or authoring team.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="changeDate" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation>The date the last change that resulted into this version has been made.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="changeDescription" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>The description of the last change that resulted into this version.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every Package has a version number used to track changes.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ContentDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Method Element that is used to store the textual description for a Content Element.  It defines standard attributes applicable for all Content Element types.  Specific Content Element sub-types can define their own matching Content Description sub-types. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodUnit">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="MainDescription" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Stores the main descriptive text for the Content Element.  All text that is not part of any of the more specific attributes shall be stored here.  If the Content Description is divided into sections using the Section class, then only the text from the 'start' of the content description to the first section will be stored here (similar to a normal document where you can place text between its beginning to its first diction heading).</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="KeyConsiderations" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Provides advise and guidance of a critical nature for the content element as well as warnings, cautions, pitfalls, dangers.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="Section" type="uma:Section"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="GuidanceDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Content Description that is used to store the textual description for a Guidance.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentDescription">
				<xsd:choice minOccurs="0">
					<xsd:element name="Attachment" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>This field is primarily used for attachments augmenting the information provided for guidance.  In particular the attribute is used for Templates, Examples, and Reusable Assets to contain the actual attachment described in the mainDescription.  It can additionally contain representations of the guidance in just a third party format, e.g. PDF, MS Word, or Word Perfect.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PracticeDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Content Description that is used to store the textual description for a Practice.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="AdditionalInfo" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Any additional Information not covered by the other attributes.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Application" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Describes how the Practice is being applied or introduced into the context described in background.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Background" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Elaboration on the background and the context in which the problem occurs and where the solution described by this Practice will fit in.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Goals" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>A summary of the overall goals to be addressed by the Practice.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="LevelsOfAdoption" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Outlines the different forms or variants in which the practice could be realized. (e.g. full adoption verus a partial adoption of the Practice)</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Problem" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>A description of the problem the Practice addresses.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="WorkProductDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Content Description that is used to store the textual description for a Work Product.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="ImpactOfNotHaving" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Describes the consequences of not producing the work product.  This is intended to aid in the tailoring the method/process to the needs of a specific project.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Purpose" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Describes why the work product is produced and to what use it will be put.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="ReasonsForNotNeeding" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Describes the circumstances in which it is reasonable not to produce the work product.  This is intended to aid in the tailoring of the method/process to the needs of a specific project.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="externalId" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>An external visible number that is used to reference this artifact. Used like a synonym.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ArtifactDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Work Product Description that is used to store the textual description for an Artifact.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkProductDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="BriefOutline" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Provides a brief description of the information that can be found in this artifact. For example, discusses the contents for key chapters of a document artifact or the key packages and modules of a model artifact.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="RepresentationOptions" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Discusses different possible alternative representations for the artifact. For example a design model can be represented as a UML model or an informal block diagram or by textual description only.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="DeliverableDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Work Product Description that is used to store the textual description for a Deliverable.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkProductDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="ExternalDescription" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>The description of the Deliverable used for client documents (proposal, statements of work or contractual agreements).  It might use a different language and follow legal constraints.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="PackagingGuidance" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Provides guidance on how to assemble the deliverable from all its required inputs.  This section describes the most common content medium and format.  Distribution of the deliverable is addressed in this section, if necessary.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="RoleDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Content Description that is used to store the textual description for a Role.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="AssignmentApproaches" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Provides guidance on for assigning individuals to the Role in terms of what other roles these individuals could perform and what responsibility different individuals assigned to this role might have.  The guidance can also describe different assignment approaches for different types of projects, e.g. for large versus small teams where individuals could be allocated to roles full time versus sharing roles within the team.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Skills" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Lists of set of required skills a person needs to possess to fulfill that Role.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Synonyms" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Lists synonyms, i.e. other names the Role might be referred by.  Tool support for the meta-model might support that a Role name can be consistently be replaced with one of its synonyms throught a Process.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TaskDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Content Description that is used to store the textual description for a Task.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Alternatives" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Comprises of summaries describing important exceptional and non-standard ways of achieving this Task's development goals that were not covered by the Task's Steps.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Purpose" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Summarizes the main reason for performing this Task and what is intended to be achieved.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="DescribableElement">
		<xsd:annotation>
			<xsd:documentation>An abstract generalization of Method Elements for which external presentation names as well as content descriptions have been defined, such as Roles or Work Products.  Presentation Name and Content Descriptions are typically localized using a resource allocation mechanism for its String type attributes.
This abstraction represents all elements in the Method Content as well as Process space for which concrete textual descriptions are defined in the form of documenting attributes grouped in a matching Content Description instance.  Describable Elements are intended to be published in method or process publications (similar to the IBM Rational Unified Process web).  Describable Element defines that the element it represents will have content 'attached' to it.  Content Description is the abstraction for the actual places in which the content is being represented.  This separation allows a distinction between core method model elements describing the structure of the model from the actual description container providing, for example, the documentation of the content element in different alternatives languages, audiences, licensing levels, etc.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodElement">
				<xsd:choice minOccurs="0">
					<xsd:element name="Presentation" type="uma:ContentDescription"/>
				</xsd:choice>
				<xsd:attribute name="presentationName" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every Describable Element has a presentation name, which is used for external presentation of the element.  For example, name (the internal representation) might be set to "rup_architecture_document" to differentiate from a "j2ee_architcture_document" whereas the external presentation would always be "Architecture Document".</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="shapeicon" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>A reference to an icon that can be used for modeling with specific Content Element instances (as graphical stereotypes, e.g. a use case symbol for a use case artifact) as well as publication of content.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="nodeicon" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>A reference to an icon that can be used in tree browser presentations and breakdown structures.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ContentElement">
		<xsd:annotation>
			<xsd:documentation>A Describable Element that represents an abstract generalization for all elements that are considered to be and managed as Method Content.
Content Elements represents reusable Method Content that is supposed to be managed in Content Packages.  The separation of Content Element from Process Element allows to clearly distinguish between pure method content from content that is represented in processes.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:DescribableElement">
				<xsd:sequence>
					<xsd:choice maxOccurs="unbounded" minOccurs="0">
						<xsd:element name="Checklist" type="xsd:string"/>
						<xsd:element name="Concept" type="xsd:string"/>
						<xsd:element name="Example" type="xsd:string"/>
						<xsd:element name="Guideline" type="xsd:string"/>
						<xsd:element name="ReusableAsset" type="xsd:string"/>
						<xsd:element name="SupportingMaterial" type="xsd:string"/>
						<xsd:element name="Whitepaper" type="xsd:string"/>
					</xsd:choice>
				</xsd:sequence>
				<xsd:attribute name="variabilityType" type="uma:VariabilityType"/>
				<xsd:attribute name="variabilityBasedOnElement" type="xsd:string"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Guidance">
		<xsd:annotation>
			<xsd:documentation>Guidance is an abstract generalization of additional information related to content elements such as Roles, Tasks, and Work Products.  Examples for Guidance are Guidelines, Templates, Checklists, Tool Mentors, Estimates, Supporting Materials, Reports, Concepts, etc.  This package only contains the definition of the abstract Guidance class.  The package Guidance Types defines concrete guidance types.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentElement"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Concept">
		<xsd:annotation>
			<xsd:documentation>A specific type of guidance that outlines key ideas associated with basic principles underlying the referenced item. Concepts normally address more general topics than Guidelines and span across sev-eral work product and/or tasks/activities.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Checklist">
		<xsd:annotation>
			<xsd:documentation>A specific type of guidance that identifies a series of items that need to be completed or veri-fied.  Checklists are often used in reviews such as walkthroughs or inspections. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Example">
		<xsd:annotation>
			<xsd:documentation>A specific type of Guidance that represents a typical, partially completed, sample instance of one or more work products or scenario like descriptions of how Task may be performed. Examples can be related to Work Products as well as Tasks that produce them as well as any other Content Element.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Guideline">
		<xsd:annotation>
			<xsd:documentation>A specific type of guidance that provides additional detail on how to perform a particular task or grouping of tasks (e.g. grouped together as activities) or that provides additional detail, rules, and recommendations on work products and their properties.  Amongst others, it can include details about best practices and different approaches for doing work, how to use particular types of work products, information on different subtypes and variants of the work product and how they evolve throughout a lifecycle, discussions on skills the performing roles should acquire or improve upon, measurements for progress and maturity, etc.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Estimate">
		<xsd:annotation>
			<xsd:documentation>A specific type of Guidance that provides sizing measures, or standards for sizing the work effort associated with performing a particular piece of work and instructions for their successful use. It may be comprised of estimation considerations and estimation metrics.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="EstimationMetric" type="xsd:string"/>
					<xsd:element name="EstimationConsiderations" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="EstimatingMetric">
		<xsd:annotation>
			<xsd:documentation>A specific type of Guidance that describes a metric or measure that is associated with an element and which is used to calculate the size of the work effort as well as a range of potential labor.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="EstimationConsiderations">
		<xsd:annotation>
			<xsd:documentation>A specific type of Guidance that qualifies the usage and application of estimation metrics in the development of an actual estimate.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Roadmap">
		<xsd:annotation>
			<xsd:documentation>A specific type of Guidance which is only related to Activates and therefore has been added by this package to the list of Guidance Types rather than listed in the Guidance Types package.  A Roadmap represents a linear walkthrough of an Activity, typically a Process.
An instance of a Roadmap represents important documentation for the Activity or Process it is related to.  Often a complex Activity such as a Process can be much easier understood by providing a walkthrough with a linear thread of a typical instantiation of this Activity.  In addition to making the process practitioner understand how work in the process is being performed, a Roadmap provides additional information about how Activities and Tasks relate to each other over time.  Roadmaps are also used to show how specific aspects are distributed over a whole process providing a kind of filter on the process for this information.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Report">
		<xsd:annotation>
			<xsd:documentation>A predefined template of a result that is generated on the basis of other work products as an output from some form of tool automation. An example for a report would be a use case model survey, which is generated by extracting diagram information from a graphical model and textual information from documents and combines these two types of information into a report.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Template">
		<xsd:annotation>
			<xsd:documentation>A specific type of guidance that provides for a work product a pre-defined table of contents, sections, packages, and/or headings, a standardized format, as well as descriptions how the sections and packages are supposed to be used and completed. Templates cannot only be provided for documents, but also for conceptual models or physical data stores.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="SupportingMaterial">
		<xsd:annotation>
			<xsd:documentation>A catchall for other types of guidance not specifically defined elsewhere. It can be related to all kinds of Content Elements, i.e. including other guidance elements.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ToolMentor">
		<xsd:annotation>
			<xsd:documentation>A  specific type of guidance that shows how to use a specific tool to accomplish some piece of work a Work Product either in the context of or independent from a Task or Activity.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Whitepaper">
		<xsd:annotation>
			<xsd:documentation>A special Concept guidance that have been externally reviewed or published and can be read and understood in isolation of other content elements and guidance.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Concept"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TermDefinition">
		<xsd:annotation>
			<xsd:documentation>A specific type of guidance that defines concepts and are used to build up the Glossary. TermDefinitions are not directly related to ContentElements, but their relationship is being derived when the Term is used in the ContentElements description text.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Practice">
		<xsd:annotation>
			<xsd:documentation>A specific type of guidance that represents a proven way or strategy of doing work to achieve a goal that has a positive impact on work product or process quality.  Practices are defined orthogonal to methods and processes.  They could summarize aspects that impact many different parts of a method or specific processes.  Examples for practices would be "Manage Risks", "Continuously verify quality", "Architecture-centric and component-based development", etc.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ActivityReference" type="xsd:string"/>
					<xsd:element name="ContentReference" type="xsd:string"/>
					<xsd:element name="SubPractice" type="uma:Practice"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ReusableAsset">
		<xsd:annotation>
			<xsd:documentation>A specific type of guidance that provides a solution to a problem for a given context. The asset may have a variability point, which is a location in the asset that may have a value provided or customized by the asset consumer. The asset has rules for usage which are the instructions describing
how the asset should be used.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Guidance"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="WorkProduct">
		<xsd:annotation>
			<xsd:documentation>An abstract class which provides a generalization for the content element types Artifact, Outcome, and Deliverable.  The meta-model class Work Product actually represents work product types, i.e. an instance of Work Product is a description of a specific type of work product and not an individual work product instance.  However, for simplicity reasons and because of low risk of misinterpretation we did not append the word 'type' to every meta-class.
A work product is an abstraction for descriptions of content elements that are used to define anything used, produced, or modified by a task.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentElement">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="Estimate" type="xsd:string"/>
					<xsd:element name="EstimationConsiderations" type="xsd:string"/>
					<xsd:element name="Report" type="xsd:string"/>
					<xsd:element name="Template" type="xsd:string"/>
					<xsd:element name="ToolMentor" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Artifact">
		<xsd:annotation>
			<xsd:documentation>A Work Product that provides a description and definition for tangible work product types. Artifacts may be composed of other artifacts. For example, a model artifact can be composed of model elements, which are also artifacts.
Artifacts are tangible work products consumed, produced, or modified by Tasks.  It may serve as a basis for defining reusable assets.  Roles use Artifacts to perform Tasks and produce Artifacts in the course of performing Tasks.  Artifacts are the responsibility of a single Role, making responsibility easy to identify and understand, and promoting the idea that every piece of information produced in the method requires the appropriate set of skills. Even though one role might "own" a specific type of Artifacts, other roles can still use the Artifacts; perhaps even update them if the Role has been given permission to do so.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkProduct">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ContainedArtifact" type="uma:Artifact"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Deliverable">
		<xsd:annotation>
			<xsd:documentation>A Work Product that provides a description and definition for packaging other Work Products, and may be delivered to an internal or external party.  Therefore, a Deliverable aggregates other Work Products. Therefore, a Deliverable aggregates other Work Products.  A Deliverable is used to pre-define typical or recommended content in the form or work products that would be packaged for delivery.  The actual packaging of the Deliverable in an actual process or even project could be a modification of this recommendation.  Deliverables are used to represent an output from a process that has value, material or otherwise, to a client, customer or other stakeholder. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkProduct">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="DeliveredWorkProduct" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Outcome">
		<xsd:annotation>
			<xsd:documentation>A Work Product that describes intangible work products that are a result or state. Outcomes may also be used to describe work products that are not formally defined.  A key differentiator for outcomes against artifacts is that outcomes are not candidates for harvesting as reusable assets.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkProduct"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Role">
		<xsd:annotation>
			<xsd:documentation>A Content Element that defines a set of related skills, competencies, and responsibilities.  Roles are used by Tasks to define who performs them as well as define a set of work products they are responsible for.  
A Role defines a set of related skills, competencies, and responsibilities of an individual or a set of individuals.  Roles are not individuals or resources.  Individual members of the development organization will wear different hats, or perform different roles. The mapping from individual to role, performed by the project manager when planning and staffing for a project, allows different individuals to act as several different roles, and for a role to be played by several individuals.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentElement">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ResponsibleFor" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Task">
		<xsd:annotation>
			<xsd:documentation>A Content Element that describes work being performed by Roles.  It defines one default performing Role as well as many additional performers.  A Task is associated to input and output work products.  Inputs are differentiated in mandatory versus optional inputs.  The associations to Work Products are not instantiatable/variable-like parameters.  They rather express (hyper-)links to the descriptions of the work products types that are related to the Task as inputs and outputs.  In other words, these associations are not intended to be used to capture which concrete instances will be passed when instantiating the method in a project.  All of the Task's default associations can be overridden in an actual process definition.
A Task describes an assignable unit of work.  Every Task is assigned to specific Roles.  The granularity of a Task is generally a few hours to a few days.  It usually affects one or only a small number of work products. A Task is used as an element of defining a process. Tasks are further used for planning and tracking progress; therefore, if they are defined too fine-grained, they will be neglected, and if they are too large, progress would have to be expressed in terms of a Task's parts (e.g. Steps, which is not recommended). 
A Task has a clear purpose in which the performing roles achieve a well defined goal.  It provides complete step-by-step explanations of doing all the work that needs to be done to achieve this goal.  This description is complete, independent of when in a process lifecycle the work would actually be done.  It therefore does not describe when you do what work at what point of time, but describes all the work that gets done throughout the development lifecycle that contributes to the achievement of this goal.  When the Task is being applied in a process then this process application (defined as Task Descriptor) provides the information of which pieces of the Task will actually be performed at any particular point in time. This assumes that the Task will be performed in the process over and over again, but each time with a slightly different emphasis on different steps or aspects of the task description. 
For example, a Task such as "Develop Use Case Model" describes all the work that needs to be done to develop a complete use case model. This would comprise of the identification and naming of use cases and actors, the writing of a brief description, the modeling of use cases and their relationships in diagrams, the detailed description of a basic flow, the detailed description of alternatives flows, performing of walkthroughs workshops and reviews, etc.  All of these parts contribute to the development goal of developing the use case model, but the parts will be performed at different points in time in a process.  Identification, naming, and brief descriptions would be performed early in a typical development process versus the writing of detailed alternative flows which would be performed much later.  All these parts or steps within the same Task define the "method" of Developing a Use Case Model.  Applying such a method in a lifecycle (i.e. in a process) is defining which steps are done when going from one iteration to the next.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentElement">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Precondition" type="xsd:string"/>
					<xsd:element minOccurs="0" name="Postcondition" type="xsd:string"/>
					<xsd:element minOccurs="0" name="PerformedBy" type="xsd:string"/>
					<xsd:choice maxOccurs="unbounded" minOccurs="0">
						<xsd:element name="MandatoryInput" type="xsd:string"/>
						<xsd:element name="Output" type="xsd:string"/>
						<xsd:element name="AdditionallyPerformedBy" type="xsd:string"/>
						<xsd:element name="OptionalInput" type="xsd:string"/>
						<xsd:element name="Estimate" type="xsd:string"/>
						<xsd:element name="EstimationConsiderations" type="xsd:string"/>
						<xsd:element name="ToolMentor" type="xsd:string"/>
					</xsd:choice>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="WorkDefinition">
		<xsd:annotation>
			<xsd:documentation>An abstract Method Element that generalizes all descriptions of work within the Unified Method Architecture.  This package introduces two concrete types of Work Definitions: Task and Step.  Work Definitions can contain sets of pre- and post-conditions defining constraints that need to be valid before the described work can begin or before it can be declared as finished.  Note that general ownedRules can be used to define additional constraints and rules for Work Definitions.
Work Definitions represent behavioral descriptions for doing work.  These behavioral descriptions are not bound to one specific classifier, but represent an arbitrary definition of work.  For example, a Work Definition could represent work that is being performed by a specific Role (e.g. a Role performing a specific Task or Steps of a Task), by many Roles working in close collaboration (many Roles all working together on the same interdisciplinary Task), or complex work that is performed throughout the lifecycle (e.g. a process defining a breakdown structure for organizing larger composite units of work performed by many Roles working in collaboration).</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodElement">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Precondition" type="xsd:string"/>
					<xsd:element minOccurs="0" name="Postcondition" type="xsd:string"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ContentCategory">
		<xsd:annotation>
			<xsd:documentation>An abstract class generalizing content category types.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentElement"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Discipline">
		<xsd:annotation>
			<xsd:documentation>A categorization of work (i.e. Tasks for Method Content), based upon similarity of concerns and cooperation of work effort.
A discipline is a collection of Tasks that are related to a major 'area of concern' within the overall project. The grouping of Tasks into disciplines is mainly an aid to understanding the project from a 'traditional' waterfall perspective. However, typically, for example, it is more common to perform certain requirements activities in close coordination with analysis and design activities. Separating these activities into separate disciplines makes the activities easier to comprehend.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="Task" type="xsd:string"/>
					<xsd:element name="SubDiscipline" type="uma:Discipline"/>
					<xsd:element name="ReferenceWorkflow" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="DisciplineGrouping">
		<xsd:annotation>
			<xsd:documentation>Used to group Disciplines.  For example, the Discipline Grouping "Software Disciplines" would be the group of all disciplines related to developing software such as "Requirements Management" or "Testing"; "IT Infrastructure Management" would be a Disciplines Grouping for disciplines such as "IT Operational Services", "IT Customer Relationships", or "IT Enabling Services".  Disciplines can be associated to more than one Discipline Grouping.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="Discipline" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Domain">
		<xsd:annotation>
			<xsd:documentation>A refineable hierarchy grouping related work products.  In other words, Domains can be further divided into sub-domains, with work product elements to be categorized only at the leaf-level of this hierarchy.
Domain is a logical grouping of work products that have an affinity to each other based on resources, timing, or relationship.  A Domain may be divided into subdomains.  For example, GS Method uses six predefined Domains for Work Products: Application, Architecture, Business, Engagement, Operations and Organization.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="WorkProduct" type="xsd:string"/>
					<xsd:element name="Subdomain" type="uma:Domain"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="RoleSet">
		<xsd:annotation>
			<xsd:documentation>Organizes Roles into categories.  It is used to group roles together that have certain commonalities.  For example, the "Analysts" Role Set could group the "Business Process Analyst", "System Analyst", as well as "Requirements Specifier" roles.  All of these work with similar techniques and have overlapping skills, but are required as distinct roles for a method (e.g. the method the IBM Rational Unified Process is based on).</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="Role" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="RoleSetGrouping">
		<xsd:annotation>
			<xsd:documentation>Role Sets can be categorized into Role Set Groupings.  For example, different methods might define similar Role Sets, which however need to be distinguished from each other on a global scale.  Thus, Role Set Groupings allow distinguishing, for example, Software Services Manager Role Sets from Software Development Organization Manager Role Sets.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="RoleSet" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Tool">
		<xsd:annotation>
			<xsd:documentation>A container/aggregate for ToolMentors.  It can also provide general descriptions of the tool and its general capabilities.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ToolMentor" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="WorkProductType">
		<xsd:annotation>
			<xsd:documentation>A second category for work products, which in contrast to Domain is more presentation oriented.  A work product can have many Work Product Types.  Examples, for a Work Product Type is "Class Diagram", which categorizes the Artifacts Analysis Model, Design Model, User Experience Model, or "Specification", which categorizes requirements specifications that define a system with a well-defined system boundary, such as use case or functional requirements specification.  A Work Product can be categorized to be of many Work Product Types.  For example, a use case model can be categorized as a Specification as well as Diagram Work Product Type.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="WorkProduct" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="CustomCategory">
		<xsd:annotation>
			<xsd:documentation>A category introduced by a method content author to structure any number of method Content Elements of any subtype based on user-defined criteria.  Because Content Categories (and therefore Custom Categories, too) are Content Elements themselves, Custom Categories can be used to recursively categorize Content Categories as well.  Custom Categories can also be nested with any Content Category.  Custom categories can be used to categorize content based on the user's criteria as well as to define whole tree-structures of nested categories allowing the user to systematically navigate and browse method content and processes based on these categories.  For example, one could create a custom category to logically organize content relevant for the user's development organization departments; e.g. a "Testing" category that groups together all roles, work products, tasks, and guidance element relevant to testing.  Another example would be categories that express licensing levels of the content grouping freely distributable method content versus content that represent intellectual property and requires a license to be purchased to be able to use it.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentCategory">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="CategorizedElement" type="xsd:string"/>
					<xsd:element name="SubCategory" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="MethodPackage">
		<xsd:annotation>
			<xsd:documentation>An abstract class for packaging Method Elements.  All Method Elements shall be located in exactly one of Method Package's concrete specializations (e.g. Content Package).   Method Package defines common properties for all of its specializations. Elements are organized in Method Packages to structure large scale of method content and processes as well as to define a mechanism for reuse.  Method Elements from one package can reuse element from other packages by defining a reusedPackages link.  For example, a work product defined in one package can be used as an input for Tasks defined in other packages.  By reusing it from one common place (i.e. the package in which it has been defined) ensures that no redundant definitions of the same elements are required.  Also maintenance of method content is greatly improved as changes can be performed in only one place.  Note, that other packages will introduce more specializations of Method Package, e.g. Process Package and Process Component.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodElement">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ReusedPackage" type="xsd:string"/>
					<xsd:element name="MethodPackage" type="uma:MethodPackage"/>
				</xsd:choice>
				<xsd:attribute name="global" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>Method Packages can have a global scope.  This means that every element of every other Method Package can see the global package's contents.  Global Method Packages are primarily used to store commonly used category definitions such as for Disciplines or Domains, which are used by many Task and Work Products respectively.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ContentPackage">
		<xsd:annotation>
			<xsd:documentation>A special Method Package that contains Content Elements and Content Elements, only.  Examples for Content Element are Artifacts, Tasks, Roles, etc.  A key separation of concerns in UMA is the distinction between Method Content and Process.  This separation is enforced by special package types, which do not allow the mixing of method content with processes.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodPackage">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ContentElement" type="uma:ContentElement"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ContentCategoryPackage">
		<xsd:annotation>
			<xsd:documentation>A special Method Package that only contains Content Category Elements.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodPackage">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ContentCategory" type="uma:ContentCategory"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ProcessElement">
		<xsd:annotation>
			<xsd:documentation>A Describable Element that represents an abstract generalization for all elements defined in the Process package.
Process Elements represents Process specific elements that are supposed to be managed in Process Packages.  The separation of Process Element from Content Element allows to clearly distinguish between pure method content from content that is represented in processes. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:DescribableElement"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="PlanningData">
		<xsd:annotation>
			<xsd:documentation>A Process Element that adds planning data to Breakdown Elements when it is used for a Process Planning Template.  For Delivery Processes and Capability Patterns this class can either not be instantiated or populated with default data.
Planning Data factors out specific optional data needed for representing planning templates.  This association allows to access planning data if it is stored for the Breakdown Element.
(NOTE, THE ATTRIBUTES FOR THIS CLASS ARE NOT COMPLETE, YET)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ProcessElement">
				<xsd:attribute name="startDate" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation>The default start date for a planed Task.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="finishDate" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation>The default finish date for a planed Task.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="rank" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>The default rank for a planed Task.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="BreakdownElement">
		<xsd:annotation>
			<xsd:documentation>An abstract generalization for any type of Method Element that is part of a breakdown structure.  It defines a set of properties available to all of its specializations.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ProcessElement">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="PresentedAfter" type="xsd:string"/>
					<xsd:element minOccurs="0" name="PresentedBefore" type="xsd:string"/>
					<xsd:element minOccurs="0" name="PlanningData" type="xsd:string"/>
					<xsd:element name="SuperActivity" type="xsd:string"/>
				</xsd:sequence>
				<xsd:attribute name="prefix" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Prefix represents an additional label that will be presented as a prefix to any Breakdown Element to indicate a user-defined sub-type for the element.  For example, if the process engineer would like to distinguish his Activities by 'Module' (as done in the IBM Rational Summit Ascendant Method), he can define a different prefix for every model to be used in addition to naming Activities, e.g. "SRA.Establish Requirements" with SRA indicating that this Activity belongs to the "Software Requirements Analysis" module.  Another common application for prefix is to qualify roles in Role Descriptors.  For example, "Customer.Architect" would define a "Customer" prefix for the Role Descriptor "Architect" expressing that this is an architect on the customer side and not the development team side.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isPlanned" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>A key application for Development Processes expressed with Breakdown structures is to generate a project plan from it.  A process as defined in UMA (cf. with Sections XX and 5.2) is a multi-dimensional structure defining what work is being performed at what time by which roles using which input and producing what outputs.  A project plan as it is represented in project planning tools such as IBM Rational Portfolio Manager or Microsoft Project normally does not need all this information and is normally limited to just representing a subset.  For example, a typical MS Project plan only represents the work breakdown consisting of Tasks and Activities (sometimes referred to as summary tasks).  It does not show the input and output Work Products for a Task, but it can show which roles shall be staffed for performing the Task.  However, such role allocation need to be replaced with concrete resources when instantiating the plan for a concrete project.  Sometimes project plans can then again be organized differently by organizing work by deliverables in which Work Products are mapped to the plan's summary tasks and Task that have these work products as output mapped below such as summary task.  Therefore, a process can make recommendations about which elements to include and which to exclude when generating a plan.  When the isPlanned attribute is set to False for an instance of a Breakdown Element, then this element shall not be not included when a concrete project plan is being generated from the breakdown structure that contains this element.
</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="hasMultipleOccurrences" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>Just as the isPlanned attribute the hasMultipleOccurrences attribute has an impact on generating plans from a Process.  When this attribute is set to True for a Breakdown Element then it will typically occur multiple times within the same Activity.  For example, a Task such as "Detail Use Case" would be performed for every use case identified for a particular Iteration or Activity.  Generating a plan would list one Task instance per use case.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isOptional" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>Indicates that the Breakdown Element describes work, a work result, or even work resources, which inclusion is not mandatory when performing a project that is planned based on a process containing this element.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="WorkOrder">
		<xsd:annotation>
			<xsd:documentation>Represents a relationship between two Breakdown Elements in which one Breakdown Elements depends on the start or finish of another Breakdown Elements in order to begin or end.  
The Work Order class defines predecessor and successor relations amongst Breakdown Elements.  This information is in particular critical for planning applications.  See more details on different types of Work Order relationships at Work Order Type.</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="linkType" type="uma:WorkOrderType">
					<xsd:annotation>
						<xsd:documentation>This attribute expresses the type of the Work Order relationship by assigning a value from the Work Order Type enumeration.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<xsd:complexType name="WorkBreakdownElement">
		<xsd:annotation>
			<xsd:documentation>A special Breakdown Element that provides specific properties for Breakdown Elements that represent or refer to Work Definitions.  For example its subclass Activity defines work as it is also a subclass of Work Definition.  Its subclass Task Descriptor does not define work by itself, but refers to a Work Definition and therefore can have the same common properties and Work Breakdown Element has.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:BreakdownElement">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="Predecessor" type="uma:WorkOrder"/>
				</xsd:choice>
				<xsd:attribute name="isRepeatable" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>This attribute is used to define repetition of work, e.g. iterations.  A Process Work Definition with this attribute set to True shall be repeated more than once on the same set of artifacts.  For example, for an instance of Iteration (defined as a special Process Work Definition below) this attribute is set to True by default indicating that every sub-Activity will be repeated more than once.  However, any Process Work Definition can set this attribute to True to define iterations (e.g. to iterate one Activity consisting of many sub-activities or even Phases, but to iterate just one Task).</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isOngoing" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>If the isOngoing attribute is set to True for a Process Work Definition instance, then the element describes an ongoing piece of work without a fixed duration or end state.  For example, the Process Work Definition could represent work of an administrator continuously (e.g. 3h a day) working to ensure that systems are kept in a certain state.  Another example would be program management work overseeing many different projects being scheduled for one particular project at specific reoccurring intervals during the whole lifecycle of the project.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="isEventDriven" type="xsd:boolean">
					<xsd:annotation>
						<xsd:documentation>The isEventDriven attribute indicates that the Process Work Definition describes an instance of work which is not started because it has been scheduled to start at a certain point of time, because preceding work is being completed, or input work products are available, but because another specific event has occurred.  Examples for such events are exceptions or problem situations which require specific work to be performed as a result.  Also change management work can be modeled as event driven work analyzing a change request or defect and allocating work dynamically to resources to deal with it following the work described with such Process Work Definition.  The events themselves are not modeled in this version of the specification.  They shall be described as part of the normal descriptions fields available.
</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Milestone">
		<xsd:annotation>
			<xsd:documentation>A special Breakdown Element that describes a significant event in a development project, such as a major decision, completion of a deliverable, or meeting of a major dependency (like completion of a project phase).  Because, Milestone is commonly used to refer to both the event itself and the point in time at which the event is scheduled to happen, it is modeled as a Breakdown Element (i.e. it appears as part of a breakdown structure).</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkBreakdownElement"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Activity">
		<xsd:annotation>
			<xsd:documentation>A Work Breakdown Element and Work Definition which supports the nesting and logical grouping of related Breakdown Elements forming breakdown structures.  Although Activity is a concrete meta-class, other classes which represent breakdown structures derive from it; such as Phase, Iteration, Delivery Process, or Capability Pattern.
Activity represents a grouping element for other Breakdown Elements such as Activities, Descriptors, Milestones, etc.  It is not per-se a 'high-level' grouping of only work as in other meta-models, but groups any kind of Breakdown Elements.  For example, one can define valid Activities that group only Work Products Descriptors without any matching Task Descriptors.  Activities also inherit all properties from Work Breakdown Element and indirectly from Process Element; i.e. Activity is ready to have a full content description attached to it.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkBreakdownElement">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Precondition" type="xsd:string"/>
					<xsd:element minOccurs="0" name="Postcondition" type="xsd:string"/>
					<xsd:choice maxOccurs="unbounded" minOccurs="0">
						<xsd:element name="BreakdownElement" type="uma:BreakdownElement"/>
						<xsd:element name="Checklist" type="xsd:string"/>
						<xsd:element name="Concept" type="xsd:string"/>
						<xsd:element name="Example" type="xsd:string"/>
						<xsd:element name="Guideline" type="xsd:string"/>
						<xsd:element name="Roadmap" type="xsd:string"/>
						<xsd:element name="ReusableAsset" type="xsd:string"/>
						<xsd:element name="SupportingMaterial" type="xsd:string"/>
						<xsd:element name="Whitepaper" type="xsd:string"/>
					</xsd:choice>
				</xsd:sequence>
				<xsd:attribute name="variabilityType" type="uma:VariabilityType"/>
				<xsd:attribute name="variabilityBasedOnElement" type="xsd:string"/>
				<xsd:attribute name="IsEnactable" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Phase">
		<xsd:annotation>
			<xsd:documentation>A special Activity which prescribes pre-defined values for its instances for the attributes prefix ('Phase') and isRepeatable ('False').  It has been included into the meta-model for convenience and to provide a special stereotype, because it represents a very commonly used Activity type.
Phase represent a significant period in a project, ending with major management checkpoint, milestone or set of Deliverables.  It is included in the model as a predefined special Activity, because of its significance in defining breakdowns.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Activity"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Iteration">
		<xsd:annotation>
			<xsd:documentation>A special Activity which prescribes pre-defined values for its instances for the attributes prefix ('Iteration') and isRepeatable ('True').  It has been included into the meta-model for convenience and to provide a special stereotype, because it represents a very commonly used Activity type.
Iteration groups a set of nested Activities that are repeated more than once.  It represents an important structuring element to organize work in repetitive cycles.  The concept of Iteration can be associated with different rules in different methods.  For example, the IBM Rational Unified Process method framework (RUP) defines a rule that Iterations are not allowed to span across Phases.  In contrast IBM Global Services Method (GSMethod) based method frameworks this rule does not apply and Iteration can be defined which nest Phases.  Rules like these, which play an important role for each individual method and are therefore not enforced by this meta-model.  Instead, process authors are expected to follow and check these rules manually.  (Note: Any Breakdown Element can be repeated; however, Iterations has been introduced as a special meta-model concept, because of its important role for many methods.)</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Activity"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="BreakdownElementDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Content Description that is used to store the textual description for a Breakdown Element.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ContentDescription">
				<xsd:attribute name="usageGuidance" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Provides information and guidance on the meaning of the Boolean flag values and under what circumstances they should be overridden. For example, it describes why the breakdown element is optional or considerations for repeating it and differences in the individual occurrences of this Breakdown Element across the lifecycle.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ActivityDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Breakdown Element Description that is used to store the textual description for an Activity.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:BreakdownElementDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Alternatives" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Comprises of summaries describing important exceptional and non-standard ways of doing the work of this Activity not covered by the Activity's Tasks.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="HowToStaff" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Provides background on who should be involved in this activity what are the required skills, experience,  and perhaps attitudes.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="Purpose" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Summarizes the main reason for performing this Activity, describes what the activity as a whole is intended to achieve.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="DescriptorDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Breakdown Element Description that is used to store the textual description for a Descriptor.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:BreakdownElementDescription">
				<xsd:choice minOccurs="0">
					<xsd:element name="RefinedDescription" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>A Descriptor might add refinements to the main description of the Content Element it refers to.  For example, it could provide additional information about a Work Product relevant for the specific point in time in the process this Work Product type is being used.  It could describe additional skills needed for a Role at that particular point in time in a process, etc. </xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ProcessDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Activity Description that is used to store the textual description for a Process.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ActivityDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Scope" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Defines the scope of the Process, i.e. which types of projects does it address and which not.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="UsageNotes" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Any additional notes on how to apply and instantiate this process for a project.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
				<xsd:attribute name="externalId" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>An external visible number that is used to reference this delivery patterns and models. It is used like a synonym.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="DeliveryProcessDescription">
		<xsd:annotation>
			<xsd:documentation>A generalized Process Description that is used to store the textual description for a Delivery Process.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ProcessDescription">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Scale" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Outlines characteristics about the size of a typical project that performs this project expressed in team size, man years, etc.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="ProjectCharacteristics" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Characterizes the project that would typically perform this Process</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="RiskLevel" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Outlines typical project risks that are addressed with this process.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="EstimatingTechnique" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Describes the Estimation Techniques provided for this Process.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="ProjectMemberExpertise" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Provides a profile of a typical project team, the distribution of roles, skills required for a team performs a project based on this process.</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
					<xsd:element minOccurs="0" name="TypeOfContract" type="xsd:string">
						<xsd:annotation>
							<xsd:documentation>Provides background information about the coI'm chaI'm ntracts that need to be established between a project team that performs this process and a client (e.g. for an IGS engagement).</xsd:documentation>
						</xsd:annotation>
					</xsd:element>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Descriptor">
		<xsd:annotation>
			<xsd:documentation>An abstract generalization for special Breakdown Elements that references one concrete Content Element.  A descriptor provides a representation of a Content Element within breakdown structures.  In addition to just referencing Content Elements it allows overriding the Content Elements structural relationships by defining its own sets of associations.
Descriptors are the key concept for realizing the separation of processes from method content.  A Descriptor can be characterized as a reference object for one particular Content Element, which has its own relationships and properties.  When a Descriptor is created it shall be provided with congruent copies of the relationships defined for the referenced content element.  However, a user can modify these relationships for the particular process situation for which the descriptor has been created. </xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:BreakdownElement">
				<xsd:attribute name="isSynchronizedWithSource" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="WorkProductDescriptor">
		<xsd:annotation>
			<xsd:documentation>A special Descriptor that represents a Work Product in the context of one specific Activity.  Every breakdown structure can define different relationships of Work Product Descriptors to Task Descriptors and Role Descriptors.  Therefore one Work Product can be represented by many Work Product Descriptors each within the context of an Activity with its own set of relationships.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Descriptor">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="WorkProduct" type="xsd:string"/>
					<xsd:choice maxOccurs="unbounded" minOccurs="0">
						<xsd:element name="ImpactedBy" type="xsd:string"/>
						<xsd:element name="Impacts" type="xsd:string"/>
						<xsd:element name="DeliverableParts" type="xsd:string"/>
					</xsd:choice>
				</xsd:sequence>
				<xsd:attribute name="activityEntryState" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Given that an instance of Work Product Descriptor has been created for a specific Activity, then the Activity Entry State attribute specifies the desired state of instances of the referenced Work Product when work on the Activity is initiated (i.e. work on the Activity's Task Descriptors is being initiated that use this Work Product Descriptor as input).  
For some Work Products state is expressed in percentage of completion, compliance to work product checklist, informal state descriptions, etc.  Others have very specific states expressed as enumerations such as [identified, briefly described, outlined, detailed] for use cases.  Other Work Product states relate to some quality measures or lifecycle states such as [reviewed, implemented, tested].</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="activityExitState" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Given that an instance of Work Product Descriptor has been created for a specific Activity, then the Activity Exist State attribute specifies the desired state of instances of the referenced Work Product when work on the Activity is finished (i.e. work on the Activity's Task Descriptors has finished that have this Work Product Descriptor as output).
For some Work Products state is expressed in percentage of completion, compliance to work product checklist, informal state descriptions, etc.  Others have very specific states expressed as enumerations such as [identified, briefly described, outlined, detailed] for use cases.  Other Work Product states relate to some quality measures or lifecycle states such as [reviewed, implemented, tested].</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="RoleDescriptor">
		<xsd:annotation>
			<xsd:documentation>A special Descriptor that represents a Role in the context of one specific Activity.  Every breakdown structure can define different relationships of Role Descriptors to Task Descriptors and Work Product Descriptors.  Therefore one Role can be represented by many Role Descriptors each within the context of an Activity with its own set of relationships.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Descriptor">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Role" type="xsd:string"/>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="ResponsibleFor" type="xsd:string"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TaskDescriptor">
		<xsd:annotation>
			<xsd:documentation>A special Descriptor that represents a proxy for a Task in the context of one specific Activity.  Every breakdown structure can define different relationships of Task Descriptors to Work Product Descriptors and Role Descriptors. Therefore one Task can be represented by many Task Descriptors each within the context of an Activity with its own set of relationships.
A key difference between Method Content and Process is that a Content Element such as Task describes all aspects of doing work defined around this Task.  This description is managed in steps, which are modeled as Sections of the Tasks' Content Descriptions.  When applying a Task in a Process' Activity with a Task Descriptor a Process Engineer needs to indicate that at that particular point in time in the Process definition for which the Task Descriptor has been created, only a subset of steps shall be performed.  He defines this selection using the selectedSteps association.  If he wants to add steps to a Task Descriptor, he can describe these either pragmatically in the refinedDescription attribute or 'properly' create a contributing Task to the Task the Task Descriptor refers to.
</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:WorkBreakdownElement">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Task" type="xsd:string"/>
					<xsd:element minOccurs="0" name="PerformedPrimarilyBy" type="xsd:string"/>
					<xsd:choice maxOccurs="unbounded" minOccurs="0">
						<xsd:element name="AdditionallyPerformedBy" type="xsd:string"/>
						<xsd:element name="AssistedBy" type="xsd:string"/>
						<xsd:element name="ExternalInput" type="xsd:string"/>
						<xsd:element name="MandatoryInput" type="xsd:string"/>
						<xsd:element name="OptionalInput" type="xsd:string"/>
						<xsd:element name="Output" type="xsd:string"/>
					</xsd:choice>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="Step" type="uma:Section"/>
				</xsd:sequence>
				<xsd:attribute name="isSynchronizedWithSource" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="CompositeRole">
		<xsd:annotation>
			<xsd:documentation>A special Role Descriptor that relates to more then one Role.  It represents a grouping of Roles with the main purpose of simplification, i.e. reducing the number of roles for a process.
A Composite Role is a grouping of Roles that can be used in an Activity or Process to reduce the number of Roles.  A typical application would be a process for a small team in which a standard set of roles from the method content would be all performed by one or more resource.  By using Composite Role the process would suggest a typical clustering of Roles to Resources.  A Composite Role could perform all Tasks defined for the Roles it refers to.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:RoleDescriptor">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="AggregatedRole" type="uma:Role"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="TeamProfile">
		<xsd:annotation>
			<xsd:documentation>A Breakdown Element that groups Role Descriptors or Resource Definitions defining a nested hierarchy of teams and team members.
Work assignments and Work Product responsibilities can be different from Activity to Activity in a development project. Different phases require different staffing profiles, i.e. different skills and resources doing different types of work.  Therefore, a process needs to define such different profiles in a flexible manner.  Whereas Core Method Content defines standard responsibilities and assignments, a process express by a breakdown structures needs to be able refine and redefine these throughout its definition.  Role Descriptors, Resource Definitions, as well as Team Profiles provide the data structure necessary to achieve this flexibility and to provide a process user with the capability to define different teams and role relationships for every Activity (including Activities on any nesting-level as well as Iterations or Phases).
Hence, in addition to the work breakdown and work product breakdown structures defined so far, Team Profiles are used to define a third type of breakdown structure: team breakdown structures.  These are created as an Activity specific hierarchy of Team Profiles comprising of Role Descriptors and Resource Definitions.  These structures can be presented as well-known Org-Charts.  Just as with any other Breakdown Element and Descriptors, Team Profiles can be defined within the scope of any Activity in a breakdown structure.  In other words every Activity can define its own Team Profiles consisting of Activity specific Role Descriptors and Resource Definitions.  Typically, Team Profiles are defined on the level of Iterations or Phases or other higher-level Activity.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:BreakdownElement">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="Role" type="xsd:string"/>
					<xsd:element name="SuperTeam" type="xsd:string"/>
					<xsd:element name="SubTeam" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="Process">
		<xsd:annotation>
			<xsd:documentation>A special Activity that describes a structure for particular types of development projects.  To perform such a development project a Processes would be 'instantiated' and adapted for the specific situation.  Process is an abstract class and this meta-model defines different special types of Processes for different process management applications and different situations of process reuse.  Every Process comprises of and is the top-level element of an n-level breakdown structure using the Nesting association defined on Activity.
Core Method Content provides step-by-step explanations, describing how very specific development goals are achieved independent of the placement of these steps within a development lifecycle.  Processes take these method elements and relate them into semi-ordered sequences that are customized to specific types of projects.  Thus, a process is a set of partially ordered work descriptions intended to reach a higher development goal, such as the release of a specific software system.  A process and the process meta-model structure defined in this specification focuses on the lifecycle and the sequencing of work in breakdown structures.  To achieve this it uses the Descriptor concept referencing method content and allowing defining time-specific customizations of the referenced content (e.g. defining a focus on different steps of the same Task and providing input Work Products in different states within the different Phases of a process lifecycle in which the same Task is performed).</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Activity">
				<xsd:sequence>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="IncludesPattern" type="xsd:string"/>
					<xsd:element minOccurs="0" name="DefaultContext" type="xsd:string"/>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="ValidContext" type="xsd:string"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="DeliveryProcess">
		<xsd:annotation>
			<xsd:documentation>A special Process describing a complete and integrated approach for performing a specific project type.  It describes a complete project lifecycle end-to-end and shall be used as a reference for running projects with similar characteristics as defined for the process.  A Delivery Process is related to specific supporting information such as Roadmaps (inherited via Activity) as well as Communications and Education Material.
A Delivery Process is a Process that covers a whole development lifecycle from beginning to end.  A Delivery Process shall be used as a template for planning and running a project.  It provides a complete lifecycle model with predefined phases, iterations, and activities that have been detailed by sequencing referencing method content in breakdown structures.  It is defined on the basis of experience with past projects or engagements, and/or the best practice use of a development or delivery approach.  It defines what gets produced, how those items are produced, and the required staffing in the form of integrated Work, Work Product, and Team Breakdown Structures.  For example, a process engineer can define alternative Delivery Processes for software development projects that differ in the scale of the engagement and staffing necessary, the type of the software application to be developed, the development methods and technologies to be used, etc.  Although, the Delivery Process aims to cover a whole project it keeps certain decision that are too project specific open.  For example, the breakdown structure defines which Breakdown Elements have multiple occurrences or is repeatable via it respective attributes, but does not say how many occurrences and how many repeats/iterations it will have.  These decisions have to be done by a project manager when planning a concrete project, project phase, or project iterations.  A Delivery Process is always a complete description of a process in terms of completeness of the lifecycle, as well as in terms of all three views on the process which are the Work Breakdown Structure, Work Product Breakdown Structure, and Team Breakdown Structure have to be fully and consistently populated.  Consistency of a Delivery Process is actually ensured by the fact that all three breakdowns are represented by one single data structure and one particular breakdown such as Team Breakdown is just a view on that data structure.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Process">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="CommunicationsMaterial" type="xsd:string"/>
					<xsd:element name="EducationMaterial" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="CapabilityPattern">
		<xsd:annotation>
			<xsd:documentation>A special Process that describes a reusable cluster of doing work in common process areas.  Capabilities Patterns express and communicate process knowledge for a key area of interest such as a Discipline and can be directly used by process practitioner to guide his work.  They are also used as building blocks to assemble Delivery Processes or larger Capability Patterns ensuring optimal reuse and application of the key practices they express.
A Capability Pattern is a special Process that describes a reusable cluster of doing work in a general process area that provides a consistent development approach to common problems.  Examples for Capability Pattern could be 'use case-based requirements management', 'use case analysis', or 'unit testing'. Typically but not necessarily, Capability Patterns have the scope of one discipline providing a breakdown of reusable complex Activities, relationships to the Roles which perform Tasks within these Activities, as well as to the Work Products that are used and produced.  A capability pattern does not relate to any specific phase or iteration of a development lifecycle, and should not imply any.  In other words, a pattern should be designed in a way that it is applicable anywhere in a Delivery Process.  This enables its Activities to be flexibly assigned to whatever phases there are in the Delivery Process to which it is being applied.  It is a good practice to design a Capability Pattern to produce one or more generic Deliverables.  The typical configuration is that each Activity in the Capability Pattern produces one Deliverable, and the last Task Descriptor in the Activity explicitly outputs just this Deliverable.  This enables the process engineer to select Patterns or just Activities by deciding which Deliverables are required.  It also offers a simple integration approach: an Activity from a capability pattern is linked to the Phase or Iteration which is required to produce the Activity's Deliverable.  Key applications areas of / areas of reuse for Capability Patterns are:
- To serve as building blocks for assembling Delivery Processes or larger Capability Patterns.  Normally developing a Delivery Process is not done from scratch but by systematically applying and binding patterns.  In addition to the standard pattern application of 'copy-and-modify', which allows the process engineer to individually customize the pattern's content to the particular situation it is applied for, the Plugin meta-model package (Section 6.1) introduces even more sophisticated inheritance relationships that support dynamic binding of patterns (i.e. the pattern is referenced and not copied).  This unique new way of reusing process knowledge allows to factor out commonly reoccurring Activities into patterns and to apply them over and over again for a process.  When the pattern is being revised or updated, all changes will be automatically reflected in all pattern application in all processes because of the dynamic binding.
- To support direct execution in a development project that does not work following a well-defined process, but works based on loosely connected process fragments of best practices in a flexible manner (e.g. Agile Development).
- To support process education by describing knowledge for a key area such as best practices on how to perform the work for a Discipline (e.g. Requirements Management), for a specific development technique (aspect-oriented development), or a specific technical area (e.g. relational database design), which is used for education and teaching.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Process"/>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ProcessPlanningTemplate">
		<xsd:annotation>
			<xsd:documentation>A special Process that is prepared for instantiation by a project planning tool.  Typically, it is created based on a Process such as a Delivery Process as a whole (e.g. in case of a waterfall-based development approach) or in parts (e.g. in case of an iterative development approach).
A Process Planning Template represents a partially finished plan for a concrete project.  It uses the same information structures as all other Process Types to represent templates for project plans.  However, certain planning decisions have already been applied to the template as well as information has been removed and/or reformatted to be ready for export to a specific planning tool.  Examples for such decisions are: a template has been created to represent a plan for a particular Iteration in an iterative development project, which fr example distinguishes early from late iterations in the Elaboration phase of a project; if the targeted planning tool cannot represent input and output of Task, then these have been removed from the structure; certain repetitions have been already applied, e.g. stating that a cycle of specific Task grouped in an Activity have to be repeated n-times; etc.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:Process">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="BaseProcess" type="xsd:string"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ProcessPackage">
		<xsd:annotation>
			<xsd:documentation>A special Method Package that contains Process Elements, only.
A key separation of concerns in UMA is the distinction between Method Content and Process.  This separation is enforced by special package types, which do not allow the mixing of method content with processes.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodPackage">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="ProcessElement" type="uma:ProcessElement"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ProcessComponentInterface">
		<xsd:annotation>
			<xsd:documentation>Comprises of a list of interface specifications (similar to operation declarations) that express inputs and outputs for a process component.  These interface specifications are expressed using Task Descriptors which are not linked to Tasks that are related to Work Product Descriptors as well as optional a Role Descriptor.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:BreakdownElement">
				<xsd:choice maxOccurs="unbounded" minOccurs="0">
					<xsd:element name="InterfaceSpecification" type="uma:TaskDescriptor"/>
					<xsd:element name="InterfaceIO" type="uma:WorkProductDescriptor"/>
				</xsd:choice>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="ProcessComponent">
		<xsd:annotation>
			<xsd:documentation>A special Process Package that applies the principles of encapsulation.  A Process Component realizes one or more Interfaces which specify inputs and outputs of the component. There might be many components realizing the same interfaces, but using different techniques to achieve similar outputs for similar inputs.  Whereas the Component Interfaces represent component specifications (black box descriptions of the component), good candidates for component realizations can be found in Capability Patterns (white box descriptions for the component).
UMA supports replaceable and reusable Process Components realizing the principles of encapsulation. Certain situations in a software development project might require that concrete realizations of parts of the process remain undecided or will be decided by the executing team itself (e.g. in outsourcing situations).  UMA provides a unique component concept defining interfaces for work product input and output, allowing treating the actual definition of the work that produces the outputs as a "black box".  At any point during a project the component "realization" detailing the work can be added to the process.  The component approach also allows that different styles or techniques of doing work can be replaced with one another.  For example, a software code output of a component could be produced with a model-driven development or a code-centric technique.  The component concept encapsulates the actual work and lets the development team choose the appropriate technique and fill the component's realization with their choice of Activities that produce the required outputs.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:ProcessPackage">
				<xsd:sequence>
					<xsd:element minOccurs="0" name="Copyright" type="xsd:string"/>
					<xsd:element minOccurs="0" name="Interface" type="uma:ProcessComponentInterface"/>
					<xsd:element name="Process" type="uma:Process"/>
				</xsd:sequence>
				<xsd:attribute name="authors" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every Method Unit is being created and owned by an author or authoring team.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="changeDate" type="xsd:dateTime">
					<xsd:annotation>
						<xsd:documentation>The date the last change that resulted into this version has been made.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="changeDescription" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>The description of the last change that resulted into this version.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
				<xsd:attribute name="version" type="xsd:string">
					<xsd:annotation>
						<xsd:documentation>Every Package has a version number used to track changes.</xsd:documentation>
					</xsd:annotation>
				</xsd:attribute>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:complexType name="MethodPlugin">
		<xsd:annotation>
			<xsd:documentation>A special Method Unit that represents a physical container for Method Packages.  It defines a granularity level for the modularization and organization of method content and processes.  A Method Plugin can extend many other Method Plugins and it can be extended by many Method Plugins.  It can also be used stand-alone, i.e. with no Extension relationship to other plug-ins.
Method Plugin conceptually represents a unit for configuration, modularization, extension, packaging, and deployment of method content and processes.  A Process Engineer shall design his Plugins and allocate his content to these Plugins with requirements for extensibility, modularity, reuse, and maintainability in mind.
Special extensibility mechanisms defined for the meta-classes Variability Element and Process Contribution allow Plugin content to directly contribute new content, replace existing content, or to cross-reference to any Content Element or Process within another Plugin that it extends.  Similar to UML 2.0's 'package merge' mechanism transformation interpretations, interpreting these Method Plugin mechanisms results into new extended Method Content and Processes.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodUnit">
				<xsd:sequence>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="ReferencedMethodPlugin" type="xsd:string"/>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="MethodPackage" type="uma:MethodPackage"/>
				</xsd:sequence>
				<xsd:attribute name="userChangeable" type="xsd:boolean"/>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="MethodPlugin" type="uma:MethodPlugin">
		<xsd:annotation>
			<xsd:documentation>A special Method Unit that represents a physical container for Method Packages.  It defines a granularity level for the modularization and organization of method content and processes.  A Method Plugin can extend many other Method Plugins and it can be extended by many Method Plugins.  It can also be used stand-alone, i.e. with no Extension relationship to other plug-ins.
Method Plugin conceptually represents a unit for configuration, modularization, extension, packaging, and deployment of method content and processes.  A Process Engineer shall design his Plugins and allocate his content to these Plugins with requirements for extensibility, modularity, reuse, and maintainability in mind.
Special extensibility mechanisms defined for the meta-classes Variability Element and Process Contribution allow Plugin content to directly contribute new content, replace existing content, or to cross-reference to any Content Element or Process within another Plugin that it extends.  Similar to UML 2.0's 'package merge' mechanism transformation interpretations, interpreting these Method Plugin mechanisms results into new extended Method Content and Processes.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="MethodConfiguration">
		<xsd:annotation>
			<xsd:documentation>A collection of selected Method Models and MethodPackages. A configuration can be exported into its own standalone library when it includes the full transitive closure of all elements all other elements depend on.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodUnit">
				<xsd:sequence>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="BaseConfiguration" type="xsd:string"/>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="MethodPluginSelection" type="xsd:string"/>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="MethodPackageSelection" type="xsd:string"/>
					<xsd:element minOccurs="0" name="DefaultView" type="xsd:string"/>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="ProcessView" type="xsd:string"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="MethodConfiguration" type="uma:MethodConfiguration">
		<xsd:annotation>
			<xsd:documentation>A collection of selected Method Models and MethodPackages. A configuration can be exported into its own standalone library when it includes the full transitive closure of all elements all other elements depend on.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
	<xsd:complexType name="MethodLibrary">
		<xsd:annotation>
			<xsd:documentation>A Method Library is a physical container for Method Plugins and Method Configuration definitions.  All Method Elements are stored in a Method Library.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexContent>
			<xsd:extension base="uma:MethodUnit">
				<xsd:sequence>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="MethodPlugin" type="uma:MethodPlugin"/>
					<xsd:element maxOccurs="unbounded" minOccurs="0" name="MethodConfiguration" type="uma:MethodConfiguration"/>
				</xsd:sequence>
			</xsd:extension>
		</xsd:complexContent>
	</xsd:complexType>
	<xsd:element name="MethodLibrary" type="uma:MethodLibrary">
		<xsd:annotation>
			<xsd:documentation>A Method Library is a physical container for Method Plugins and Method Configuration definitions.  All Method Elements are stored in a Method Library.</xsd:documentation>
		</xsd:annotation>
	</xsd:element>
</xsd:schema>
