<?xml version="1.0"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:oval-sc="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5" xmlns:catos-sc="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#catos" xmlns:sch="http://purl.oclc.org/dsdl/schematron" targetNamespace="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#catos" elementFormDefault="qualified" version="5.5">
     <xsd:import namespace="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5" schemaLocation="oval-system-characteristics-schema.xsd"/>
     <xsd:annotation>
          <xsd:documentation>The following is a description of the elements, types, and attributes that compose the Cisco CatOS specific system characteristic items found in Open Vulnerability and Assessment Language (OVAL). Each item is an extension of the standard test element defined in the Core Definition Schema. Through extension, each test inherits a set of elements and attributes that are shared amongst all OVAL tests. Each test is described in detail and should provide the information necessary to understand what each element and attribute represents. This document is intended for developers and assumes some familiarity with XML. A high level description of the interaction between the different tests and their relationship to the Core Definition Schema is not outlined here.</xsd:documentation>
          <xsd:documentation>This schema was originally developed by Yuzheng Zhou at Hewlett-Packard. The OVAL Schema is maintained by The Mitre Corporation and developed by the public OVAL Community. For more information, including how to get involved in the project and how to submit change requests, please visit the OVAL website at http://oval.mitre.org.</xsd:documentation>
          <xsd:appinfo>
               <schema>CatOS System Characteristics</schema>
               <version>5.5</version>
               <date>9/26/2008 7:30:55 AM</date>
                <terms_of_use>Copyright (c) 2002-2008, The MITRE Corporation. All rights reserved.  The contents of this file are subject to the terms of the OVAL License located at http://oval.mitre.org/oval/about/termsofuse.html. See the OVAL License for the specific language governing permissions and limitations for use of this schema.  When distributing copies of the OVAL Schema, this license header must be included.</terms_of_use>
               <sch:ns prefix="oval-sc" uri="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5"/>
               <sch:ns prefix="catos-sc" uri="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#catos"/>
              <sch:ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance"/>
          </xsd:appinfo>
     </xsd:annotation>
    <!-- =============================================================================== -->
    <!-- ============================  CATOS LINE ITEM  ================================== -->
    <!-- =============================================================================== -->
    <xsd:element name="line_item" substitutionGroup="oval-sc:item">
        <xsd:annotation>
            <xsd:documentation>Stores the properties of specific lines in the catos config file.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="oval-sc:ItemType">
                    <xsd:sequence>
                        <xsd:element name="show_subcommand" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The name of the SHOW sub-command.</xsd:documentation>
                                <xsd:appinfo>
                                    <sch:pattern id="catoslineitemshow_subcommand">
                                        <sch:rule context="catos-sc:line_item/catos-sc:show_subcommand">
                                            <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the show_subcommand entity of a line_item should be 'string'</sch:assert>
                                        </sch:rule>
                                    </sch:pattern>
                                </xsd:appinfo>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="config_line" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The value returned from by the specified SHOW sub-command.</xsd:documentation>
                                <xsd:appinfo>
                                    <sch:pattern id="catoslineitemconfig_line">
                                        <sch:rule context="catos-sc:line_item/catos-sc:config_line">
                                            <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the config_line entity of a line_item should be 'string'</sch:assert>
                                        </sch:rule>
                                    </sch:pattern>
                                </xsd:appinfo>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>
    <!-- =============================================================================== -->
     <!-- ========================  CATOS MODULE ITEM  ================================= -->
     <!-- =============================================================================== -->
     <xsd:element name="module_item" substitutionGroup="oval-sc:item">
          <xsd:annotation>
               <xsd:documentation>Stores results from SHOW MODULE command.</xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
               <xsd:complexContent>
                    <xsd:extension base="oval-sc:ItemType">
                         <xsd:sequence>
                              <xsd:element name="module_number" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemmodule_number">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:module_number">
                                                       <sch:assert test="@datatype='int'">item <sch:value-of select="../@id"/> - datatype attribute for the module_number entity of a module_item should be 'int'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="type" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemtype">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:type">
                                                       <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the type entity of a module_item should be 'string'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="model" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemmodel">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:model">
                                                       <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the model entity of a module_item should be 'string'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="software_major_release" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemsoftware_major_release">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:software_major_release">
                                                       <sch:assert test="@datatype='version'">item <sch:value-of select="../@id"/> - datatype attribute for the software_major_release entity of a module_item should be 'version'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="software_individual_release" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemsoftware_individual_release">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:software_individual_release">
                                                       <sch:assert test="@datatype='int'">item <sch:value-of select="../@id"/> - datatype attribute for the software_individual_release entity of a module_item should be 'int'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="software_version_id" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemsoftware_version_id">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:software_version_id">
                                                       <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the software_version_id entity of a module_item should be 'string'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="hardware_major_release" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemhardware_major_release">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:hardware_major_release">
                                                       <sch:assert test="@datatype='version'">item <sch:value-of select="../@id"/> - datatype attribute for the hardware_major_release entity of a module_item should be 'version'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="hardware_individual_release" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemhardware_individual_release">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:hardware_individual_release">
                                                       <sch:assert test="@datatype='int'">item <sch:value-of select="../@id"/> - datatype attribute for the hardware_individual_release entity of a module_item should be 'int'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="firmware_major_release" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemfirmware_major_release">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:firmware_major_release">
                                                       <sch:assert test="@datatype='version'">item <sch:value-of select="../@id"/> - datatype attribute for the firmware_major_release entity of a module_item should be 'version'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="firmware_individual_release" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                        <xsd:documentation/>
                                        <xsd:appinfo>
                                             <sch:pattern id="catosmoduleitemfirmware_individual_release">
                                                  <sch:rule context="catos-sc:module_item/catos-sc:firmware_individual_release">
                                                       <sch:assert test="@datatype='int'">item <sch:value-of select="../@id"/> - datatype attribute for the firmware_individual_release entity of a module_item should be 'int'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                         </xsd:sequence>
                    </xsd:extension>
               </xsd:complexContent>
          </xsd:complexType>
     </xsd:element>
     <!-- =============================================================================== -->
     <!-- ============================  CATOS VERSION ITEM  ================================== -->
     <!-- =============================================================================== -->
     <xsd:element name="version_item" substitutionGroup="oval-sc:item">
          <xsd:annotation>
               <xsd:documentation>Stores results from SHOW VERSION command.</xsd:documentation>
          </xsd:annotation>
          <xsd:complexType>
               <xsd:complexContent>
                    <xsd:extension base="oval-sc:ItemType">
                         <xsd:sequence>
                              <xsd:element name="switch_series" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                       <xsd:documentation>The switch_series entity specifies the target Catalyst switch series for the given version of CatOS.</xsd:documentation>
                                        <xsd:appinfo>
                                             <sch:pattern id="versionitemswitch_series">
                                                  <sch:rule context="catos-sc:version_item/catos-sc:switch_series">
                                                       <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the switch_series entity of a version_item should be 'string'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="image_name" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                       <xsd:documentation>The image_name entity specifies the name of the CatOS image.</xsd:documentation>
                                        <xsd:appinfo>
                                             <sch:pattern id="versionitemimage_name">
                                                  <sch:rule context="catos-sc:version_item/catos-sc:image_name">
                                                       <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the image_name entity of a version_item should be 'string'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                             <xsd:element name="catos_release" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                 <xsd:annotation>
                                     <xsd:documentation>The catos_release entity specifies the release version of CatOS.</xsd:documentation>
                                     <xsd:appinfo>
                                         <sch:pattern id="versionitemcatos_release">
                                             <sch:rule context="catos-sc:version_item/catos-sc:catos_release">
                                                 <sch:assert test="@datatype='version'">item <sch:value-of select="../@id"/> - datatype attribute for the catos_release entity of a version_item should be 'version'</sch:assert>
                                             </sch:rule>
                                         </sch:pattern>
                                     </xsd:appinfo>
                                 </xsd:annotation>
                             </xsd:element>
                             <xsd:element name="catos_major_release" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                       <xsd:documentation>This entity has been deprecated and will be removed in version 6.0 of the language.</xsd:documentation>
                                       <xsd:appinfo>
                                             <sch:pattern id="versionitemcatos_major_release">
                                                  <sch:rule context="catos-sc:version_item/catos-sc:catos_major_release">
                                                       <sch:assert test="@datatype='version'">item <sch:value-of select="../@id"/> - datatype attribute for the catos_major_release entity of a version_item should be 'version'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="catos_individual_release" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                       <xsd:documentation>This entity has been deprecated and will be removed in version 6.0 of the language.</xsd:documentation>
                                       <xsd:appinfo>
                                             <sch:pattern id="versionitemcatos_individual_release">
                                                  <sch:rule context="catos-sc:version_item/catos-sc:catos_individual_release">
                                                       <sch:assert test="@datatype='int'">item <sch:value-of select="../@id"/> - datatype attribute for the catos_individual_release entity of a version_item should be 'int'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                              <xsd:element name="catos_version_id" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                                   <xsd:annotation>
                                       <xsd:documentation>This entity has been deprecated and will be removed in version 6.0 of the language.</xsd:documentation>
                                       <xsd:appinfo>
                                             <sch:pattern id="versionitemcatos_version_id">
                                                  <sch:rule context="catos-sc:version_item/catos-sc:catos_version_id">
                                                       <sch:assert test="not(@datatype) or @datatype='string'">item <sch:value-of select="../@id"/> - datatype attribute for the catos_version_id entity of a version_item should be 'string'</sch:assert>
                                                  </sch:rule>
                                             </sch:pattern>
                                        </xsd:appinfo>
                                   </xsd:annotation>
                              </xsd:element>
                         </xsd:sequence>
                    </xsd:extension>
               </xsd:complexContent>
          </xsd:complexType>
     </xsd:element>
      <!-- =============================================================================== -->
      <!-- =============================================================================== -->
      <!-- =============================================================================== -->
</xsd:schema>
