<!--
  - modconf.dtd
  - This DTD describes the module config structure.
  -
  -->

<!ELEMENT config (directive+)>                                      <!-- document contains invisible directives and pages -->

  <!ELEMENT directive (argument*)>                              <!-- each directive has a name and arguments -->
  <!ATTLIST directive
            name       CDATA  #REQUIRED
            arguments  CDATA  #IMPLIED
            invisible  CDATA  #IMPLIED
            for        CDATA  #IMPLIED
  >                                                   <!-- each directive has a name and a number of arguments -->


        <!ELEMENT argument (validate,error)>   <!-- each argument contains validation infos, a question, an error message and formvalues -->
        <!--
          Each argument
            - has a cgi paramter name (must be unique!),
            - perhaps has to be parsed (parse="date")
        -->
        <!ATTLIST argument                                            
                    paramname            CDATA  #REQUIRED
                    parse                CDATA  #IMPLIED
		    ifNotCommitted       CDATA  #IMPLIED
		    emptyIfNotCommitted  CDATA  #IMPLIED
		    default              CDATA  #IMPLIED
                  >                                                   

          <!ELEMENT validate (#PCDATA)>                               <!-- validation contains a regex -->
          <!ATTLIST validate
                      type  CDATA  #IMPLIED
                    >                                                 <!-- or a type (http-url, url or email) -->

          <!ELEMENT error (#PCDATA)>                                  <!-- dito each error -->

            <!ELEMENT value (#PCDATA)>                                <!-- each value has (optional) text (for visiblity) -->
            <!ATTLIST value
                        default  CDATA  #IMPLIED
                        val      CDATA  #REQUIRED
                      >                                               <!-- it may be a default value, but the value itself is required -->

<!-- eof -->

