Table of Contents
Document Type Definition for the Lire Report Configuration Specification Markup Language.
This DTD defines a grammar that is used to specify the
   configuration parameters used by the Lire framework. Besides the
   framework parameters, this DTD can be used by extensions writers to
   register their parameters with the framework. The configuration
   specifications are usually stored in
   prefix/share/lire/config-spec
Currently, Lire's configuration namespace is flat, which means that two different specification documents cannot define parameters of the same names.
Elements of this DTD uses the
   http://www.logreport.org/LRCSML/ namespace that is
   usually mapped to the lrcsml prefix.
  
The latest version of that DTD is 1.1 and its public identifier is -//LogReport.ORG//DTD Lire Report Specification Markup Language V1.1//EN™. Its canonical system identifier is http://www.logreport.org/LRCSML/1.1/lrcsml.dtd.
<!--
                                                                   -->
<!--                    Namespace prefix for validation using the
                        DTD                                        -->
<!ENTITY % LRCSML.xmlns.pfx    "lrcsml"                                >
<!ENTITY % LRCSML.pfx          "%LRCSML.xmlns.pfx;:"                   >
<!ENTITY % LRCSML.xmlns.attr.name "xmlns:%LRCSML.xmlns.pfx;"           >
<!ENTITY % LRCSML.xmlns.attr
  "%LRCSML.xmlns.attr.name; CDATA #FIXED 'http://www.logreport.org/LRCSML/'">
<!ENTITY % LRCML.xmlns.pfx    "lrcml"                                 >
<!ENTITY % LRCML.pfx          "%LRCML.xmlns.pfx;:"                    >
<!ENTITY % LRCML.xmlns.attr.name "xmlns:%LRCML.xmlns.pfx;">
<!ENTITY % LRCML.xmlns.attr
  "%LRCML.xmlns.attr.name; CDATA #FIXED 'http://www.logreport.org/LRCML/'">
<!-- For the modules which we are including                         -->
<!ENTITY % LIRE.pfx           "%LRCSML.pfx;"                          >
  This DTD uses the common lire-desc.mod module which is used to include a subset of DocBook in description and text elements.
  
<!ENTITY % lire-desc.mod PUBLIC
    "-//LogReport.ORG//ELEMENTS Lire Description Elements V2.0//EN"
    "lire-desc.mod">
%lire-desc.mod;
   
  Each configuration specification is a XML document which has one
   config-spec as its root element.
  
<!ENTITY % LRCSML.config-spec     "%LRCSML.pfx;config-spec"              >
<!ENTITY % LRCSML.summary         "%LRCSML.pfx;summary"                  >
<!ENTITY % LRCSML.boolean         "%LRCSML.pfx;boolean"                  >
<!ENTITY % LRCSML.integer         "%LRCSML.pfx;integer"                  >
<!ENTITY % LRCSML.string          "%LRCSML.pfx;string"                   >
<!ENTITY % LRCSML.dlf-schema      "%LRCSML.pfx;dlf-schema"               >
<!ENTITY % LRCSML.dlf-streams     "%LRCSML.pfx;dlf-streams"              >
<!ENTITY % LRCSML.dlf-converter   "%LRCSML.pfx;dlf-converter"            >
<!ENTITY % LRCSML.command         "%LRCSML.pfx;command"                  >
<!ENTITY % LRCSML.file            "%LRCSML.pfx;file"                     >
<!ENTITY % LRCSML.executable      "%LRCSML.pfx;executable"               >
<!ENTITY % LRCSML.directory       "%LRCSML.pfx;directory"                >
<!ENTITY % LRCSML.select          "%LRCSML.pfx;select"                   >
<!ENTITY % LRCSML.option          "%LRCSML.pfx;option"                   >
<!ENTITY % LRCSML.list            "%LRCSML.pfx;list"                     >
<!ENTITY % LRCSML.object          "%LRCSML.pfx;object"                   >
<!ENTITY % LRCSML.output-format   "%LRCSML.pfx;output-format"            >
<!ENTITY % LRCSML.plugin          "%LRCSML.pfx;plugin"                   >
<!ENTITY % LRCSML.record          "%LRCSML.pfx;record"                   >
<!ENTITY % LRCSML.reference       "%LRCSML.pfx;reference"                >
<!ENTITY % LRCSML.report-config   "%LRCSML.pfx;report-config"            >
<!ENTITY % LRCML.param            "%LRCML.pfx;param"                     >
<!ENTITY % LRCSML.summary         "%LRCSML.pfx;summary"                  >
<!ENTITY % types-spec           "%LRCSML.boolean;|%LRCSML.integer;|
                                 %LRCSML.string;|%LRCSML.dlf-schema;|
                                 %LRCSML.dlf-converter;|%LRCSML.dlf-streams;|
                                 %LRCSML.command;|%LRCSML.file;|
                                 %LRCSML.executable;|%LRCSML.directory;|
                                 %LRCSML.select;|%LRCSML.list;|%LRCSML.object;|
                                 %LRCSML.output-format;|
                                 %LRCSML.plugin;|%LRCSML.record;|%LRCSML.reference;
                                 |%LRCSML.report-config;
                                ">
