<Schema name="schemaSystemInfo" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes">

    <AttributeType name="name">
        <datatype dt:type="string"/>
	</AttributeType>

    <AttributeType name="timestamp" dt:type="datetime"/>        

    <ElementType name="systemInfo" content="eltOnly">
        <element type="computerSystem" minOccurs="0" maxOccurs="1"/>
        <element type="regKeys" minOccurs="0" maxOccurs="1"/>
        <element type="platform" minOccurs="0" maxOccurs="1"/>
        <element type="locale" minOccurs="0" maxOccurs="*"/>
        <element type="devices" minOccurs="0" maxOccurs="1"/>
     </ElementType>
	

    <ElementType name="computerSystem" model="open">
        <AttributeType name="manufacturer" dt:type="string"/>
        <AttributeType name="model" dt:type="string"/>
        <AttributeType name="supportSite" dt:type="uri"/>
        <AttributeType name="administrator" dt:type="boolean"/>
        <AttributeType name="windowsUpdateDisabled" dt:type="boolean"/>
        <AttributeType name="autoUpdateEnabled" dt:type="boolean"/>
	<AttributeType name="pid" dt:type="string" />
                
	<attribute type="manufacturer" required="no"/>
	<attribute type="model" required="no"/>
        <attribute type="supportSite" required="no"/>
        <attribute type="administrator" required="no"/>        
        <attribute type="windowsUpdateDisabled" required="no"/>
        <attribute type="autoUpdateEnabled" required="no"/>
	<attribute type="pid" required="no" />

        <element type="driveSpace" minOccurs="0" maxOccurs="*"/>
    </ElementType>
    
    <ElementType name="driveSpace" content="eltOnly">
        <AttributeType name="drive" dt:type="string"/>
        <AttributeType name="kbytes" dt:type="int"/>

        <attribute type="drive" required="yes"/>
        <attribute type="kbytes" required="yes"/>
	</ElementType>


    <ElementType name="regKeys" content="eltOnly">
        <element type="HKEY_LOCAL_MACHINE" minOccurs="1" maxOccurs="1"/>
	</ElementType>

    <ElementType name="HKEY_LOCAL_MACHINE" content="eltOnly">
        <element type="SOFTWARE" minOccurs="1" maxOccurs="1"/>
	</ElementType>

    <ElementType name="SOFTWARE" content="eltOnly">
        <element type="value" minOccurs="1" maxOccurs="*"/>
	</ElementType>

    <ElementType name="value" content="textOnly">        
	</ElementType>

    <ElementType name="devices" content="eltOnly">
        <element type="device" minOccurs="0" maxOccurs="*"/>
	</ElementType>

    <ElementType name="device" content="eltOnly">
        <AttributeType name="isPrinter" dt:type="boolean"/>        
	<AttributeType name="deviceInstance" dt:type="string"/>

        <attribute type="isPrinter" required="no"/>
	<attribute type="deviceInstance" required="no"/>

        <element type="printerInfo" minOccurs="0" maxOccurs="1"/>
        <element type="hwid" minOccurs="0" maxOccurs="*"/>
        <element type="compid" minOccurs="0" maxOccurs="*"/>
	</ElementType>

    <ElementType name="printerInfo" content="mixed">        
        <AttributeType name="driverProvider" dt:type="string"/>
        <AttributeType name="driverName" dt:type="string"/>
        <AttributeType name="mfgName" dt:type="string"/>
        
        <attribute type="driverProvider" required="yes"/>
        <attribute type="driverName" required="yes"/>
        <attribute type="mfgName" required="yes"/>
	</ElementType>


    <ElementType name="hwid" content="mixed">        
        <AttributeType name="rank" dt:type="int"/>
        <AttributeType name="driverVer" dt:type="string"/>

	<attribute type="rank" required="no"/>
        <attribute type="driverVer" required="no"/>        
	</ElementType>

    <ElementType name="compid" content="mixed">        
        <AttributeType name="rank" dt:type="int"/>
        <AttributeType name="driverVer" dt:type="string"/>
    
	<attribute type="rank" required="no"/>
        <attribute type="driverVer" required="no"/>
	</ElementType>

    <ElementType name="version" content="mixed">
        <AttributeType name="major" dt:type="int"/>
        <AttributeType name="minor" dt:type="int"/>
        <AttributeType name="servicePackMajor" dt:type="int"/>
        <AttributeType name="servicePackMinor" dt:type="int"/>
        <AttributeType name="build" dt:type="int"/>

        <attribute type="major" required="no"/>
        <attribute type="minor" required="no"/>
        <attribute type="build" required="no"/>
        <attribute type="servicePackMajor" required="no"/>
        <attribute type="servicePackMinor" required="no"/>
        <attribute type="timestamp" required="no"/>
	</ElementType>
    
    <ElementType name="platform" content="mixed">
        <attribute type="name" required="yes"/>
        <element type="processorArchitecture" minOccurs="0" maxOccurs="1"/>
        <element type="version" minOccurs="0" maxOccurs="1"/>
        <element type="suite" minOccurs="0" maxOccurs="*"/>
        <element type="productType" minOccurs="0" maxOccurs="1"/>
	</ElementType>
    
    <ElementType name="suite" content="mixed">        
	</ElementType>

    <ElementType name="productType" content="mixed">        
	</ElementType>

    <ElementType name="locale" content="mixed">
        <AttributeType name="context" dt:type="enumeration" dt:values="OS USER"/>
        <attribute type="context" required="yes"/>

        <element type="language" minOccurs="1" maxOccurs="*"/>
	</ElementType>

    <ElementType name="language" content="mixed">        
	</ElementType>

    <ElementType name="processorArchitecture" content="mixed">
	</ElementType>


</Schema>
