<!--	lessdox.dtd

	Document Type Definition for the Lesstif Documentation
	Project (Lessdox).

	$Id: lessdox.dtd,v 1.2 1996/10/26 05:47:10 toshok Exp $

	Author: Chris Toshok
-->

<!ENTITY % Lessdox.Version
	"-//HUNGRY//DTD Lessdox 1.0//EN"

	-- Typical usage:

	    <!DOCTYPE WIDGET PUBLIC "-//HUNGRY//DTD Lessdox 1.0//EN">
	    <widget>
	    ...
	    </widget>

	    or

	   <!DOCTYPE CLIENT PUBLIC "-//HUNGRY//DTD Lessdox 1.0//EN">
	   <client>
	   ...
	   </client>

           or

	   <!DOCTYPE FAQ PUBLIC "-//HUNGRY//DTD Lessdox 1.0//EN">
	   <faq>
	   ...
	   </faq>

	--
	>

<!--
	Things that can appear in the text.
-->

<!ENTITY % refs.text "(FUNCREF | WIDGETREF | ARGREF)">
<!ENTITY % plain.text "(#PCDATA)">
<!ENTITY % normal.text "(%plain.text; | CODE | %refs.text;)*">


<!ELEMENT CODE - - (%plain.text;) >

<!--
	References
-->

<!ELEMENT FUNCREF - - (%plain.text;) >
<!ELEMENT WIDGETREF - - (%plain.text;) >
<!ELEMENT ARGREF - - (%plain.text;) >


<!--
	General document structure
-->
<!ELEMENT DESCRIPTION - - (%normal.text;)>
<!ELEMENT USAGE - O (%normal.text;)>

<!--
	Widget Resources
-->

<!ELEMENT DEFAULT - O (%plain.text;)>
<!ELEMENT ACCESS - O (%plain.text;)>

<!ELEMENT RESOURCES O O (RESOURCE+)>
<!ELEMENT RESOURCE - O (NAME, TYPE, DESCRIPTION?, DEFAULT, ACCESS)>

<!--
	Function Signature.
-->

<!ENTITY % name.type.data "NAME? & TYPE & DESCRIPTION?">

<!ELEMENT NAME - O (%plain.text;) >
<!ELEMENT TYPE - O (%plain.text;) >

<!ELEMENT RETURNS - O (%name.type.data;)>
<!ELEMENT ARG - O (%name.type.data;)>

<!ELEMENT SIGNATURE - O (RETURNS, ARG*)>

<!--<!ENTITY % widget.body "DESCRIPTION, RESOURCES, CALLBACKS, SEEALSOS?" >-->
<!ENTITY % widget.body "DESCRIPTION, RESOURCES" >

<!ENTITY % function.body "SIGNATURE, DESCRIPTION, USAGE" >

<!--====== The toplevel document structures. =====-->

<!ELEMENT FUNCTION - O (%function.body;)>
<!ATTLIST FUNCTION
	NAME CDATA #REQUIRED     -- the name of the function --
	HEADER CDATA #REQUIRED   -- the header file that declares it. --
	SHORTDESC CDATA #IMPLIED -- short description for use in the title. --
>

<!ELEMENT WIDGET - O (%widget.body;)>

<!--
<!ELEMENT TYPE - O>
<!ELEMENT CLIENT - O >
<!ELEMENT PAPER  - O >
<!ELEMENT BOOK   - O >
-->

