<!-- 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" -->

<!--  --><!-- FIXME <? tdom PUBLIC ... -->

<!-- ?tdom --><?tdom doc - Source format for the Option compiler, for command line parsing, GUI input, 
 generation of documentation, etc.
 <br/> See also the 
<a href="http://bandm.eu/metatools/docs/usage/option.html">option compiler user documentation</a>.
 <br/>
?>

<!--  --><!-- <a href="{@docRoot}/../usage/option.html">mt option compiler user documentation</a>. -->


<!-- ?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?>
<!-- ?tdom --><?tdom doc optionlist Sequence of a collection of command line options, to
be compiled into GUI mask, online help method, parsing method, etc. 
(In several contexts, the sequential order is significant.) ?>
<!-- ?tdom --><?tdom doc optionlist@fragmentedLists Whether reperated option arguments may be continued
following some other option(s). ?>
<!-- ?tdom --><?tdom doc optionlist@setterFunctions Whether setter methods will be synthesized
for editing the value of an option instance ?>
<!ELEMENT optionlist  (printout_title?, (enumeration | option | comment)+) >
<!ATTLIST optionlist  defaultSorting %sorting; "AaB0"
                      fragmentedLists (yes|no) 'yes' 
                      setterFunctions (yes|no) 'no' 
>


<!ELEMENT printout_title (text)+>
<!-- ?tdom --><?tdom doc printout_title The text to be printed as a header line in the "usage()" function.
Can be specified for several languages. ?>

