<!--
   tvtime configuration version 1.0 DTD

   Namespace = http://tvtime.sourceforge.net/DTD/

   For further information, see: http://tvtime.sourceforge.net/DTD

   This DTD module is identified by the PUBLIC and SYSTEM identifiers:

   PUBLIC "-//tvtime//DTD tvtime 1.0//EN"
   SYSTEM "http://tvtime.sourceforge.net/DTD/tvtime1.dtd"

   Copyright (c) 2003  Billy Biggs

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or (at
   your option) any later version.

   This program is distributed in the hope that it will be useful, but
   WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
   General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.

   Revision: $Id: tvtime1.dtd,v 1.3 2003/04/29 01:18:50 sfllaw Exp $
-->

<!--================== Imported Names ====================================-->

<!ENTITY % LanguageCode "NMTOKEN">
  <!-- a language code, as per [RFC1766] -->

<!ENTITY % URI "CDATA">
  <!-- a Uniform Resource Identifier, see [RFC2396] -->

<!ENTITY % Number "CDATA">
  <!-- one or more digits -->

<!ENTITY % Text "CDATA">
  <!-- used for titles etc. -->

<!ENTITY % Name "CDATA">
  <!-- used for names -->

<!--=================== Generic Attributes ===============================-->

<!-- internationalization attributes
  lang        language code (backwards compatible)
  xml:lang    language code (as per XML 1.0 spec)
  dir         direction for weak/neutral text
-->
<!ENTITY % i18n
 "lang        %LanguageCode; #IMPLIED
  xml:lang    %LanguageCode; #IMPLIED
  dir         (ltr|rtl)      #IMPLIED"
  >

<!ENTITY % block "option | bind">
  <!-- options that can appear in blocks -->

<!ENTITY % inputs "keyboard | mouse">
  <!-- inputs that can be bound to functions -->

<!--================ Document Structure ==================================-->

<!-- the namespace URI designates the document profile -->
<!ELEMENT tvtime (%block; | mode)*>
<!ATTLIST tvtime
  %i18n;
  xmlns       %URI;          #FIXED 'http://tvtime.sourceforge.net/DTD/'
  >

<!ELEMENT mode (%block;)*>
<!ATTLIST mode
  name        %Name;         #REQUIRED>

<!--================ Options =============================================-->

<!ELEMENT option EMPTY>
<!ATTLIST option 
  name        %Name;         #REQUIRED
  value       %Text;         #REQUIRED>

<!--================ Binding Functions to Inputs =========================-->

<!ELEMENT bind (%inputs;)+>
<!ATTLIST bind 
  function    %Name;         #REQUIRED>

<!--================ Inputs ==============================================-->

<!ELEMENT keyboard EMPTY>
<!ATTLIST keyboard
  key         %Text;         #REQUIRED>

<!ELEMENT mouse EMPTY>
<!ATTLIST mouse
  button      %Text;         #REQUIRED>