<!ENTITY % common.mix           "(%LRCSML.summary;)?,(%LIRE.description;)?">
<!ENTITY % default              "(%LRCML.param;)?"                  >
<!ENTITY % common.mix.default   "(%common.mix;, %default;)"         >
<!ELEMENT %LRCML.param; (#PCDATA|%LRCML.param;)*                       >
<!ATTLIST %LRCML.param;
             name      NMTOKEN                             #REQUIRED
             value     CDATA                               #IMPLIED >
  Root element of a configuration specification document. It contains a list of parameter specifications..
This element doesn't have any attributes.
<!ELEMENT %LRCSML.config-spec; ((%types-spec;)+)                       >
<!ATTLIST %LRCSML.config-spec;
             %LRCSML.xmlns.attr; 
             %LRCML.xmlns.attr;                                         >
   This element is used for a short one description of the
    parameter's purpose. Use the description
    element for longer help text.
   
This element doesn't have any attribute.
<!ELEMENT %LRCSML.summary; (#PCDATA) >
These attributes are common to all parameters specification elements:
Contains the name of the parameter to which this specification apply.
Determines if a valid value is required to make the container validates. Defaults to true.
This attribute can be used to set a menu section which can be used by configuration frontends to group parameters together.
This attribute is equivalent to the summary element.
       
This attribute can be used to mark a parameter as obsolete. Obsolete parameters will be removed from the specification in a future Lire release.
<!ENTITY % common.attr "
        name     NMTOKEN                                   #REQUIRED
        required NMTOKEN                                   '1'
        section  CDATA                                     #IMPLIED
        summary  CDATA                                     #IMPLIED
        obsolete NMTOKEN                                   '0'">
    This element is used to define a boolean parameter which can
     takes a yes or no
     value.
    
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.boolean; (%common.mix.default;)                    >
<!ATTLIST %LRCSML.boolean;
 %common.attr;
                                                                     >
   This element is used to define an integer parameter.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.integer; (%common.mix.default;)                    >
<!ATTLIST %LRCSML.integer;
 %common.attr;
                                                                     >
   This element is used to define an string parameter. These parameters can contains any value.
This can have a valid-re attribute which specify a
     regular expression that the value must match.
<!ELEMENT %LRCSML.string; (%common.mix.default;)                    >
<!ATTLIST %LRCSML.string;
 %common.attr;
 valid-re CDATA                                         #IMPLIED
                                                                     >
   This element is used to select a registered DlfConverter.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.dlf-converter; (%common.mix.default;)              >
<!ATTLIST %LRCSML.dlf-converter;
 %common.attr;
                                                                     >
   This element is used to select an available DlfSchema.
If this element has the superservices set, only
      superservices can be selected.
    
<!ELEMENT %LRCSML.dlf-schema; (%common.mix.default;)                 >
<!ATTLIST %LRCSML.dlf-schema;
 %common.attr;
 superservices NMTOKEN                                            '0'
                                                                     >
   This element is used to configure Lire::DlfStream in Lire::DlfStore.
This element has no attribute.
<!ELEMENT %LRCSML.dlf-streams; (%common.mix.default;)                >
<!ATTLIST %LRCSML.dlf-streams;
 %common.attr;
                                                                     >
   This element is used to define a command parameter. To be accepted as valid the parameter's value must point to an executable file or an executable file with the specified value must exist in a directory of the PATH environment variable.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.command; (%common.mix.default;)                    >
<!ATTLIST %LRCSML.command;
 %common.attr;
                                                                     >
   This element is used to define a file parameter. To be accepted as valid, the parameter's value must point to an existing file.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.file; (%common.mix.default;)                       >
<!ATTLIST %LRCSML.file;
 %common.attr;
                                                                     >
   This element is used to define a directory parameter. To be accepted as valid, the parameter's value must point to an existing directory.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.directory; (%common.mix.default;)                  >
<!ATTLIST %LRCSML.directory;
 %common.attr;
                                                                     >
   This element is used to define an executable parameter. To be accepted as valid, the parameter's value must point to an existing executable file.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.executable; (%common.mix.default;)                 >
<!ATTLIST %LRCSML.executable;
 %common.attr;
                                                                     >
   This element is used to define a parameter for which the
    value is selected among a set of options. The allowed set of
    options is specified using option elements.
   
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.select;     (%common.mix;,(%LRCSML.option;)+, %default;) >
<!ATTLIST %LRCSML.select;
 %common.attr;
                                                                     >
   This element is used to define the valid values for a
    select parameter.
   
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.option;     (%common.mix;)                           >
<!ATTLIST %LRCSML.option;
 %common.attr;
                                                                     >
   This element is used to define a parameter that can contains an ordered set of values. The type of values which can be contained is specified using other parameters elements. Any number of parameters of the type specified by the children elements can be contained by the defined parameter.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.list;       (%common.mix;,(%types-spec;)+,%default;) >
<!ATTLIST %LRCSML.list;
 %common.attr;
                                                                     >
   This element is used to define a parameter that will instantiate an
    object. The object will be instantiated by calling the "new_from_config()"
    class method defined in the package specified by the element's class attribute. The constructor will receive
    the hash instantiated from the parameter's components as parameter.
   
The label attribute can
     be used to specify the contained element that should be used to
     represent this object in lists.
    
<!ELEMENT %LRCSML.object;       (%common.mix;,(%types-spec;)+,%default;) >
<!ATTLIST %LRCSML.object;
 %common.attr;
        class    NMTOKEN                                    #REQUIRED
        label    NMTOKEN                                    #IMPLIED
                                                                     >
   This element is used to select an available OutputFormat.
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.output-format; (%common.mix.default;)              >
<!ATTLIST %LRCSML.output-format;
 %common.attr;
                                                                     >
   This element is used to define a parameter that holds record-like data.
The label attribute can
     be used to specify the contained element that should be used to
     represent this record in lists.
    
<!ELEMENT %LRCSML.record;       (%common.mix;,(%types-spec;)+, %default;) >
<!ATTLIST %LRCSML.record;
 %common.attr;
        label    NMTOKEN                                    #IMPLIED
                                                                     >
   This element is used to define a parameter that holds record-like data.
The label attribute can
     be used to specify the contained element that should be used to
     represent this record in lists.
    
<!ELEMENT %LRCSML.record;       (%common.mix;,(%types-spec;)+,%default;) >
<!ATTLIST %LRCSML.record;
 %common.attr;
        label    NMTOKEN                                    #IMPLIED
                                                                     >
   This element is used to select from an index. The index in
     which the available values is taken is specified in the index attribute.
<!ELEMENT %LRCSML.reference; (%common.mix.default;)                   >
<!ATTLIST %LRCSML.reference;
 %common.attr;
 index  CDATA                                             #REQUIRED
                                                                     >
   This element is used to configure a report configuration.
This element doesn't have any attribute. Each superservice
     can define a default report configuration using this element with
     a name of
     superservice_default
<!ELEMENT %LRCSML.report-config; (%common.mix.default;)              >
<!ATTLIST %LRCSML.report-config;
 %common.attr;
                                                                     >
   This element is used to define a parameter for which the value is
    selected among a set of options. The allowed set of options is specified
    using option elements. The element will also contain
    additional parameters based on the selected value. The available
    paramaters should be defined in a record or similar
    specification named
    name_propertiesoption_1
    option is selected will be found in the specification named
    option_1_properties.
   
This element doesn't have any specific attributes.
<!ELEMENT %LRCSML.plugin;     (%common.mix;,(%LRCSML.option;)+, %default;) >
<!ATTLIST %LRCSML.plugin;
 %common.attr;
                                                                     >