<!--
  Inno Setup
  Copyright (C) 1997-2006 Jordan Russell
  Portions by Martijn Laan
  For conditions of distribution and use, see LICENSE.TXT.

  $jrsoftware: ishelp/isetup.dtd,v 1.6 2009/07/29 11:56:22 mlaan Exp $

  Document Type Definition for isetup.xml
-->

<!ENTITY nbsp "&#160;"> 
<!ENTITY copy "&#169;"> 

<!ENTITY % _inlineExceptLink "b | br | i | tt | u">
<!ENTITY % _inline "%_inlineExceptLink; | link | extlink | a | anchorlink">
<!ENTITY % _block "p | heading | pre | precode | example | examples | indent | ul | ol | dl | paramlist | flaglist | table">

<!ENTITY % Inline "(#PCDATA | %_inline;)*">
<!ENTITY % InlineExceptLink "(#PCDATA | %_inlineExceptLink;)*">
<!ENTITY % Block "(%_block;)*">
<!ENTITY % InlineOrBlock "(#PCDATA | %_inline; | %_block;)*">

<!ELEMENT ishelp (contents?, (topic | setuptopic)*)>
<!ATTLIST ishelp version CDATA #REQUIRED>

<!ELEMENT contents ((contentstopic | contentsheading)*)>
<!ELEMENT contentstopic EMPTY>
<!ATTLIST contentstopic title CDATA #REQUIRED topic CDATA #REQUIRED>
<!ELEMENT contentsheading ((contentstopic | contentsheading)*)>
<!ATTLIST contentsheading title CDATA #REQUIRED>

<!ELEMENT topic (keyword*, body)>
<!ATTLIST topic name CDATA #REQUIRED title CDATA #REQUIRED>
<!ELEMENT keyword EMPTY>
<!ATTLIST keyword value CDATA #REQUIRED anchor CDATA #IMPLIED>

<!ELEMENT setuptopic (keyword*, setupformat?, setupvalid?, setupdefault?, body)>
<!ATTLIST setuptopic directive CDATA #REQUIRED title CDATA #IMPLIED>
<!ELEMENT setupformat %Inline;>
<!ELEMENT setupvalid %Inline;>
<!ELEMENT setupdefault %Inline;> 

<!ELEMENT body %Block;>

<!-- Inline elements -->

<!ELEMENT b %Inline;>
<!ELEMENT br EMPTY>
<!ELEMENT i %Inline;>
<!ELEMENT tt %Inline;>
<!ELEMENT u %Inline;>
<!ELEMENT link %InlineExceptLink;>
<!ATTLIST link topic CDATA #REQUIRED anchor CDATA #IMPLIED>
<!ELEMENT extlink %InlineExceptLink;>
<!ATTLIST extlink href CDATA #REQUIRED>
<!ELEMENT a %InlineExceptLink;>
<!ATTLIST a name CDATA #REQUIRED>
<!ELEMENT anchorlink %InlineExceptLink;>
<!ATTLIST anchorlink name CDATA #REQUIRED>

<!-- Simple block elements -->

<!ELEMENT p %Inline;>
<!ATTLIST p margin (yes|no) "yes">
<!ELEMENT heading %Inline;>
<!ELEMENT pre %Inline;>
<!ELEMENT precode %Inline;>
<!ELEMENT example %InlineOrBlock;>
<!ELEMENT examples %InlineOrBlock;>
<!ELEMENT indent %Block;>

<!-- Fancier block elements -->

<!ELEMENT ul (li*)>
<!ATTLIST ul appearance (normal|compact) "normal">
<!ELEMENT ol (li*)>
<!ELEMENT li %InlineOrBlock;>

<!ELEMENT dl (dt, dd)*>
<!ELEMENT dt %Inline;>
<!ELEMENT dd %Block;>

<!ELEMENT paramlist (param*)>
<!ELEMENT param %Block;>
<!ATTLIST param name CDATA #REQUIRED required (yes|no) "no">

<!ELEMENT flaglist (flag*)>
<!ELEMENT flag %Block;>
<!ATTLIST flag name CDATA #REQUIRED>

<!ELEMENT table (tr*)>
<!ELEMENT tr (td+)>
<!ELEMENT td %InlineOrBlock;>
