<?xml version="1.0" ?>

<!ELEMENT lash_project      (version, name, client*)>

<!ELEMENT version             (#PCDATA)>
<!ELEMENT name                (#PCDATA)>

<!ELEMENT client              (class, id, flags, working_directory, arg_set,
                               jack_patch_set?, alsa_patch_set?)>

<!ELEMENT class               (#PCDATA)>
<!ELEMENT id                  (#PCDATA)>
<!ELEMENT flags               (#PCDATA)>
<!ELEMENT working_directory   (#PCDATA)>

<!ELEMENT arg_set             (arg*)>

<!ELEMENT arg                 (#PCDATA)>


<!ELEMENT jack_patch_set      (jack_patch*)>
<!ELEMENT alsa_patch_set      (alsa_patch*)>

<!ELEMENT jack_patch          ((src_client  | src_client_id),  src_port,
                               (dest_client | dest_client_id), dest_port)>

<!ELEMENT alsa_patch          ((src_client  | src_client_id),  src_port,
                               (dest_client | dest_client_id), dest_port,
                               queue, exclusive, time_update, time_real)>

<!ELEMENT src_client          (#PCDATA)>
<!ELEMENT src_client_id       (#PCDATA)>
<!ELEMENT src_port            (#PCDATA)>
<!ELEMENT dest_client         (#PCDATA)>
<!ELEMENT dest_client_id      (#PCDATA)>
<!ELEMENT dest_port           (#PCDATA)>

<!ELEMENT queue               (#PCDATA)>
<!ELEMENT exclusive           (#PCDATA)>
<!ELEMENT time_update         (#PCDATA)>
<!ELEMENT time_real           (#PCDATA)>
