<!--
 VCDImager VideoCD XML 1.0 DTD 

 Copyright (c) 2000-2001  Herbert Valerio Riedel <hvr@gnu.org>

 Namespace = "http://www.gnu.org/software/vcdimager/1.0/"

 This DTD module is identified by the PUBLIC and SYSTEM identifiers:

 PUBLIC "-//GNU//DTD VideoCD//EN"
 SYSTEM "http://www.gnu.org/software/vcdimager/videocd.dtd"

 $Revision: 1.5 $
 $Date: 2001/07/31 00:25:59 $

-->

<!ENTITY % URI "CDATA">

<!ENTITY % itemattrs
 "id        ID           #REQUIRED
  src       %URI;        #REQUIRED"
>

<!ELEMENT videocd (option*,info,pvd,filesystem?,segment-items?,sequence-items,pbc?)>
<!ATTLIST videocd
  class     CDATA                    #REQUIRED
  version   CDATA                    #REQUIRED
  xmlns     %URI;                    #FIXED 'http://www.gnu.org/software/vcdimager/1.0/'
>

<!ELEMENT option EMPTY>
<!ATTLIST option 
  name		CDATA	#REQUIRED
  value 	CDATA   #IMPLIED
>

<!--======================================================================-->

<!ELEMENT info (album-id?,volume-count?,volume-number?,next-volume-use-sequence2?,next-volume-use-lid2?,restriction?,start-time-offset*)>

<!ELEMENT album-id (#PCDATA)>
<!ELEMENT volume-count (#PCDATA)>
<!ELEMENT volume-number (#PCDATA)>
<!ELEMENT next-volume-use-sequence2 EMPTY>
<!ELEMENT next-volume-use-lid2 EMPTY>
<!ELEMENT restriction (#PCDATA)>
<!ELEMENT start-time-offset (#PCDATA)>

<!--======================================================================-->

<!ELEMENT pvd (volume-id?,system-id?,application-id?,preparer-id?,publisher-id?)>

<!ELEMENT volume-id (#PCDATA)>
<!ELEMENT system-id (#PCDATA)>
<!ELEMENT application-id (#PCDATA)>
<!ELEMENT preparer-id (#PCDATA)>
<!ELEMENT publisher-id (#PCDATA)>

<!--======================================================================-->

<!ELEMENT filesystem (folder*,file*)>

<!ELEMENT folder (name,folder*,file*)>

<!ELEMENT file (name)>
<!ATTLIST file 
  src       %URI;          #REQUIRED
  format    (form1|mixed)  "form1"
>
<!ELEMENT name (#PCDATA)>

<!--======================================================================-->

<!ELEMENT segment-items (segment-item)+>
<!ELEMENT segment-item  (auto-pause)*>
<!ATTLIST segment-item 
  %itemattrs;
>

<!--======================================================================-->

<!ELEMENT sequence-items (sequence-item)+>

<!ELEMENT sequence-item (default-entry?,entry*,auto-pause*)>
<!ATTLIST sequence-item
  src       %URI;        #REQUIRED
  id        ID           #IMPLIED
>

<!ELEMENT default-entry EMPTY>
<!ATTLIST default-entry
  id        ID           #REQUIRED
>

<!ELEMENT entry (#PCDATA)>
<!ATTLIST entry
  id        ID           #IMPLIED
>

<!ELEMENT auto-pause (#PCDATA)>

<!--======================================================================-->

<!ELEMENT pbc (selection|playlist|endlist)+>

<!ENTITY % pbcattrs
" id        ID           #REQUIRED
  rejected  (true|false) 'false'"
>

<!ENTITY % XY "CDATA">

<!ENTITY % ofsattrs
 " ref       IDREF       #IMPLIED
   x1        %XY;        #IMPLIED
   y1        %XY;        #IMPLIED
   x2        %XY;        #IMPLIED
   y2        %XY;        #IMPLIED"
>

<!ELEMENT selection (bsn?,prev?,next?,return?,(multi-default|default)?,timeout?,wait?,loop?,play-item?,select*)>
<!ATTLIST selection
  %pbcattrs;
>

<!ELEMENT playlist (prev?,next?,return?,playtime?,wait?,autowait?,play-item+)>
<!ATTLIST playlist
  %pbcattrs;
>

<!ELEMENT endlist (next-volume?,play-item?)>
<!ATTLIST endlist
  %pbcattrs;
>

<!ELEMENT wait (#PCDATA)>
<!ELEMENT autowait (#PCDATA)>
<!ELEMENT playtime (#PCDATA)>
<!ELEMENT loop (#PCDATA)>

<!ELEMENT bsn (#PCDATA)>
<!ELEMENT prev EMPTY>
<!ELEMENT next EMPTY>
<!ELEMENT return EMPTY>
<!ELEMENT multi-default EMPTY>
<!ELEMENT default EMPTY>
<!ELEMENT timeout EMPTY>
<!ELEMENT play-item EMPTY>
<!ELEMENT select EMPTY>

<!ELEMENT next-volume (#PCDATA)>

<!ATTLIST multi-default
  numeric      (enabled|disabled)    'enabled'
>

<!ATTLIST loop
  jump-timing  (immediate|delayed)   'immediate'
>

<!ATTLIST prev 
  %ofsattrs;
>

<!ATTLIST next
  %ofsattrs;
>

<!ATTLIST return 
  %ofsattrs;
>

<!ATTLIST default
  %ofsattrs;
>

<!ATTLIST timeout
  ref       IDREF       #IMPLIED
>

<!ATTLIST play-item
  ref       IDREF       #IMPLIED
>

<!ATTLIST select
  %ofsattrs;
>

