<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSPY v2004 rel. 4 U (http://www.xmlspy.com) by Sean Barnum (Cigital, Inc.) -->
<!-- edited with XMLSpy v2008 (http://www.altova.com) by Sean Barnum (Cigital, Inc.) -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:element name="Environment">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation> Description and globally unique ID for a kind of environment or
					context that is required. Used in Attack Steps, Indicators of Susceptibility,
					and Security Controls, etc. </xs:documentation>
			</xs:annotation>
			<xs:all>
				<xs:element name="Environment_Title" type="xs:token"/>
				<xs:element name="Environment_Description" type="xs:token"/>
			</xs:all>
			<xs:attribute name="ID" type="xs:ID" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="Indicator">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation> Either positive, negative, or inconclusive indicators that the
					system under consideration is susceptible to the attack step. That is, some
					reason to believe that the attack step will or will not succeed.
				</xs:documentation>
			</xs:annotation>
			<xs:all>
				<xs:element name="Indicator_Description" type="xs:token">
					<xs:annotation>
						<xs:documentation>This field contains a brief description of the indicator.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="Environments" type="xs:IDREFS">
					<xs:annotation>
						<xs:documentation>References the defined environments where this indicator of susceptibility  is applicable.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:all>
			<xs:attribute name="ID" type="xs:ID" use="required">
				<xs:annotation>
					<xs:documentation>This field contains a unique integer identifier for the indicator.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="type" use="required">
				<xs:annotation>
					<xs:documentation>Each indicator has a mandatory type attribute that can be one of the values “Positive,” “Negative,” or “Inconclusive.” For example, a positive indicator of susceptibility to parameter tampering is the existence of parameters in the URL. Although it does not guarantee susceptibility, it indicates a cause for further examination. A negative indicator for the technique of privilege escalation is a lack of credentials and user identifiers in an application. Again, this is not a conclusive measure of resistance to attack, but an indicator that the attack step technique is unlikely to bear significant fruit. An inconclusive indicator of susceptibility to dynamic code injection is a page whose URL ends in .jsp, .asp, or .do but which has no visible explicit parameters. Such URLs typically indicate dynamic processing, but since no visible parameters are passed, it is inconclusive whether dynamic code could be injected into the application.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:token">
						<xs:enumeration value="Positive"/>
						<xs:enumeration value="Negative"/>
						<xs:enumeration value="Inconclusive"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="Attack_Step_Technique">
		<xs:complexType>
			<xs:annotation>
				<xs:documentation>
				A particular technique that may accomplish this attack step.
			</xs:documentation>
			</xs:annotation>
			<xs:all>
				<xs:element name="Attack_Step_Technique_Description" type="xs:token">
					<xs:annotation>
						<xs:documentation>This field contains a brief description of the attack step technique.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="Environments" type="xs:IDREFS">
					<xs:annotation>
						<xs:documentation>References the defined environments where this attack step technique is applicable.</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="Outcome">
		<xs:complexType mixed="true">
			<xs:annotation>
				<xs:documentation> An indicator of the outcome of an Attack Step. Successful
					outcomes are those that further the attacker's goals. Failure outcomes are those
					that do not further the attacker's goals. Inconclusive outcomes are those that
					do not indicate success or failure, but are likely outcomes. </xs:documentation>
			</xs:annotation>
			<xs:attribute name="ID" type="xs:ID" use="required">
				<xs:annotation>
					<xs:documentation>This field contains a unique integer identifier for the outcome.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="type" use="required">
				<xs:annotation>
					<xs:documentation>An outcome has a mandatory type attribute that can be one of the values “success,” “failure,” or “inconclusive.” It indicates what results of executing the attack step techniques should be considered successes, which should be considered failures, and which ones are inconclusive. Outcomes’ successes are determined relative to the attacker’s point of view. It is a success if the attack step got the attacker closer to his goal of attacking the application. It is a failure if the attacker got no closer to his goal.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:token">
						<xs:enumeration value="Success"/>
						<xs:enumeration value="Failure"/>
						<xs:enumeration value="Inconclusive"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="Security_Control">
		<xs:complexType mixed="true">
			<xs:annotation>
				<xs:documentation> An action that a defender can take against a particular Attack
					Step to avoid the impact or to thwart the attacker's goals. A detective control
					alerts the defender to the fact that the attack step was carried out (regardless
					of whether the step was successful or not). A corrective control reacts to the
					attack step in some way to attempt to neutralize or minimize the effectiveness
					of the attack step. Preventative controls try to make an attack step impossible
					to complete. </xs:documentation>
			</xs:annotation>
			<xs:attribute name="ID" type="xs:ID" use="required">
				<xs:annotation>
					<xs:documentation>This field contains a unique integer identifier for the security control.</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="type" use="required">
				<xs:annotation>
					<xs:documentation>Each security control has a mandatory type attribute that can be one of the values “Detective,” “Corrective,” or “Preventative.” Detective controls detect an attacker’s activities in the attack step, whether the activities are successful or not. Corrective controls attempt to mitigate an attacker’s success by responding to a successful outcome. They are not related to or normalized against outcomes. Preventative controls are those that make the attack step unlikely or impossible to succeed.</xs:documentation>
				</xs:annotation>
				<xs:simpleType>
					<xs:restriction base="xs:token">
						<xs:enumeration value="Detective"/>
						<xs:enumeration value="Corrective"/>
						<xs:enumeration value="Preventative"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="Attack_Execution_Flow">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Attack_Phase" maxOccurs="3">
					<xs:annotation>
						<xs:documentation>Segment the attack steps into the various phases of attack. One of three phases "Explore," "Experiment," or "Exploit."  Each phase should appear at most once, and attack steps should be grouped by what kind of activities the attacker is carrying out. The exploration and experimentation phases may or may not occur during a particular attack, because the attacker may already know exactly how to exploit a system.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:annotation>
								<xs:documentation> One of three phases "Explore," "Experiment," or
									"Exploit." Each phase should appear at most once, and attack
									steps should be grouped by what kind of activities the attacker
									is carrying out. </xs:documentation>
							</xs:annotation>
							<xs:element name="Attack_Step" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>Brief description of an individual action step
										in carrying out the attack</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Attack_Step_Title" type="xs:string" minOccurs="0">
											<xs:annotation>
												<xs:documentation>This field contains a short descriptive title for the attack step. It should be kept as short as possible but also clearly convey the nature of the attack step being described.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Attack_Step_Description" type="xs:string">
											<xs:annotation>
												<xs:documentation>This field contains a brief description of the attack step.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="Attack_Step_Technique" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field captures various techniques that the attacker can use to achieve the attack step’s goal. For example, an attacker may use tools such as WebScarab and Tamper Data in the experimentation phase of a SQL Injection attack pattern. The techniques include references to environments, because not all techniques work in all environments</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="Indicator" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>These are indicators that the application may or may not be susceptible to the given attack step (not necessarily the pattern as a whole). </xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="Outcome" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field captures possible outcomes for this attack step. </xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="Security_Control" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field captures security controls for this attack step that describe ways in which the attack step can be detected, corrected, or prevented. These are presented from a defender’s point of view, where the defender may be a developer, tester, operations administrator, or other resource resisting the attacker. </xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="Name" use="required">
							<xs:annotation>
								<xs:documentation>"Explore," "Experiment," or "Exploit." </xs:documentation>
							</xs:annotation>
							<xs:simpleType>
								<xs:restriction base="xs:token">
									<xs:enumeration value="Explore"/>
									<xs:enumeration value="Experiment"/>
									<xs:enumeration value="Exploit"/>
									<xs:enumeration value=""/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Common_Attack_Pattern_Enumeration">
		<xs:annotation>
			<xs:documentation>This is the enumerated catalog of common attack patterns.</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:sequence>
				<xs:element name="Attack_Pattern" maxOccurs="unbounded">
					<xs:annotation>
						<xs:documentation>This element is an individual attack pattern.</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:sequence>
							<xs:element name="Description">
								<xs:annotation>
									<xs:documentation>This field contains a detailed description of the attack including the chain of actions taken by the attacker. More comprehensive descriptions could include relevant attack trees and/or exploit graphs to more clearly elaborate this type of attack.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Summary" type="xs:string">
											<xs:annotation>
												<xs:documentation>Brief description of what the attack involves and what weaknesses it is leveraging for exploit.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element ref="Attack_Execution_Flow" minOccurs="0">
											<xs:annotation>
												<xs:documentation>Outline of the steps involved in an attacker executing the typical flow of the attack.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Attack_Prerequisites" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes the conditions that must exist or the functionality and characteristics that the target software must have or behavior it must exhibit for an attack of this type to succeed.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Attack_Prerequisite" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual attack prerequisite.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:simpleContent>
													<xs:extension base="xs:string"/>
												</xs:simpleContent>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Typical_Severity">
								<xs:annotation>
									<xs:documentation>On a rough scale (Very Low, Low, Medium, High, Very high), what is the typical severity of impact to the targeted software if this attack occurs? The severity of a specific attack instance can vary greatly depending on the specific context of the target software under attack. This field is intended to capture an overall typical average value for this type of attack with the understanding that it will not be completely accurate for all attacks.</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="Very High"/>
										<xs:enumeration value="High"/>
										<xs:enumeration value="Medium"/>
										<xs:enumeration value="Low"/>
										<xs:enumeration value="Very Low"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="Typical_Likelihood_of_Exploit" minOccurs="0">
								<xs:annotation>
									<xs:documentation>On a rough scale (Very Low, Low Medium,  High, Very High), what is the overall likelihood of this type of attack typically succeeding considering the attack prerequisites, targeted weakness attack surface, skill required and resources required as well as available and likely implemented blocking solutions? The likelihood of exploit of a specific attack instance can vary greatly depending on the specific context of the target software under attack. This field is intended to capture an overall typical average value for this type of attack with the understanding that it will not be completely accurate for all attacks.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Likelihood" type="xs:string" minOccurs="0">
											<xs:annotation>
												<xs:documentation>On a rough scale (Very Low, Low Medium,  High, Very High), what is the overall likelihood of this type of attack typically succeeding considering the attack prerequisites, targeted weakness attack surface, skill required and resources required as well as available and likely implemented blocking solutions?</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Explanation" type="xs:string" minOccurs="0">
											<xs:annotation>
												<xs:documentation>This field captures any useful explanation for the defined Likelihood.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Methods_of_Attack" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes the mechanism of attack used by this pattern. This field can help define the applicable attack surface required for this attack.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Method_of_Attack" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes the mechanism of attack used by this pattern. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined vectors which is currently incomplete and will grow as new relevant vectors are identified. This field can help define the applicable attack surface required for this attack.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Injection"/>
													<xs:enumeration value="Modification of Resources"/>
													<xs:enumeration value="Protocol Manipulation"/>
													<xs:enumeration value="Analysis"/>
													<xs:enumeration value="API Abuse"/>
													<xs:enumeration value="Brute Force"/>
													<xs:enumeration value="Flooding"/>
													<xs:enumeration value="Time and State"/>
													<xs:enumeration value="Spoofing"/>
													<xs:enumeration value="Social Engineering"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Examples-Instances" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field contains explanatory examples or demonstrative exploit instances of this attack, which are intended to help the reader understand the nature, context and variability of the attack in more practical and concrete terms.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Example-Instance" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual example or exploit instance.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Example-Instance_Description" type="xs:string">
														<xs:annotation>
															<xs:documentation>This field describes in detail a specific example or exploit instance of this attack. It should outline the context of the attack, the targeted software, the targeted weaknesses or vulnerabilities, the specific set of actions involved in the attack and the resulting impact of the attacks success or failure (in the case of counterexamples).</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Example-Instance_Related_Vulnerability" type="xs:string" minOccurs="0" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>This field lists the specific vulnerabilities targeted by this exploit instance of the attack. Specific vulnerabilities should reference industry-standard identifiers such as Common Vulnerabilities and Exposures (CVE) numbers and/or US-CERT numbers.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Attacker_Skill_or_Knowledge_Required" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes the level of skill or specific knowledge required by an attacker to execute this type of attack. This should be communicated on a rough scale (Low, Medium, High) as well as in contextual detail.
For example:
• Low - Basic computer familiarity
• Low - Basic SQL knowledge
• Medium - Moderate scripting and shell experience and ability to disassemble and decompile
• High - Expert knowledge of LINUX kernel
• High - Detailed knowledge of target software development practices and business context (former employee)
• Etc.
</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Resources_Required" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes the resources (CPU cycles, IP addresses, tools, etc.) required by an attacker to effectively execute this type of attack.</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Probing_Techniques" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes techniques typically used to probe and reconnoiter a potential target to determine vulnerability and/or to prepare for this type of attack.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Probing_Technique" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual probing technique.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Indicators-Warnings_of_Attack" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes activities, events, conditions or behaviors that could serve as indicators that an attack of this type is imminent, in progress or has occurred.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Indicator-Warning_of_Attack" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual indicator/warning.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Obfuscation_Techniques" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes techniques typically used to disguise the fact that an attack of this type is imminent, in progress or has occurred.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Obfuscation_Technique" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual obfuscation technique.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Solutions_and_Mitigations" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes actions or approaches that can potentially prevent or mitigate the risk of this attack. These solutions and mitigations are targeted to improve the resistance of the target software and thereby reduce the likelihood of the attack’s success or to improve the resilience of the target software and thereby reduce the impact of the attack if it is successful. </xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Solution_or_Mitigation" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual blocking solution or mitigation.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Attack_Motivation-Consequences" minOccurs="0">
								<xs:annotation>
									<xs:documentation>What is the attacker trying to achieve by using this attack? This is not the end business/mission goal of the attack within the target context but rather the specific technical result desired that could be leveraged to achieve the end business/mission objective. This information is useful for aligning attack patterns to threat models and for determining which attack patterns are relevant for a given context.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Attack_Motivation-Consequence" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>What is the attacker trying to achieve by using this attack? This is not the end business/mission goal of the attack within the target context but rather the specific technical result desired that could be leveraged to achieve the end business/mission objective. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined motivations/consequences which is currently incomplete and will grow as new relevant possibilities are identified. This information is useful for aligning attack patterns to threat models and for determining which attack patterns are relevant for a given context.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Denial of Service"/>
													<xs:enumeration value="Run Arbitrary Code"/>
													<xs:enumeration value="Information Leakage"/>
													<xs:enumeration value="Data Modification"/>
													<xs:enumeration value="Privilege Escalation"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Context_Description" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes the technical contexts in which this pattern is relevant. This could involve factors such as platform, OS, language, architectural paradigm, etc. The specific factors to be part of this field have yet to be determined. This field will be iteratively refined as more is learned through the identification and elaboration of new attack patterns. This information is useful for aligning attack patterns to attack surfaces and for determining which attack patterns are relevant for a given context.</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Injection_Vector" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes, as precisely as possible, the mechanism and format of an input-driven attack of this type. Injection vectors must take into account the grammar of an attack, the syntax accepted by the system, the position of various fields, and the ranges of data that are acceptable. </xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Payload" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes the code, configuration or other data to be executed or otherwise activated as part of an injection-based attack of this type. </xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Activation_Zone" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field describes the area within the target software that is capable of executing or otherwise activating the payload of an injection-based attack of this type. The activation zone is where the intent of the attacker is put into action. The activation zone may be a command interpreter, some active machine code in a buffer, a client browser, a system API call, etc. </xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Payload_Activation_Impact" type="xs:string" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field is a description of the impact that the activation of the attack payload for an injection-based attack of this type would typically have on the confidentiality, integrity or availability of the target software.</xs:documentation>
								</xs:annotation>
							</xs:element>
							<xs:element name="Related_Weaknesses" minOccurs="0">
								<xs:annotation>
									<xs:documentation>Which specific weaknesses does this attack target and leverage? Specific weaknesses (underlying issues that may cause vulnerabilities) reference the industry-standard Common Weakness Enumeration (CWE). This list should include not only those weaknesses that are directly targeted by the attack but also those whose presence can directly increase the likelihood of the attack succeeding or the impact if it does succeed.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Related_Weakness" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual related weakness.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="CWE_ID" type="xs:integer">
														<xs:annotation>
															<xs:documentation>The CWE_ID is a field that exists for all weaknesses enumerated in the Common Weakness Enumeration (CWE). It is a unique value that allows each weakness to be unambiguously identified. The CWE_ID field for the attack pattern contains the value of the CWE_ID for the specific related weakness. </xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Weakness_Relationship_Type">
														<xs:annotation>
															<xs:documentation>This field describes the nature of the relationship between this weakness and the attack pattern. Weaknesses that are specifically targeted by the attack are of type “Targeted”. Weaknesses which are not specifically targeted but whose presence may increase the likelihood of the attack succeeding or the impact of the attack if it does succeed are of type “Secondary”.</xs:documentation>
														</xs:annotation>
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:enumeration value="Targeted"/>
																<xs:enumeration value="Secondary"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Related_Vulnerabilities" minOccurs="0">
								<xs:annotation>
									<xs:documentation>What specific vulnerabilities does this attack target and leverage? Specific vulnerabilities should reference industry-standard identifiers such as Common Vulnerabilities and Exposures (CVE ) numbers and/or US-CERT  numbers. As vulnerabilities are much more specific and localized than weaknesses, it is typically rare that an attack pattern will target specific vulnerabilities. This would most likely occur if they are targeting vulnerabilities in underlying platforms, frameworks, libraries, etc.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Related_Vulnerability" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual related vulnerability.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Vulnerability_ID" type="xs:string">
														<xs:annotation>
															<xs:documentation>This field uses the unique reference ID for a specific related vulnerability utilizing an industry standard vulnerability listing (e.g., CVE-2006-4192, VU#650769, etc.).</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Vulnerability_Description" type="xs:string">
														<xs:annotation>
															<xs:documentation>This field contains a short textual description of the specific related vulnerability taken from the industry standard vulnerability listing.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Related_Attack_Patterns" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field identifies other attack patterns that are somehow related to, dependent on, typically chained together, etc. with this pattern.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Related_Attack_Pattern" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual related attack pattern.</xs:documentation>
											</xs:annotation>
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Related_Attack_Pattern_ID" type="xs:string">
														<xs:annotation>
															<xs:documentation>This field contains a unique identifier for the related pattern of the form “AP-####” (e.g., AP-0012).</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Related_Attack_Pattern_Name" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field contains a short descriptive name for the related pattern. It should be kept as short as possible but also clearly convey the nature of the attack being described.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Related_Attack_Pattern_Relationship_Type" maxOccurs="unbounded">
														<xs:annotation>
															<xs:documentation>This field defines the nature of the relationship between this pattern and the related pattern. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined relationship types. This enumerated list of choices is likely to grow as new, useful types of relationships are identified.</xs:documentation>
														</xs:annotation>
														<xs:simpleType>
															<xs:restriction base="xs:string">
																<xs:enumeration value="More Abstract"/>
																<xs:enumeration value="More Detailed"/>
																<xs:enumeration value="Occasionally Precedes"/>
																<xs:enumeration value="Occasionally Follows"/>
																<xs:enumeration value="Similar"/>
															</xs:restriction>
														</xs:simpleType>
													</xs:element>
													<xs:element name="Relationship_Description" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field provides a mechanism to provide further context and description to the nature of the relationship.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Relevant_Security_Requirements" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field identifies specific security requirements that are relevant to this type of attack and are general enough to offer opportunities for reuse.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Relevant_Security_Requirement" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual relevant security requirement.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Relevant_Design_Patterns" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field identifies specific relevant design patterns that are recommended as providing resistance or resilience to this attack, or which are not recommended as they are particularly susceptible to this type of attack.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Recommended_Design_Pattern" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual design pattern that is recommended due to its likelihood of increasing the software’s resistance or resiliency to this type of attack.</xs:documentation>
											</xs:annotation>
										</xs:element>
										<xs:element name="Non-Recommended_Design_Pattern">
											<xs:annotation>
												<xs:documentation>This field describes an individual design pattern that is not recommended due to its likelihood of decreasing the software’s resistance or resiliency to this type of attack.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Relevant_Security_Patterns" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field identifies specific security patterns that are recommended as providing resistance or resilience to this type of attack.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Relevant_Security_Pattern" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual relevant security pattern.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Related_Security_Principles" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field identifies specific security principles relevant to this attack pattern. The security principles that this field references come from the set available on the Build Security In website.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Related_Security_Principle" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual security principle.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Related_Guidelines" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field identifies existing security guidelines that are relevant to identifying or mitigating this type of attack.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Related_Guideline" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field describes an individual related guideline.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Purpose" minOccurs="0" maxOccurs="unbounded">
								<xs:annotation>
									<xs:documentation>This field describes the generalized purpose of the pattern in order to enable the capture of pattern composibility. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined purposes which may be currently incomplete and may grow as new relevant possibilities are identified.</xs:documentation>
								</xs:annotation>
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="Reconnaissance"/>
										<xs:enumeration value="Penetration"/>
										<xs:enumeration value="Exploitation"/>
										<xs:enumeration value="Obfuscation"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element name="CIA_Impact" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field characterizes the typical relative impact of this pattern on the confidentiality, integrity and availability of the targeted software.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Confidentiality_Impact" minOccurs="0">
											<xs:annotation>
												<xs:documentation>This field describes the typical impact of this pattern on the confidentiality characteristics of the targeted software and related data.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Low"/>
													<xs:enumeration value="Medium"/>
													<xs:enumeration value="High"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Integrity_Impact" minOccurs="0">
											<xs:annotation>
												<xs:documentation>This field describes the typical impact of this pattern on the integrity characteristics of the targeted software and related data.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Low"/>
													<xs:enumeration value="Medium"/>
													<xs:enumeration value="High"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Availability_Impact" minOccurs="0">
											<xs:annotation>
												<xs:documentation>This field describes the typical impact of this pattern on the availability characteristics of the targeted software and related data.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Low"/>
													<xs:enumeration value="Medium"/>
													<xs:enumeration value="High"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Technical_Context" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field characterizes the technical context where this pattern is applicable.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Architectural_Paradigm" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field outlines the architectural paradigms of target software where the pattern is possible and relevant. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined paradigms which may be currently incomplete and may grow or change as new relevant possibilities are identified.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Mainframe"/>
													<xs:enumeration value="Client-Server"/>
													<xs:enumeration value="n-Tier"/>
													<xs:enumeration value="SOA"/>
													<xs:enumeration value="Other"/>
													<xs:enumeration value="All"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Framework" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field outlines the frameworks used as part of the target software where the pattern is possible and relevant. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined frameworks which may be currently incomplete and may grow or change as new relevant possibilities are identified.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="J2EE"/>
													<xs:enumeration value=".NET"/>
													<xs:enumeration value="Struts"/>
													<xs:enumeration value="Spring"/>
													<xs:enumeration value="Hibernate"/>
													<xs:enumeration value="Other"/>
													<xs:enumeration value="All"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Platform" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field outlines the platforms (OS) of the target software where the pattern is possible and relevant. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined platforms which may be currently incomplete and may grow or change as new relevant possibilities are identified.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="Windows"/>
													<xs:enumeration value="UNIX-LINUX"/>
													<xs:enumeration value="Solaris"/>
													<xs:enumeration value="Other"/>
													<xs:enumeration value="All"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
										<xs:element name="Language" minOccurs="0" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field outlines the implementation languages of the target software where the pattern is possible and relevant. In order to assist in normalization and classification, this field involves a selection from an enumerated list of defined platforms which may be currently incomplete and may grow or change as new relevant possibilities are identified.</xs:documentation>
											</xs:annotation>
											<xs:simpleType>
												<xs:restriction base="xs:string">
													<xs:enumeration value="AJAX"/>
													<xs:enumeration value="ASP"/>
													<xs:enumeration value="ASP.NET"/>
													<xs:enumeration value="C"/>
													<xs:enumeration value="C++"/>
													<xs:enumeration value="C#"/>
													<xs:enumeration value="Java"/>
													<xs:enumeration value="JSP"/>
													<xs:enumeration value="PHP"/>
													<xs:enumeration value="PERL"/>
													<xs:enumeration value="Ruby"/>
													<xs:enumeration value="Visual Basic"/>
													<xs:enumeration value="Other"/>
													<xs:enumeration value="All"/>
												</xs:restriction>
											</xs:simpleType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Keywords" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field is intended to be a catch-all field for assisting in searching and subsecting a collection of patterns according to criteria not contained elsewehre in this schema.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Keyword" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field contains an individual keyword to be used for tagging and searching.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="References" minOccurs="0">
								<xs:annotation>
									<xs:documentation>This field enumerates reference resources that were used to develop the definition of this attack pattern and those that could prove valuable to the reader looking for further information on this attack.</xs:documentation>
								</xs:annotation>
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Reference" type="xs:string" maxOccurs="unbounded">
											<xs:annotation>
												<xs:documentation>This field should describe the reference clearly and unambiguously by name and with some method of address such that the reader can locate the resource for further reference.</xs:documentation>
											</xs:annotation>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
							<xs:element name="Source" minOccurs="0">
								<xs:complexType>
									<xs:sequence>
										<xs:element name="Submission" minOccurs="0">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Submitter" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field describes the identity of the pattern submitter.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Submitter_Organization" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field describes the organization of the pattern submitter.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Submission_Date" type="xs:date" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field describes the date on which the pattern was submitted to CAPEC.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Submission_Comment" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field captures any relevant description or explanation of the submission.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
										<xs:element name="Modification" minOccurs="0" maxOccurs="unbounded">
											<xs:complexType>
												<xs:sequence>
													<xs:element name="Modifier" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field describes the identity of the pattern modifier.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Modifier_Organization" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field describes the organization of the pattern modifier.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Modification_Date" type="xs:date" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field describes the date on which the pattern was modified in CAPEC.</xs:documentation>
														</xs:annotation>
													</xs:element>
													<xs:element name="Modification_Comment" type="xs:string" minOccurs="0">
														<xs:annotation>
															<xs:documentation>This field captures any relevant description or explanation of what was modified and why.</xs:documentation>
														</xs:annotation>
													</xs:element>
												</xs:sequence>
											</xs:complexType>
										</xs:element>
									</xs:sequence>
								</xs:complexType>
							</xs:element>
						</xs:sequence>
						<xs:attribute name="CAPEC_ID" type="xs:integer" use="optional" default="0"/>
						<xs:attribute name="Name" type="xs:string" use="required"/>
						<xs:attribute name="Pattern_Completeness">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="Complete"/>
									<xs:enumeration value="Stub"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
						<xs:attribute name="Pattern_Abstraction" use="optional">
							<xs:simpleType>
								<xs:restriction base="xs:string">
									<xs:enumeration value="Meta"/>
									<xs:enumeration value="Standard"/>
									<xs:enumeration value="Detailed"/>
								</xs:restriction>
							</xs:simpleType>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
				<xs:element ref="Environment" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>
