<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:WinEventObj="http://cybox.mitre.org/objects#WinEventObject-2" xmlns:cyboxCommon="http://cybox.mitre.org/common-2" xmlns:WinHandleObj="http://cybox.mitre.org/objects#WinHandleObject-2" targetNamespace="http://cybox.mitre.org/objects#WinEventObject-2" elementFormDefault="qualified" attributeFormDefault="unqualified" version="2.1">
	<xs:annotation>
		<xs:documentation>This schema was originally developed by The MITRE Corporation. The CybOX XML Schema implementation is maintained by The MITRE Corporation and developed by the open CybOX Community. For more information, including how to get involved in the effort and how to submit change requests, please visit the CybOX website at http://cybox.mitre.org.</xs:documentation>
		<xs:appinfo>
			<schema>Win_Event_Object</schema>
			<version>2.1</version>
			<date>01/22/2014</date>			
			<short_description>The following specifies the fields and types that compose this defined CybOX Object type. Each defined object is an extension of the abstract ObjectPropertiesType, defined in CybOX Common. For more information on this extension mechanism, please see the CybOX Specification. This document is intended for developers and assumes some familiarity with XML. </short_description>
			<terms_of_use>Copyright (c) 2012-2014, The MITRE Corporation. All rights reserved. The contents of this file are subject to the terms of the CybOX License located at http://cybox.mitre.org/about/termsofuse.html. See the CybOX License for the specific language governing permissions and limitations for use of this schema. When distributing copies of the CybOX Schema, this license header must be included.</terms_of_use>
		</xs:appinfo>
	</xs:annotation>
	<xs:import namespace="http://cybox.mitre.org/common-2" schemaLocation="http://cybox.mitre.org/XMLSchema/common/2.1/cybox_common.xsd"/>
	<xs:import namespace="http://cybox.mitre.org/objects#WinHandleObject-2" schemaLocation="http://cybox.mitre.org/XMLSchema/objects/Win_Handle/2.1/Win_Handle_Object.xsd"/>
	<xs:element name="Windows_Event" type="WinEventObj:WindowsEventObjectType">
		<xs:annotation>
			<xs:documentation>The Windows_Event object is intended to characterize Windows event (synchronization) objects.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="WindowsEventObjectType" mixed="false">
		<xs:annotation>
			<xs:documentation>The WindowsEventObjectType type is intended to characterize Windows event (synchronization) objects.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="cyboxCommon:ObjectPropertiesType">
				<xs:sequence>
					<xs:element name="Handle" type="WinHandleObj:WindowsHandleObjectType" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The Handle field specifies the handle to the Windows event object. It imports and uses the WindowsHandleObjectType type from the CybOX Windows Handle object.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Name" type="cyboxCommon:StringObjectPropertyType" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The Name field specifies the name of the Windows event object.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Type" type="WinEventObj:WinEventType" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The Type field specifies the type of the Windows event.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="WinEventType">
		<xs:annotation>
			<xs:documentation>WinEventType specifies Windows event types, via a union of the WinEventTypeEnum type and the atomic xs:string type. Its base type is the CybOX Core BaseObjectPropertyType, for permitting complex (i.e. regular-expression based) specifications.</xs:documentation>
		</xs:annotation>
		<xs:simpleContent>
			<xs:restriction base="cyboxCommon:BaseObjectPropertyType">
				<xs:simpleType>
					<xs:union memberTypes="WinEventObj:WinEventTypeEnum xs:string"/>
				</xs:simpleType>
				<xs:attribute name="datatype" type="cyboxCommon:DatatypeEnum" fixed="string">
					<xs:annotation>
						<xs:documentation>This attribute is optional and specifies the expected type for the value of the specified property.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:restriction>
		</xs:simpleContent>
	</xs:complexType>
	<xs:simpleType name="WinEventTypeEnum">
		<xs:annotation>
			<xs:documentation>The WinEventTypeEnum type is an enumeration of Windows synchronization event types. These are described in detail in http://msdn.microsoft.com/en-us/library/windows/desktop/ms682655(v=vs.85).aspx.</xs:documentation>
		</xs:annotation>
		<xs:restriction base="xs:string">
			<xs:enumeration value="ManualReset">
				<xs:annotation>
					<xs:documentation>Indicates an event object whose state remains signaled until it is explicitly reset to nonsignaled by the ResetEvent function. While it is signaled, any number of waiting threads, or threads that subsequently specify the same event object in one of the wait functions, can be released.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="AutoReset">
				<xs:annotation>
					<xs:documentation>Indicates an event object whose state remains signaled until a single waiting thread is released, at which time the system automatically sets the state to nonsignaled. If no threads are waiting, the event object's state remains signaled. If more than one thread is waiting, a waiting thread is selected. Do not assume a first-in, first-out (FIFO) order. External events such as kernel-mode APCs can change the wait order.</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>
