Full Isl DTD

<?xml version="1.0"?>

<!DOCTYPE isl [
<!ELEMENT isl (id, group?, name?, life, modal, string, (start|stop|(create|destroy|in|out|select|modify|isl)+), meta?)>

     <!ELEMENT start (id, group?, name?)>
     <!ELEMENT stop (id, group?, name?)>

     <!ELEMENT create (id, group?, name?, life, modal, string, parameter*)>
     <!ELEMENT destroy (id, group?, name?, life, modal, string)>

     <!ELEMENT select (id, group?, name?, life, modal, response-number, string, alternative+, meta?)>
     <!ELEMENT modify (id, group?, name?, life, modal, string, meta?)>
     <!ELEMENT in (id, group?, name?, life, modal, string, meta?)>
     <!ELEMENT out (id, group?, name?, life, modal, string, meta?)>

     <!ELEMENT alternative (id, group, name, string, retval, meta?)>
     <!ELEMENT parameter (id, value)>

         <!ELEMENT id (#PCDATA)>
         <!ELEMENT group (#PCDATA)>
         <!ELEMENT life (#PCDATA)>
         <!ELEMENT modal (#PCDATA)>
         <!ELEMENT string (#PCDATA)>

         <!ELEMENT retval (#PCDATA)>
         <!ELEMENT response-number (#PCDATA)>
         <!ELEMENT meta (#PCDATA)>
         <!ELEMENT value (#PCDATA)>
]>