<?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:sol-sc="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#solaris" xmlns:sch="http://purl.oclc.org/dsdl/schematron" targetNamespace="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#solaris" elementFormDefault="qualified" version="5.0">
	<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 Solaris 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>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>Solaris System Characteristics</schema>
			<version>5.0 release candidate 3</version>
			<date>26 May 2006</date>
			<sch:title>schematron validation of the Solaris portion of an OVAL System Characteristics file</sch:title>
			<sch:ns prefix="oval-sc" uri="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5"/>
			<sch:ns prefix="sol-sc" uri="http://oval.mitre.org/XMLSchema/oval-system-characteristics-5#sol"/>
		</xsd:appinfo>
	</xsd:annotation>
	<!-- =============================================================================== -->
	<!-- ===============================  ISAINFO ITEM  ================================ -->
	<!-- =============================================================================== -->
	<xsd:element name="isainfo_item" substitutionGroup="oval-sc:item">
		<xsd:annotation>
			<xsd:documentation>Information about the instruction set architectures.  This information can be retrieved by the isainfo command.</xsd:documentation>
			<xsd:documentation>The isainfo_item was originally developed by Robert L. Hollis at ThreatGuard, Inc.  Many thanks for their support of the OVAL project.</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="oval-sc:ItemType">
					<xsd:sequence>
						<xsd:element name="bits" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation>This is the number of bits in the address space of the native instruction set (isainfo -b).</xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="isaitembits">
										<sch:rule context="sol-sc:isainfo_item/sol-sc:bits">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the bits entity of an isainfo_item should be 'string'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="kernel_isa" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation>This is the name of the instruction set used by kernel components (isainfo -k).</xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="isaitemkernel_isa">
										<sch:rule context="sol-sc:isainfo_item/sol-sc:kernel_isa">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the kernel_isa entity of an isainfo_item should be 'string'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="application_isa" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation>This is the name of the instruction set used by portable applications (isainfo -n).</xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="isaitemapplication_isa">
										<sch:rule context="sol-sc:isainfo_item/sol-sc:application_isa">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the application_isa entity of an isainfo_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>
	<!-- =============================================================================== -->
	<!-- ===============================  PACKAGE ITEM  ================================ -->
	<!-- =============================================================================== -->
	<xsd:element name="package_item" substitutionGroup="oval-sc:item">
		<xsd:annotation>
			<xsd:documentation>Output of /usr/bin/pkginfo. See pkginfo(1).</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="oval-sc:ItemType">
					<xsd:sequence>
						<xsd:element name="pkginst" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="packageitempkginst">
										<sch:rule context="sol-sc:package_item/sol-sc:pkginst">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the pkginst entity of a package_item should be 'string'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="name" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="packageitemname">
										<sch:rule context="sol-sc:package_item/sol-sc:name">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the name entity of a package_item should be 'string'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="category" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="packageitemcategory">
										<sch:rule context="sol-sc:package_item/sol-sc:category">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the category entity of a package_item should be 'string'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="version" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="packageitemversion">
										<sch:rule context="sol-sc:package_item/sol-sc:version">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the version entity of a package_item should be 'string'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="vendor" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="packageitemvendor">
										<sch:rule context="sol-sc:package_item/sol-sc:vendor">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the vendor entity of a package_item should be 'string'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="description" type="oval-sc:EntityItemStringType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="packageitemdescription">
										<sch:rule context="sol-sc:package_item/sol-sc:description">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the description entity of a package_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>
	<!-- =============================================================================== -->
	<!-- =============================  PATCH ITEM  ==================================== -->
	<!-- =============================================================================== -->
	<xsd:element name="patch_item" substitutionGroup="oval-sc:item">
		<xsd:annotation>
			<xsd:documentation>From /usr/bin/showrev -p. See showrev(1M).</xsd:documentation>
		</xsd:annotation>
		<xsd:complexType>
			<xsd:complexContent>
				<xsd:extension base="oval-sc:ItemType">
					<xsd:sequence>
						<xsd:element name="base" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="patchitembase">
										<sch:rule context="sol-sc:patch_item/sol-sc:base">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the base entity of a patch_item should be 'int'</sch:assert>
										</sch:rule>
									</sch:pattern>
								</xsd:appinfo>
							</xsd:annotation>
						</xsd:element>
						<xsd:element name="version" type="oval-sc:EntityItemIntType" minOccurs="0" maxOccurs="1">
							<xsd:annotation>
								<xsd:documentation></xsd:documentation>
								<xsd:appinfo>
									<sch:pattern id="patchitemversion">
										<sch:rule context="sol-sc:patch_item/sol-sc:version">
											<sch:assert test="not(@datatype) or @datatype='string'">item <value-of select="../@id"/> - datatype attribute for the version entity of a patch_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>
	<!-- =============================================================================== -->
	<!-- =============================================================================== -->
	<!-- =============================================================================== -->
</xsd:schema>
