1 <!-- xscreensaver, Copyright (c) 2001-2012 Jamie Zawinski <jwz@jwz.org> -->
3 Permission to use, copy, modify, distribute, and sell this software and its
4 documentation for any purpose is hereby granted without fee, provided that
5 the above copyright notice appear in all copies and that both that
6 copyright notice and this permission notice appear in supporting
7 documentation. No representations are made about the suitability of this
8 software for any purpose. It is provided "as is" without express or
12 This DTD validates the format of the XScreenSaver configuration files.
14 The DTD will not be devloped further, as the .XSD style validation
15 can already check more of the details of the config files.
17 DTD written by Andrew Thompson <andrewthommo@gmail.com>
19 <!-- XScreenSaver settings config file. - DTD version 1.0 -->
21 ((command|fullcommand)*,
22 (boolean|number|select|string|file|hgroup|vgroup|xscreensaver-text|xscreensaver-image)*,
26 _label CDATA #REQUIRED
30 <!-- Every XScreenSaver hack has exactly one of either command or fullcommand -->
31 <!ELEMENT command EMPTY>
37 <!-- One of either arg-set or arg-unset is required -->
38 <!ELEMENT boolean EMPTY>
41 _label CDATA #REQUIRED
42 arg-set CDATA #IMPLIED
43 arg-unset CDATA #IMPLIED
46 <!-- Slider and Spin Button -->
47 <!-- _low/high-label not required for type spinbutton -->
48 <!-- arg must end with ' %' -->
49 <!ELEMENT number EMPTY>
52 type (slider|spinbutton) #REQUIRED
53 _label CDATA #REQUIRED
54 _low-label CDATA #IMPLIED
55 _high-label CDATA #IMPLIED
59 default CDATA #REQUIRED
60 convert (invert) #IMPLIED
63 <!-- Drop-down list -->
64 <!ELEMENT select (option+)>
70 <!ELEMENT option EMPTY>
73 _label CDATA #REQUIRED
74 arg-set CDATA #IMPLIED
77 <!-- String or Textual input -->
78 <!-- arg must end with ' %' -->
79 <!ELEMENT string EMPTY>
82 _label CDATA #REQUIRED
86 <!-- File browser. -->
87 <!-- arg must end with ' %' -->
91 _label CDATA #REQUIRED
95 <!ELEMENT xscreensaver-text EMPTY>
96 <!ELEMENT xscreensaver-image EMPTY>
98 <!-- Free Text. The description of the Screen Saver. -->
99 <!ELEMENT _description (#PCDATA)>
101 <!-- Horizontal grouping element, a row of widgets.
102 Unimplemented in SaverBeans as of API 0.2. -->
103 <!ELEMENT hgroup ((boolean|number|select|string|file|vgroup)*)> <!-- Undocumented -->
105 <!-- Vertical grouping element, a column of widgets.
106 Since the widgets are normally arranged in a column,
107 this is only of use within an hgroup.
108 Unimplemented in SaverBeans as of API 0.2. -->
109 <!ELEMENT vgroup ((boolean|number|select|string|file|hgroup)*)> <!-- Undocumented -->