<!--  --><!-- testweise mixed content: 
<!ELEMENT br EMPTY>
<!ELEMENT emph (#PCDATA)>
<!ELEMENT text (#PCDATA | br | emph)* >
-->

<!--  --><!-- ORIG GILT: -->
<!ELEMENT text (#PCDATA)>

<!ATTLIST text  lang  NMTOKEN #REQUIRED>
<!-- ?tdom --><?tdom doc text One translation into one particular language. 
(Its role and meaning depend on the enclosing context element.) ?>

<!ELEMENT desc (text)+>
<!-- ?tdom --><?tdom doc desc One description, in several languages. 
(Its role and meaning depend on the enclosing context element.) ?>



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

<!ELEMENT enumeration (desc?, (enumitem)+) >
<!ATTLIST enumeration name NMTOKEN #REQUIRED>
<!-- ?tdom --><?tdom doc enumeration An enumeration type which can be used for several parameters of
 several options ?>
<!-- ?tdom --><?tdom doc enumeration@name  Used to refer to this enumeration when defining the type
 of option parameters ?>


<!ELEMENT enumitem (desc)? >
<!ATTLIST enumitem value      CDATA #REQUIRED
                   compilable NMTOKEN #IMPLIED
>
<!-- ?tdom --><?tdom doc enumitem One position in an enumeration type (represented by the enclosing
 context element). ?>
<!-- ?tdom --><?tdom doc enumitem@value  Text as which this item appears to the user, on the command line, in
 a GUI, etc. 
 It maybe not a valid Java identifier. In this case {@code @compilable} must be given. ?>
<!-- ?tdom --><?tdom doc enumitem@compilable  Text as which this item is realized in the generated code.
 It must be a valid Java identifier, and must be present if {@code @value} is not. ?>


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

<!ELEMENT comment (text)+>
<!ATTLIST comment name  NMTOKEN #IMPLIED>
<!-- ?tdom --><?tdom doc comment Multi-Lingual text which separates groups of options and appears in 
 a GUI screen mask, etc.  Mostly used for further explanations and directives to the user. ?>
<!-- ?tdom --><?tdom doc comment@name  mangled into a variable name which gives access to the
 corresponding graphic sub-object  in the generated GUI class. ?>

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

<!--  --><!-- TESTWEISE subsequence
<!ELEMENT option ((desc, type), condition?) >
 -->
<!--  --><!-- orig gilt :  -->
<!ELEMENT option (desc, type, condition?) >  

<!ATTLIST option name     NMTOKEN #IMPLIED
                 abbrev   NMTOKEN #IMPLIED 
                 required (yes|no) "no"   >
<!-- ?tdom --><?tdom doc option Definition of one particular option as it appears on a command line,
 in the GUI, etc. At least one of {@code @name} or {@code @abbrev} must be given! ?>
<!-- ?tdom --><?tdom doc option@name  the long name, entered in the commandline with two minus signs,
 like "{@code --help}". Must have more than one character. ?>
<!-- ?tdom --><?tdom doc option@abbrev   the short name, entered in the commandline with one minus sign,
 like "{@code -h}". Must have exactly one character. ?>
<!-- ?tdom --><?tdom doc option@required Says whether this option must be present on the command line. 
 Is used to synthesize  checking code. ?>

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

<!ELEMENT type ( (%simpletypes;)*, rep?   )>
<!-- ?tdom --><?tdom doc type Sequence of the types of all arguments of a particular option . ?>


<!ELEMENT int EMPTY>
<!ATTLIST int default    NMTOKEN #IMPLIED>
<!-- ?tdom --><?tdom doc int Describes one integer argument in an option's list of argument types. 
 Please note that negative ints cannot be entered at the beginnig of a repetition group
 due to parsing ambiguity. ?>
<!-- ?tdom --><?tdom doc int@default Default value in case the option is missing completely. ?>

<!ELEMENT float EMPTY>
<!ATTLIST float default    NMTOKEN #IMPLIED>
<!-- ?tdom --><?tdom doc float Describes one floating point argument in an option's list of argument types.
(Floats can be translated to Java "float" or "double", controlled by an operation parameter. ?>
<!-- ?tdom --><?tdom doc float@default Default value in case the option is missing completely. ?>

<!ELEMENT bool EMPTY>
<!ATTLIST bool default    NMTOKEN #IMPLIED>
<!-- ?tdom --><?tdom doc bool Describes one boolean argument in an option's list of argument types. ?>
<!-- ?tdom --><?tdom doc bool@default Default value in case the option is missing completely. ?>

<!ELEMENT char EMPTY>
<!ATTLIST char default    CDATA #IMPLIED>
<!-- ?tdom --><?tdom doc char Describes one character value argument in an option's list of argument types. ?>
<!-- ?tdom --><?tdom doc char@default Default value in case the option is missing completely. ?>

<!ELEMENT string EMPTY>
<!ATTLIST string default    CDATA #IMPLIED>
<!-- ?tdom --><?tdom doc string Describes one string value argument in an option's list of argument types. ?>
<!-- ?tdom --><?tdom doc string@default Default value in case the option is missing completely. ?>


<!ELEMENT uri EMPTY>
<!ATTLIST uri default    CDATA    #IMPLIED>
<!-- ?tdom --><?tdom doc uri Describes one uri value argument in an option's list of argument types. ?>
<!-- ?tdom --><?tdom doc uri@default Default value in case the option is missing completely. ?>


<!ELEMENT rep ( (%simpletypes;)+, defaults?) >
<!ATTLIST rep kind     (plus|star) #REQUIRED>
<!-- ?tdom --><?tdom doc rep Describes a sequence of value types in an option's list of argument types which 
 can appear more than once. ?>
<!-- ?tdom --><?tdom doc rep@kind Whether the empty sequence is a valid input ("star", not "plus") ?>


<!ELEMENT defaults (v)+>
<!ELEMENT v (#PCDATA)>
<!-- ?tdom --><?tdom doc defaults gives the sequence of default values for a repetition group, is the
 option is completely omitted. The number of contained elements must be an integral
 multiple of the length of the containing repetion group. ?>
<!-- ?tdom --><?tdom doc v One single default value, parsed as if it stood on a command line input. ?>

<!ELEMENT enum  EMPTY>
<!ATTLIST enum name NMTOKEN    #REQUIRED
               default NMTOKEN  #IMPLIED>
<!-- ?tdom --><?tdom doc enum  Refers to an Enumeration as the type of the value of an option's argument. ?>
<!-- ?tdom --><?tdom doc enum@name The name of the enum, for referring. ?>
<!-- ?tdom --><?tdom doc enum@default The enumeration item which shall be used as 
 default value, if the option is missing completely. The text must be the Java identifier,
 i.e. the  compilable version, not the command line version. ?>

<!ELEMENT enumset  EMPTY>
<!ATTLIST enumset name    NMTOKEN    #REQUIRED
                  default NMTOKENS   #IMPLIED>
<!-- ?tdom --><?tdom doc enumset  Refers to an Enumeration as the base type for a set type for 
 the value of an option's argument. ?>
<!-- ?tdom --><?tdom doc enumset@name The name of the enum, for referring. ?>
<!-- ?tdom --><?tdom doc enumset@default The enumeration items which make the set value be used as 
 default value, if the option is missing completely. The text must be a sequence of 
 Java identifiers, i.e. the  compilable versions, not the command line versions. ?>


<!ELEMENT action EMPTY>
<!ATTLIST action name NMTOKEN #REQUIRED>
<!-- ?tdom --><?tdom doc action NOT YET SUPPORTED. ?>
<!-- ?tdom --><?tdom doc action@name identifies the triggered action, NOT YET SUPPORTED. ?>

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

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

<!ELEMENT condition (%conditions;) >
<!ELEMENT and       (%conditions;)+ >
<!ELEMENT or        (%conditions;)+ >
<!ELEMENT not       (%conditions;) >
<!-- ?tdom --><?tdom doc condition Enabling condition which "un-greys" the input fields of an option,
 if fulfilled. ?>
<!-- ?tdom --><?tdom doc and Conjuntive combination of two conditions for enabling an option. ?>
<!-- ?tdom --><?tdom doc or Disjuntive combination of two conditions for enabling an option. ?>
<!-- ?tdom --><?tdom doc not Negation of a condition for enabling an option. ?>

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

<!ELEMENT testequal (%testvalues;,%testvalues;)>
<!-- ?tdom --><?tdom doc testequal Enabling condition whether both arguments have the same numric value. ?>

<!ELEMENT testgreater (%testvalues;,%testvalues;)>
<!-- ?tdom --><?tdom doc testequal Enabling condition whether first argument is strictly larger 
 than the second. ?>

<!ELEMENT constant EMPTY>
<!ATTLIST constant value NMTOKEN #REQUIRED>
<!-- ?tdom --><?tdom doc constant Constant number to test against some current option argument value,
for forming an enabling condition. ?>

<!ELEMENT optarg EMPTY>
<!ATTLIST optarg option NMTOKEN #REQUIRED
                 number NMTOKEN #IMPLIED
                >
<!-- ?tdom --><?tdom doc optarg Reference to some option's current argument value, to test it in an
enabling  condition. ?>
<!-- ?tdom --><?tdom doc optarg@option The option from which the current argument value is taken. 
It is identified either by its long name or its short abbrev value. ?>
<!-- ?tdom --><?tdom doc optarg@number The argument of the option by its (zero-based) position index.
The value of this argument is taken for comparison. 
 (The argument values of a repetition group are currently not adressable; neither is its length.) ?>

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

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