<!-- file description --><!-- collapse/expand --><!-- Click the opening symbols (angle brackets etc.) for collapsing/expanding.
     Click references for the definitions.
     Click element/attlist name position for the counterpart/next attlist. 
     Wait on a reference or on such a name for a tooltip.
     To control ALL declarations of one kind use these links:
     expand  all PIs  comments  elements  attlists  PEs  
     collaps all PIs  comments  elements  attlists  PEs  
-->
<!-- alphabetic indexes --><!-- analyses --><!-- entity usage graph --><!-- =========================================================
Here should appear an SVG visualization of parameter entity  usage, but your current browser seems not to present SVG.
 ========================================================= --->
<!-- =========================================================
Here should appear an SVG visualization of element inclusion, but your current browser seems not to present SVG.
 ========================================================= --->
<!--  --><!-- XML 1.1 DTD  SYSTEM = "../option/absy/option.dtd" -->

<!-- ?tdom --><?tdom default private?>
<!-- ?tdom --><?tdom xmlns="http://bandm.eu/doctypes/option" ?>

<!ENTITY % int 'NMTOKEN'>

<!ENTITY % sorting '( 0AaB | 0ABa | AaB0 | ABa0 | AaB | ABa )'>
<!--  --><!-- 
    sort styles containing "0" = sort by short names,
       followed by those without short names
    position of "0"-character indicates position of numeric keys.
    sort styles not containing "0" = sort by long keys,
       followed by those without long names, finally numbers-only
    AaB means not respecting case
    ABa means respecting case
-->

<!-- ?tdom --><?tdom public optionlist?>
<!ELEMENT optionlist  (printout_title?, (enumeration | option | comment)+) >
<!ATTLIST optionlist  defaultSorting %sorting; "AaB0"
                      fragmentedLists (yes|no) 'yes' 
                      setterFunctions (yes|no) 'no' 
>


<!ELEMENT printout_title (text)+>

<!ELEMENT text (#PCDATA)>
<!ATTLIST text  lang  NMTOKEN #REQUIRED>

<!ELEMENT desc (text)+>


<!--  --><!-- =========================================================================== -->

<!ELEMENT enumeration (desc?, (enumitem)+) >
<!ATTLIST enumeration name NMTOKEN #IMPLIED>

<!ELEMENT enumitem (desc)? >
<!ATTLIST enumitem value      CDATA #REQUIRED
                   compilable NMTOKEN #IMPLIED
>

<!--  --><!-- =========================================================================== -->

<!ELEMENT comment (text)+>
<!ATTLIST comment name  NMTOKEN #IMPLIED>

<!--  --><!-- =========================================================================== -->

<!ELEMENT option (desc, type, condition?) >
<!ATTLIST option name     NMTOKEN #IMPLIED
                 abbrev   NMTOKEN #IMPLIED 
                 required (yes|no) "no"   >


<!ENTITY %  simpletypes '(int | float | bool | char | string | uri 
                              | enum | enumset | action)'>
<!ELEMENT simpletypes (%simpletypes;)>

<!ELEMENT type ( (%simpletypes;)*, rep?   )>

<!ELEMENT int EMPTY>
<!ATTLIST int default    NMTOKEN #IMPLIED>

<!ELEMENT float EMPTY>
<!ATTLIST float default    NMTOKEN #IMPLIED>

<!ELEMENT bool EMPTY>
<!ATTLIST bool default    NMTOKEN #IMPLIED>

<!ELEMENT char EMPTY>
<!ATTLIST char default    NMTOKEN #IMPLIED>

<!ELEMENT string EMPTY>
<!ATTLIST string default    NMTOKEN #IMPLIED>

<!ELEMENT uri EMPTY>
<!ATTLIST uri default    NMTOKEN #IMPLIED>


<!ELEMENT rep ( (%simpletypes;)+, defaults?) >
<!ATTLIST rep kind     (plus|star) #REQUIRED>

<!ELEMENT defaults (v)+>
<!ELEMENT v (#PCDATA)>

<!ELEMENT enum  EMPTY>
<!ATTLIST enum name NMTOKEN    #REQUIRED
               default NMTOKEN  #IMPLIED>

<!ELEMENT enumset  EMPTY>
<!ATTLIST enumset name    NMTOKEN    #REQUIRED
                  default NMTOKENS   #IMPLIED>


<!ELEMENT action EMPTY>
<!ATTLIST action name NMTOKEN #IMPLIED>


<!--  --><!-- =========================================================================== -->

<!ENTITY % primecondition '(testequal| testgreater)'>
<!ENTITY % conditions '((%primecondition;) | and | or | not)'>

<!ELEMENT condition (%conditions;) >
<!ELEMENT and       (%conditions;)+ >
<!ELEMENT or        (%conditions;)+ >
<!ELEMENT not       (%conditions;) >


<!ENTITY % testvalues '(constant | optarg)'>

<!ELEMENT testequal (%testvalues;,%testvalues;)>
<!ELEMENT testgreater (%testvalues;,%testvalues;)>

<!ELEMENT constant EMPTY>
<!ATTLIST constant value NMTOKEN #REQUIRED>
<!ELEMENT optarg EMPTY>
<!ATTLIST optarg option NMTOKEN #REQUIRED
                 number NMTOKEN #IMPLIED
                >


<!--  --><!-- eof -->

<!-- created from file option.dtd by the program bandmDtdTool from BandM. -->