XRL DTD (Exchangeable Routing Language)

From: http://tmitwww.tm.tue.nl/staff/wvdaalst/workflow/xrl/index.html
Date: 2002-12-27
See: http://xml.coverpages.org/xrl.html


<!ENTITY % routing_element "task|sequence|any_sequence|choice|

    condition|parallel_sync|parallel_no_sync|parallel_part_sync|

    parallel_part_sync_cancel|wait_all|wait_any|while_do|stop|terminate">

<!ELEMENT route (%routing_element;)>

<!ATTLIST route name ID #REQUIRED

    created_by CDATA #IMPLIED

    date CDATA #IMPLIED>
  
<!ELEMENT task (event*)>

<!ATTLIST task name ID #REQUIRED

    address CDATA #REQUIRED

    role CDATA #IMPLIED

    doc_read NMTOKENS #IMPLIED

    doc_update NMTOKENS #IMPLIED

    doc_create NMTOKENS #IMPLIED

    result CDATA #IMPLIED

    status (ready|running|enabled|disabled|aborted|null) #IMPLIED

    start_time NMTOKEN #IMPLIED

    end_time NMTOKEN #IMPLIED

    notify CDATA #IMPLIED>

<!ELEMENT event EMPTY>

<!ATTLIST event name ID #REQUIRED>

<!ELEMENT sequence ((%routing_element;|state)+)>

<!ELEMENT any_sequence ((%routing_element;)+)>

<!ELEMENT choice ((%routing_element;)+)>

<!ELEMENT condition (true|false)*>

<!ATTLIST condition condition CDATA #REQUIRED>

<!ELEMENT true (%routing_element;)>

<!ELEMENT false (%routing_element;)>

<!ELEMENT parallel_sync ((%routing_element;)+)>

<!ELEMENT parallel_no_sync ((%routing_element;)+)>

<!ELEMENT parallel_part_sync ((%routing_element;)+)>

<!ATTLIST parallel_part_sync number NMTOKEN #REQUIRED>

<!ELEMENT parallel_part_sync_cancel ((%routing_element;)+)>

<!ATTLIST parallel_part_sync_cancel number NMTOKEN #REQUIRED>

<!ELEMENT wait_all (event_ref|timeout)+>

<!ELEMENT wait_any(event_ref|timeout)+>

<!ELEMENT event_ref EMPTY>

<!ATTLIST event_ref name IDREF #REQUIRED>

<!ELEMENT timeout (%routing_element;?)>

<!ATTLIST timeout time CDATA #REQUIRED type

    (relative|s_relative|absolute) "absolute">

<!ELEMENT while_do (%routing_element;)>

<!ATTLIST while_do condition CDATA #REQUIRED>

<!ELEMENT terminate EMPTY>

<!ELEMENT state (event+)>