Topic: wftk -- Process definition -- XML DTD

wftk home ] [ process definition ] [ discussion ]
OK, here's the DTD. This covers everything in the scenarios, and a few modifiers and such that weren't used in any scenario. What's more, it validates! For a text version, click here.

<!ENTITY % Action "task | sequence | parallel | data | alert | if | start | handle | situation | note | datastructure | role | resume">

<!ELEMENT workflow (note?,role+,data+,(%Action;),handle*,subprocess*)>
<!ATTLIST workflow
      name CDATA #IMPLIED
      author CDATA #IMPLIED
      original_date CDATA #IMPLIED
      last_modified CDATA #IMPLIED
>

<!ELEMENT subprocess (note?,role+,data+,(%Action;),handle*,subprocess*)>
<!ATTLIST subprocess
      name CDATA #IMPLIED
>

<!ELEMENT note ANY>

<!ELEMENT role EMPTY>
<!ATTLIST role
      name CDATA #IMPLIED
>

<!ELEMENT task (data)*>
<!ATTLIST task
      label CDATA #IMPLIED
      role CDATA #IMPLIED
      agent CDATA #IMPLIED
>


<!ELEMENT data (#PCDATA|list|data|note)*>
<!ATTLIST data
      name CDATA #IMPLIED
      type CDATA #IMPLIED
      storage CDATA #IMPLIED
      value CDATA #IMPLIED
      readonly CDATA #IMPLIED
>

<!ELEMENT datastructure (list|data|note)*>
<!ATTLIST datastructure
      name ID #IMPLIED
>

<!ELEMENT list (list|data|note)>

<!ELEMENT sequence (%Action;)+>
<!ATTLIST sequence
      foreach CDATA #IMPLIED
      values CDATA #IMPLIED
      index CDATA #IMPLIED
      repeat (yes|no) "no"
>

<!ELEMENT parallel (%Action;)+>
<!ATTLIST parallel
      foreach CDATA #IMPLIED
      values CDATA #IMPLIED
      index CDATA #IMPLIED
      repeat (yes|no) "no"
>


<!ELEMENT if ((%Action;),(elseif,(%Action;))*,(%Action;)?)>
<!ATTLIST if
      expr CDATA #IMPLIED
>
<!ELEMENT elseif EMPTY>
<!ATTLIST elseif
      expr CDATA #IMPLIED
>

<!ELEMENT situation (data|note)*>
<!ATTLIST situation
      name ID #IMPLIED
      break (yes|no) "yes"
>
<!ELEMENT handle (%Action;)*>
<!ATTLIST handle
      situation CDATA #IMPLIED
>
<!ELEMENT resume EMPTY>

<!ELEMENT alert (#PCDATA|data|note)*>
<!ATTLIST alert
      type CDATA #IMPLIED
      to CDATA #IMPLIED
>


<!ELEMENT start (data|note)*>
<!ATTLIST start
      name CDATA #IMPLIED
      location CDATA #IMPLIED
      mode (merge|task|independent) "task"
      completion CDATA #IMPLIED
>







Creative Commons License
This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.