﻿<?xml version="1.0" encoding="utf-8"?>
<xsd:schema targetNamespace="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#independent" elementFormDefault="qualified" version="5.3" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:oval-sc="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5" xmlns:ind-sc="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#independent" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
  <xsd:import namespace="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5" schemaLocation="oval-system-characteristics-schema.xsd" />
  <xsd:element name="family_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="family" type="ind-sc:EntityItemFamilyType" minOccurs="0" maxOccurs="1" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="filemd5_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="path" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="filename" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="md5" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="filehash_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="path" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="filename" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="md5" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="sha1" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="environmentvariable_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="name" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="value" type="oval-sc:EntityItemAnyType" minOccurs="0" maxOccurs="1" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="sql_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="engine" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="version" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="connection_string" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="sql" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="result" type="oval-sc:EntityItemAnyType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="textfilecontent_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="path" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="filename" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="line" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="subexpression" type="oval-sc:EntityItemAnyType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="variable_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="var_ref" type="ind-sc:EntityItemVariableRefType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="value" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="unbounded" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="xmlfilecontent_item" substitutionGroup="oval-sc:item">
    <xsd:complexType>
      <xsd:complexContent>
        <xsd:extension base="oval-sc:ItemType">
          <xsd:sequence>
            <xsd:element name="path" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="filename" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="xpath" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
            <xsd:element name="value_of" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1" />
          </xsd:sequence>
        </xsd:extension>
      </xsd:complexContent>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="EntityItemEngineType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-sc:EntityItemStringType">
        <xsd:enumeration value="access" />
        <xsd:enumeration value="db2" />
        <xsd:enumeration value="cache" />
        <xsd:enumeration value="firebird" />
        <xsd:enumeration value="firstsql" />
        <xsd:enumeration value="foxpro" />
        <xsd:enumeration value="informix" />
        <xsd:enumeration value="ingres" />
        <xsd:enumeration value="interbase" />
        <xsd:enumeration value="lightbase" />
        <xsd:enumeration value="maxdb" />
        <xsd:enumeration value="monetdb" />
        <xsd:enumeration value="mimer" />
        <xsd:enumeration value="oracle" />
        <xsd:enumeration value="paradox" />
        <xsd:enumeration value="pervasive" />
        <xsd:enumeration value="postgre" />
        <xsd:enumeration value="postgre" />
        <xsd:enumeration value="sqlbase" />
        <xsd:enumeration value="sqlite" />
        <xsd:enumeration value="sqlserver" />
        <xsd:enumeration value="sybase" />
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityItemFamilyType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-sc:EntityItemStringType">
        <xsd:enumeration value="ios" />
        <xsd:enumeration value="macos" />
        <xsd:enumeration value="unix" />
        <xsd:enumeration value="windows" />
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="EntityItemVariableRefType">
    <xsd:simpleContent>
      <xsd:restriction base="oval-sc:EntityItemStringType">
        <xsd:pattern value="oval:[A-Za-z\-\.]+:var:[1-9][0-9]*" />
      </xsd:restriction>
    </xsd:simpleContent>
  </xsd:complexType>
</xsd:schema>