<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:UserAccountObj="http://cybox.mitre.org/objects#UserAccountObject-2" xmlns:cyboxCommon="http://cybox.mitre.org/common-2" xmlns:AccountObj="http://cybox.mitre.org/objects#AccountObject-2" targetNamespace="http://cybox.mitre.org/objects#UserAccountObject-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>User_Account_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#AccountObject-2" schemaLocation="http://cybox.mitre.org/XMLSchema/objects/Account/2.1/Account_Object.xsd"/>
	<xs:element name="User_Account" type="UserAccountObj:UserAccountObjectType">
		<xs:annotation>
			<xs:documentation>The User_Account object is intended to characterize generic user accounts.</xs:documentation>
		</xs:annotation>
	</xs:element>
	<xs:complexType name="UserAccountObjectType" mixed="false">
		<xs:annotation>
			<xs:documentation>The UserAccountObjectType type is intended to characterize generic user accounts.</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="AccountObj:AccountObjectType">
				<xs:sequence>
					<xs:element name="Full_Name" type="cyboxCommon:StringObjectPropertyType" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>The Full_Name field specifies the full name of the user for which this account was created.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Group_List" type="UserAccountObj:GroupListType" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The Group_List field specifies the list of groups to which the user account belongs to.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Home_Directory" type="cyboxCommon:StringObjectPropertyType" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>The Home_Directory field specifies the fully-qualified path to the home directory of the user account.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Last_Login" type="cyboxCommon:DateTimeObjectPropertyType" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>The Last_Login field specifies the date/time that the user account was last logged into.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Privilege_List" type="UserAccountObj:PrivilegeListType" minOccurs="0">
						<xs:annotation>
							<xs:documentation>The Privilege_List field specifies the privileges that the user account has.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Script_Path" type="cyboxCommon:StringObjectPropertyType" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>The Script_Path field specifies the fully-qualified path to the directory where the logon script for the user account resides.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="Username" type="cyboxCommon:StringObjectPropertyType" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>The Username field specifies the particular username of the user account.</xs:documentation>
						</xs:annotation>
					</xs:element>
					<xs:element name="User_Password_Age" type="cyboxCommon:DurationObjectPropertyType" minOccurs="0" maxOccurs="1">
						<xs:annotation>
							<xs:documentation>The User_Password_Age field specifies the current age of the user account's password.</xs:documentation>
						</xs:annotation>
					</xs:element>
				</xs:sequence>
				<xs:attribute name="password_required" type="xs:boolean">
					<xs:annotation>
						<xs:documentation>The password_required field specifies whether a password is required for this user account.</xs:documentation>
					</xs:annotation>
				</xs:attribute>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:complexType name="PrivilegeListType">
		<xs:annotation>
			<xs:documentation>The PrivilegeListType type specifies the list of privileges that the user account has.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Privilege" type="UserAccountObj:PrivilegeType" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The Privilege field specifies a specific privilege that a user has. This is an abstract type since user privileges are operating-system specific, and is extended as needed in the derived CybOX object schemas.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PrivilegeType" abstract="true">
		<xs:annotation>
			<xs:documentation>The PrivilegeType type specifies a specific privilege that a user has. This is an abstract type since user privileges are operating-system specific, and is extended as needed in the derived CybOX object schemas.</xs:documentation>
		</xs:annotation>
	</xs:complexType>
	<xs:complexType name="GroupListType">
		<xs:annotation>
			<xs:documentation>The GroupListType type specifies the groups that the user account belongs to.</xs:documentation>
		</xs:annotation>
		<xs:sequence>
			<xs:element name="Group" type="UserAccountObj:GroupType" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The Group field specifies a group that a user account belongs to. This is an abstract type since group IDs are operating-system specific, and is extended as needed in the derived CybOX object schemas.</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="GroupType" abstract="true">
		<xs:annotation>
			<xs:documentation>The GroupType type specifies a group that a user account belongs to. This is an abstract type since group IDs are operating-system specific, and is extended as needed in the derived CybOX object schemas.</xs:documentation>
		</xs:annotation>
	</xs:complexType>
</xs:schema>
