<?xml version="1.0" ?>

<!--

     This is a DTD for flood configuration files.
     With this file, validating XML software and
     heading line:

     <!DOCTYPE flood SYSTEM "flood.dtd">

     ...you can make sure your flood configuration
     is valid (in contrast to just "well-formed").

-->

<!ELEMENT flood (urllist+,profile+,farmer+,farm+,seed?)>

<!-- urllist -->
<!ELEMENT urllist (name,description?,baseurl?,(url|sequence)+)>

<!ELEMENT name (#PCDATA)>
<!ELEMENT description (#PCDATA)>
<!ELEMENT baseurl (#PCDATA)>

<!ELEMENT url (#PCDATA)>

<!ATTLIST url method (GET | POST | HEAD) #IMPLIED>
<!ATTLIST url payload CDATA #IMPLIED>
<!ATTLIST url payloadparam CDATA #IMPLIED>
<!ATTLIST url payloadparamcount CDATA #IMPLIED>
<!ATTLIST url payloadtemplate CDATA #IMPLIED>
<!ATTLIST url responsename CDATA #IMPLIED>
<!ATTLIST url responsetemplate CDATA #IMPLIED>
<!ATTLIST url requesttemplate CDATA #IMPLIED>
<!ATTLIST url requestparamcount CDATA #IMPLIED>
<!ATTLIST url predelay CDATA #IMPLIED>
<!ATTLIST url predelayprecision CDATA #IMPLIED>
<!ATTLIST url postdelay CDATA #IMPLIED>
<!ATTLIST url postdelayprecision CDATA #IMPLIED>
<!ATTLIST url user CDATA #IMPLIED>
<!ATTLIST url password CDATA #IMPLIED>
<!ATTLIST url Content-Type CDATA #IMPLIED>

<!ELEMENT sequence (url+)>

<!ATTLIST sequence sequencename CDATA #REQUIRED>
<!ATTLIST sequence sequencelist CDATA #REQUIRED>

<!-- profile -->

<!ENTITY % profile.events "(profile_init?,get_next_url?,create_req?,postprocess?,loop_condition?,profile_destroy?)+">
<!ENTITY % socket.events "(socket_init?,begin_conn?,send_req?,recv_resp?,end_conn?,request_destroy?,response_destroy?,socket_destroy?)+">
<!ENTITY % report.events "(report_init?,process_stats?,report_stats?,destroy_report?)+">

<!-- FIXME: this declaration doesn't exactly cover the flexibility of profile -->

<!ELEMENT profile (name,(description)?,useurllist,
                   (profiletype|%profile.events;),
                   (socket|%socket.events;),
                   verify_resp,
                   (report|%report.events;))>

<!ELEMENT useurllist (#PCDATA)>
<!ELEMENT profiletype (#PCDATA)>
<!ELEMENT socket (#PCDATA)>
<!ELEMENT verify_resp (#PCDATA)>
<!ELEMENT report (#PCDATA)>

<!ELEMENT profile_init (#PCDATA)>
<!ELEMENT get_next_url (#PCDATA)>
<!ELEMENT create_req (#PCDATA)>
<!ELEMENT postprocess (#PCDATA)>
<!ELEMENT loop_condition (#PCDATA)>
<!ELEMENT profile_destroy (#PCDATA)>

<!ELEMENT report_init (#PCDATA)>
<!ELEMENT process_stats (#PCDATA)>
<!ELEMENT report_stats (#PCDATA)>
<!ELEMENT destroy_report (#PCDATA)>

<!ELEMENT socket_init (#PCDATA)>
<!ELEMENT begin_conn (#PCDATA)>
<!ELEMENT send_req (#PCDATA)>
<!ELEMENT recv_resp (#PCDATA)>
<!ELEMENT end_conn (#PCDATA)>
<!ELEMENT request_destroy (#PCDATA)>
<!ELEMENT response_destroy (#PCDATA)>
<!ELEMENT socket_destroy (#PCDATA)>

<!-- farmer -->

<!ELEMENT farmer (name,description?,(count|time),useprofile+)>

<!ELEMENT count (#PCDATA)>
<!ELEMENT time (#PCDATA)>
<!ELEMENT useprofile (#PCDATA)>

<!-- farm -->

<!ELEMENT farm (name,description?,usefarmer+)>

<!ELEMENT usefarmer (#PCDATA)>

<!ATTLIST usefarmer count CDATA #IMPLIED>
<!ATTLIST usefarmer startcount CDATA #IMPLIED>
<!ATTLIST usefarmer startdelay CDATA #IMPLIED>

<!-- seed -->

<!ELEMENT seed (#PCDATA)>

