<!ENTITY % funnychars SYSTEM "funnychars.dtd">
%funnychars;

<!ENTITY % inline.class	"sup|sub|b|brite|c|e|path|img|br|mail|uri">
<!ENTITY % pre.class	"comment|i|keyword|ident|const|stmt|var|uri">
<!ENTITY % lists.class	"ul|ol|dl">
<!ENTITY % ti.class	"%inline.class;|%lists.class;|fig">
<!ENTITY % block.class	"figure|fig|note|impo|warn|pre|p|table|%lists.class;">

<!ELEMENT faqindex	(title, section?)>
<!ELEMENT chapter	(title, section+)>
<!ELEMENT section	(title?, body+)>
<!ELEMENT title		(#PCDATA)>
<!ELEMENT body		((%block.class;)+)>

<!ATTLIST section	id	CDATA			#IMPLIED>
<!ATTLIST chapter	id	CDATA			#IMPLIED>

<!ELEMENT figure	EMPTY>
<!ELEMENT fig		EMPTY>
<!ELEMENT note		(#PCDATA|%inline.class;)*>
<!ELEMENT impo		(#PCDATA|%inline.class;)*>
<!ELEMENT warn		(#PCDATA|%inline.class;)*>
<!ELEMENT pre		(#PCDATA|%pre.class;)*>
<!ELEMENT p		(#PCDATA|%inline.class;)*>
<!ELEMENT table		(tcolumn*, tr+)>
<!ELEMENT tcolumn	EMPTY>
<!ELEMENT tr		(th|ti)+>
<!ELEMENT th		(#PCDATA|%inline.class;)*>
<!ELEMENT ti		(#PCDATA|%ti.class;)*>

<!ATTLIST figure	caption	CDATA			#IMPLIED
			short	CDATA			#IMPLIED
			link	CDATA			#REQUIRED>
<!ATTLIST fig		short	CDATA			#IMPLIED
			linkto	CDATA			#IMPLIED
			link	CDATA			#REQUIRED>
<!ATTLIST pre		caption	CDATA			#REQUIRED>
<!ATTLIST p		by	CDATA			#IMPLIED>
<!ATTLIST tcolumn	width	CDATA			#REQUIRED>
<!ATTLIST tr		id	CDATA			#IMPLIED>
<!ATTLIST th		colspan	CDATA			#IMPLIED 
			rowspan	CDATA			#IMPLIED
			align	(left|center|right)	"left">
<!ATTLIST ti		colspan	CDATA			#IMPLIED 
			rowspan	CDATA			#IMPLIED
			align	(left|center|right)	"left">

<!ELEMENT ul		(li+)>
<!ELEMENT ol		(li+)>
<!ELEMENT dl		(dt|dd)+>
<!ELEMENT li		(#PCDATA|%inline.class;|ul|ol)*>
<!ELEMENT dt		(#PCDATA|%inline.class;)*>
<!ELEMENT dd		(#PCDATA|%inline.class;|ul|ol)*>

<!ELEMENT comment	(#PCDATA|%pre.class;|b)*>
<!ELEMENT i		(#PCDATA|%pre.class;)*>
<!ELEMENT keyword	(#PCDATA|%pre.class;)*>
<!ELEMENT ident		(#PCDATA|%pre.class;)*>
<!ELEMENT const		(#PCDATA|%pre.class;)*>
<!ELEMENT stmt		(#PCDATA|%pre.class;)*>
<!ELEMENT var		(#PCDATA|%pre.class;)*>

<!ELEMENT sup		(#PCDATA|%inline.class;)*>
<!ELEMENT sub		(#PCDATA|%inline.class;)*>
<!ELEMENT b		(#PCDATA|%inline.class;)*>
<!ELEMENT brite		(#PCDATA|%inline.class;)*>
<!ELEMENT c		(#PCDATA|%inline.class;)*>
<!ELEMENT e		(#PCDATA|%inline.class;)*>
<!ELEMENT path		(#PCDATA|%inline.class;)*>
<!ELEMENT img		EMPTY>
<!ELEMENT br		EMPTY>
<!ELEMENT mail		(#PCDATA)>
<!ELEMENT uri		(#PCDATA|img)*>

<!ATTLIST img		src	CDATA			#REQUIRED>
<!ATTLIST mail		link	CDATA			#IMPLIED>
<!ATTLIST uri		link	CDATA			#IMPLIED>

