<!--//////////////////////////////////////////////////////////////////////-->
<!-- $Header:$                                                            -->
<!-- Mantis DTD for HIB                                                   -->
<!-- Version: 2.1                                                         -->
<!-- Copyright (c) 2000-2001 Microsoft Corp. All Rights Reserved.         -->
<!-- Usage: <!DOCTYPE HIB SYSTEM "devlist.dtd">                           -->
<!--//////////////////////////////////////////////////////////////////////-->
<!--//////////////////////////////////////////////////////////////////////-->

<!-- DTD revision as entity -->
<!ENTITY DTDRev "4">

<!--//////////////////////////////////////////////////////////////////////-->
<!-- Format types as enumeration and corresponding parameter entities -->
<!--  1      2      3       4       5     6    7      8      9    10 -->
<!ENTITY % PropFormatEnum "(Binary|String|Integer|Boolean|Multi|Expr|Script|Object|GUID|TimeDate)">
<!-- Formats as parameter entities for attributes -->
<!ENTITY % A_BINARY "CDATA">
<!ENTITY % A_STRING "CDATA">
<!ENTITY % A_INTEGER "CDATA">
<!-- ENTITY % A_BOOLEAN			"(0|1|False|True|No|Yes|Off|On|-1)" -->
<!ENTITY % A_BOOLEAN "(0|1)">
<!ENTITY % A_MULTI "CDATA">
<!ENTITY % A_EXPR "CDATA">
<!ENTITY % A_SCRIPT "CDATA">
<!ENTITY % A_OBJECT "CDATA">
<!ENTITY % A_GUID "CDATA">
<!ENTITY % A_TIMEDATE "CDATA">
<!-- Formats as parameter entities for elements -->
<!ENTITY % E_BINARY "(#PCDATA)">
<!ENTITY % E_STRING "(#PCDATA)">
<!ENTITY % E_INTEGER "(#PCDATA)">
<!ENTITY % E_BOOLEAN "(#PCDATA)">
<!ENTITY % E_MULTI "(#PCDATA)">
<!ENTITY % E_EXPR "(#PCDATA)">
<!ENTITY % E_SCRIPT "(#PCDATA)">
<!ENTITY % E_OBJECT "(#PCDATA)">
<!ENTITY % E_GUID "(#PCDATA)">
<!ENTITY % E_TIMEDATE "(#PCDATA)">
<!-- This "type" is a hint that we should use <![CDATA[...]]> brackets -->
<!ENTITY % PROPDATA "(#PCDATA)">
<!--//////////////////////////////////////////////////////////////////////-->
<!-- Generic PROPERTY element for extended [X] properties -->
<!ELEMENT PROPERTY %PROPDATA;>
<!ATTLIST PROPERTY
	Name %A_STRING; #REQUIRED
	Format %PropFormatEnum; #IMPLIED
>
<!--//////////////////////////////////////////////////////////////////////-->
<!-- HIB Hardware Information Block                                       -->
<!ELEMENT HIB (TOOLINFO?, IDENTITY?, DEVICES)>
<!ATTLIST HIB
	DTDRevision %A_INTEGER; "&DTDRev;"
>

<!--//////////////////////////////////////////////////////////////////////-->
<!-- TOOLINFO element - Information about the tool used to generate the   -->
<!--                    HIB information.                                  -->
<!ELEMENT TOOLINFO (PLATFORM?, TOOL?, TOOLOPTIONS?, TIMESTAMP?, PROPERTY*)>
<!ATTLIST TOOLINFO
	Version %A_STRING; #IMPLIED
>
<!ELEMENT PLATFORM %E_STRING;>
<!ELEMENT TOOL %E_STRING;>
<!ELEMENT TOOLOPTIONS %E_STRING;>
<!ELEMENT TIMESTAMP %E_TIMEDATE;>
<!--//////////////////////////////////////////////////////////////////////-->
<!-- IDENTITY element - Information about the identity of the system the  -->
<!--                    HIB information is generated for.                 -->
<!ELEMENT IDENTITY (CLASS?, SERIALNO?, LICENSE?, ROLE?, PROPERTY*)>
<!ATTLIST IDENTITY
	Version %A_STRING; #IMPLIED
>
<!ELEMENT CLASS %E_GUID;>
<!ELEMENT SERIALNO %E_GUID;>
<!ELEMENT LICENSE %E_STRING;>
<!ELEMENT ROLE %E_STRING;>
<!--//////////////////////////////////////////////////////////////////////-->
<!-- DEVICES element - Is the collection of devices that make up the      -->
<!--                   hardware configuration of the system.              -->
<!ELEMENT DEVICES (CATEGORY*)>
<!ATTLIST DEVICES
	Version %A_STRING; #IMPLIED
>
<!--//////////////////////////////////////////////////////////////////////-->
<!-- CATEGORY element - Classification of devices per category            -->
<!ELEMENT CATEGORY (DEVICE)*>
<!ATTLIST CATEGORY
	Name %A_STRING; #REQUIRED
>
<!--//////////////////////////////////////////////////////////////////////-->
<!-- Device                                                               -->
<!ELEMENT DEVICE (DEVICEDESC?, FRIENDLYNAME?, HARDWAREIDS, COMPATIBLEIDS)>
<!ATTLIST DEVICE
	ConfigFlags %A_INTEGER; #IMPLIED
>
<!ELEMENT DEVICEID %E_STRING;>
<!ATTLIST DEVICEID
	Order %A_INTEGER; #IMPLIED
>
<!ELEMENT HARDWAREIDS (DEVICEID)+>
<!ELEMENT COMPATIBLEIDS (DEVICEID)*>
<!ELEMENT DEVICEDESC %E_STRING;>
<!ELEMENT FRIENDLYNAME %E_STRING;>
