<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:oval="http://oval.mitre.org/XMLSchema/oval-common-5" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://oval.mitre.org/XMLSchema/oval-common-5" elementFormDefault="qualified" version="5.0">
	<!-- =============================================================================== -->
	<!-- =============================================================================== -->
	<!-- =============================================================================== -->
	<xsd:complexType name="GeneratorType">
		<xsd:sequence>
			<xsd:element name="product_name" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="product_version" type="xsd:string" minOccurs="0" maxOccurs="1" />
			<xsd:element name="schema_version" type="xsd:decimal" minOccurs="1" maxOccurs="1" />
			<xsd:element name="timestamp" type="xsd:dateTime" minOccurs="1" maxOccurs="1" />
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="MessageType">
		<xsd:simpleContent>
			<xsd:extension base="xsd:string">
				<xsd:attribute name="level" type="oval:MessageLevelEnumeration" use="optional" default="info" />
			</xsd:extension>
		</xsd:simpleContent>
	</xsd:complexType>
	<!-- =============================================================================== -->
	<!-- ===============================  ENUMERATIONS  ================================ -->
	<!-- =============================================================================== -->
	<xsd:simpleType name="CheckEnumeration">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="all" />
			<xsd:enumeration value="at least one" />
			<xsd:enumeration value="none exist" />
			<xsd:enumeration value="only one" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="DatatypeEnumeration">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="binary" />
			<xsd:enumeration value="boolean" />
			<xsd:enumeration value="evr_string" />
			<xsd:enumeration value="float" />
			<xsd:enumeration value="ios_version" />
			<xsd:enumeration value="int" />
			<xsd:enumeration value="string" />
			<xsd:enumeration value="version" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="FamilyEnumeration">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="ios" />
			<xsd:enumeration value="macos" />
			<xsd:enumeration value="unix" />
			<xsd:enumeration value="windows" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="MessageLevelEnumeration">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="debug" />
			<xsd:enumeration value="error" />
			<xsd:enumeration value="fatal" />
			<xsd:enumeration value="info" />
			<xsd:enumeration value="warning" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="OperationEnumeration">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="equals" />
			<xsd:enumeration value="not equal" />
			<xsd:enumeration value="greater than" />
			<xsd:enumeration value="less than" />
			<xsd:enumeration value="greater than or equal" />
			<xsd:enumeration value="less than or equal" />
			<xsd:enumeration value="bitwise and" />
			<xsd:enumeration value="bitwise or" />
			<xsd:enumeration value="pattern match" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="OperatorEnumeration">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value="AND" />
			<xsd:enumeration value="OR" />
			<xsd:enumeration value="XOR" />
		</xsd:restriction>
	</xsd:simpleType>
	<!-- =============================================================================== -->
	<!-- ================================  ID PATTERNS  ================================ -->
	<!-- =============================================================================== -->
	<xsd:simpleType name="DefinitionIDPattern">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="oval:[A-Za-z0-9_\-\.]+:def:[1-9][0-9]*" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ObjectIDPattern">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="oval:[A-Za-z0-9_\-\.]+:obj:[1-9][0-9]*" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="StateIDPattern">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="oval:[A-Za-z0-9_\-\.]+:ste:[1-9][0-9]*" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="TestIDPattern">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="oval:[A-Za-z0-9_\-\.]+:tst:[1-9][0-9]*" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="VariableIDPattern">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="oval:[A-Za-z0-9_\-\.]+:var:[1-9][0-9]*" />
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="ItemIDPattern">
		<xsd:restriction base="xsd:integer" />
	</xsd:simpleType>
	<!-- =============================================================================== -->
	<!-- ================================  OTHER TYPES  ================================ -->
	<!-- =============================================================================== -->
	<xsd:simpleType name="EmptyStringType">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="0" />
		</xsd:restriction>
	</xsd:simpleType>
	<!-- =============================================================================== -->
	<!-- =============================================================================== -->
	<!-- =============================================================================== -->
</xsd:schema>
