began for maemo
[xscreensaver] / xscreensaver / hacks / config / xss.dtd
1 <!-- xscreensaver, Copyright (c) 2001-2005 Jamie Zawinski <jwz@jwz.org> -->
2 <!--
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
9  implied warranty.
10 -->
11 <!-- 
12 This DTD validates the format of the XScreenSaver configuration files.
13
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.
16
17 DTD written by Andrew Thompson <andrewthommo@gmail.com>
18 -->
19 <!-- XScreenSaver settings config file. - DTD version 1.0  -->
20 <!ELEMENT screensaver 
21     ((command|fullcommand)*,
22       (boolean|number|select|string|file|hgroup|vgroup)*,
23       _description)>
24 <!ATTLIST screensaver
25   name        CDATA   #REQUIRED
26   _label      CDATA   #REQUIRED
27   >
28
29 <!-- Every XScreenSaver hack has exactly one of either command or fullcommand -->
30 <!ELEMENT command EMPTY>
31 <!ATTLIST command
32   arg         CDATA   #IMPLIED
33   >
34
35 <!-- Checkbox -->
36 <!-- One of either arg-set or arg-unset is required -->
37 <!ELEMENT boolean EMPTY>
38 <!ATTLIST boolean
39   id          ID      #IMPLIED
40   _label      CDATA   #REQUIRED
41   arg-set     CDATA   #IMPLIED
42   arg-unset   CDATA   #IMPLIED
43   >
44
45 <!-- Slider and Spin Button -->
46 <!-- _low/high-label not required for type spinbutton -->
47 <!-- arg must end with ' %' -->
48 <!ELEMENT number EMPTY>
49 <!ATTLIST number
50   id          ID                  #IMPLIED
51   type        (slider|spinbutton) #REQUIRED
52   _label      CDATA               #REQUIRED
53   _low-label  CDATA               #IMPLIED 
54   _high-label CDATA               #IMPLIED 
55   arg         CDATA               #REQUIRED
56   low         CDATA              #REQUIRED
57   high        CDATA              #REQUIRED
58   default     CDATA              #REQUIRED
59   convert     (invert)            #IMPLIED
60   >
61
62 <!-- Drop-down list -->
63 <!ELEMENT select (option+)>
64 <!ATTLIST select
65   id          ID      #IMPLIED
66   >
67
68 <!-- List item -->
69 <!ELEMENT option EMPTY>
70 <!ATTLIST option
71   id          ID      #IMPLIED
72   _label      CDATA   #REQUIRED
73   arg-set     CDATA   #IMPLIED
74   >
75
76 <!-- String or Textual input -->
77 <!-- arg must end with ' %' -->
78 <!ELEMENT string EMPTY>
79 <!ATTLIST string
80   id          ID      #IMPLIED
81   _label      CDATA   #REQUIRED
82   arg         CDATA   #REQUIRED
83   >
84
85 <!-- File browser. -->
86 <!-- arg must end with ' %' -->
87 <!ELEMENT file EMPTY>
88 <!ATTLIST file
89   id          ID      #IMPLIED
90   _label      CDATA   #REQUIRED
91   arg         CDATA   #REQUIRED
92   >
93
94 <!-- Free Text.  The description of the Screen Saver. -->
95 <!ELEMENT _description (#PCDATA)>
96
97 <!-- Horizontal grouping element, a row of widgets. 
98 Unimplemented in SaverBeans as of API 0.2. -->
99 <!ELEMENT hgroup ((boolean|number|select|string|file|vgroup)*)> <!-- Undocumented -->
100
101 <!-- Vertical grouping element, a column of widgets.
102 Since the widgets are normally arranged in a column,
103 this is only of use within an hgroup. 
104 Unimplemented in SaverBeans as of API 0.2. -->
105 <!ELEMENT vgroup ((boolean|number|select|string|file|hgroup)*)> <!-- Undocumented -->