<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:oval-sc="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5" xmlns:junos-sc="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#junos" xmlns:sch="http://purl.oclc.org/dsdl/schematron" targetNamespace="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#junos" elementFormDefault="qualified" version="5.11">
    <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 Junos-specific system characteristic items found in Open Vulnerability and Assessment Language (OVAL). Each item is an extension of the standard item element defined in the Core System Characteristic Schema. Through extension, each item inherits a set of elements and attributes that are shared amongst all OVAL Items. Each item 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 System Characteristic Schema is not outlined here.</xsd:documentation>
        <xsd:documentation>This schema was originally developed by David Solin at jOVAL.org. 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>Junos System Characteristics</schema>
            <version>5.11:5.11</version>
            <date>12/18/2014 09:00:00 AM</date>
            <terms_of_use>Copyright (c) 2002-2014, 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="junos-sc" uri="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#junos"/>
            <sch:ns prefix="xsi" uri="http://www.w3.org/2001/XMLSchema-instance"/>
        </xsd:appinfo>
    </xsd:annotation>
    <!-- ====================================================================== -->
    <!-- =======================  JUNOS XML CONFIG ITEM  ====================== -->
    <!-- ====================================================================== -->
    <xsd:element name="xml_config_item" substitutionGroup="oval-sc:item">
        <xsd:annotation>
            <xsd:documentation>Stores information about the existence of a particular XPATH query result from the JunOS XML config file.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="oval-sc:ItemType">
                    <xsd:sequence>
                        <xsd:element name="xpath" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>An XPATH 1.0 expression that was evaluated against the XML config file.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="value_of" type="oval-sc:EntityItemAnySimpleType" minOccurs="0" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>The result of the evaluation of the XPATH expression against the XML config file.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>
    <!-- ==================================================================== -->
    <!-- ==========================  JUNOS SHOW ITEM  ======================= -->
    <!-- ==================================================================== -->
    <xsd:element name="show_item" substitutionGroup="oval-sc:item">
        <xsd:annotation>
            <xsd:documentation>Stores the resulting configuration data provided by the execution of a specific show command.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="oval-sc:ItemType">
                    <xsd:sequence>
                        <xsd:element name="subcommand" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The name of the SHOW sub-command.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="value" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The value returned from by the specified SHOW sub-command. This may consist of multiple lines of information.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>
    <!-- ======================================================================= -->
    <!-- ========================  JUNOS VERSION ITEM  ========================= -->
    <!-- ======================================================================= -->
    <xsd:element name="version_item" substitutionGroup="oval-sc:item">
        <xsd:annotation>
            <xsd:documentation>The version_item holds information about the version of a particular component of the JunOS operating system. It extends the standard ItemType as defined in the oval-system-characteristics schema and one should refer to the ItemType description for more information.</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="oval-sc:ItemType">
                    <xsd:sequence>
                        <xsd:element name="component" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The name of the JunOS component whose version should be retrieved.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="raw_release" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The raw release version string for the component.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="major_version" type="oval-sc:EntityItemVersionType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The part of the release version of the component corresponding to the [year].[quarter] in which the release occurred. For example, the major_version for 12.2R6.1 would be 12.2.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="release_type" type="junos-sc:EntityItemJunosReleaseTypeType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The release type embedded in the version of the component.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="revision" type="oval-sc:EntityItemVersionType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The revision and build number (AKA spin number) information of the component's version. For example, the revision for 12.2R6.1 would be 6.1.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="builder" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The string identifying the builder of the component.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="build_date" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The build date of the component, specified in milliseconds since the Epoch (midnight, January 1, 1970 GMT).</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>
    <!-- ======================================================================= -->
    <!-- =======================  JUNOS XML SHOW ITEM  ========================= -->
    <!-- ======================================================================= -->
    <xsd:element name="xml_show_item" substitutionGroup="oval-sc:item">
        <xsd:annotation>
            <xsd:documentation>Stores the result of the application of an XPATH query applied to the JunOS configuration data provided by the execution of a specific show command, which has been piped to "display xml".</xsd:documentation>
        </xsd:annotation>
        <xsd:complexType>
            <xsd:complexContent>
                <xsd:extension base="oval-sc:ItemType">
                    <xsd:sequence>
                        <xsd:element name="subcommand" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>The name of a SHOW sub-command to be tested.</xsd:documentation>
                            </xsd:annotation> 
                        </xsd:element>
                        <xsd:element name="xpath" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
                            <xsd:annotation>
                                <xsd:documentation>An XPATH 1.0 expression that should be evaluated against the XML data resulting from the XML show subcommand.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                        <xsd:element name="value_of" type="oval-sc:EntityItemAnySimpleType" minOccurs="0" maxOccurs="unbounded">
                            <xsd:annotation>
                                <xsd:documentation>The result of the evaluation of the XPATH expression against the XML data returned from the XML show subcommand.</xsd:documentation>
                            </xsd:annotation>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:extension>
            </xsd:complexContent>
        </xsd:complexType>
    </xsd:element>
    <!-- =============================================================================== -->
    <!-- =============================================================================== -->
    <!-- =============================================================================== -->
    <xsd:complexType name="EntityItemJunosReleaseTypeType">
        <xsd:annotation>
            <xsd:documentation>The EntityItemJunosReleaseTypeType complex type defines the different values that are valid for the release_type entity of a system_metric state. These values describe the release type specified in the raw version string.</xsd:documentation>
        </xsd:annotation>
        <xsd:simpleContent>
            <xsd:restriction base="oval-sc:EntityItemStringType">
                <xsd:enumeration value="R">
                    <xsd:annotation>
                        <xsd:documentation>Indicates a normal release.</xsd:documentation>
                    </xsd:annotation>
                </xsd:enumeration>
                <xsd:enumeration value="S">
                    <xsd:annotation>
                        <xsd:documentation>Indicates a service release.</xsd:documentation>
                    </xsd:annotation>
                </xsd:enumeration>
                <xsd:enumeration value="B">
                    <xsd:annotation>
                        <xsd:documentation>Indicates a beta release.</xsd:documentation>
                    </xsd:annotation>
                </xsd:enumeration>
                <xsd:enumeration value="X">
                    <xsd:annotation>
                        <xsd:documentation>Indicates a release of the SRX branch.</xsd:documentation>
                    </xsd:annotation>
                </xsd:enumeration>
                <xsd:enumeration value="">
                    <xsd:annotation>
                        <xsd:documentation>The empty string value is permitted here to allow for empty elements associated with error conditions.</xsd:documentation>
                    </xsd:annotation>
                </xsd:enumeration>
            </xsd:restriction>
        </xsd:simpleContent>
    </xsd:complexType>
</xsd:schema>