http://ftp.ksu.edu.tw/FTP/FreeBSD/distfiles/xscreensaver-4.24.tar.gz
[xscreensaver] / hacks / config / xss.dtd
diff --git a/hacks/config/xss.dtd b/hacks/config/xss.dtd
new file mode 100644 (file)
index 0000000..0e15f1d
--- /dev/null
@@ -0,0 +1,105 @@
+<!-- xscreensaver, Copyright (c) 2001-2005 Jamie Zawinski <jwz@jwz.org> -->
+<!--
+ Permission to use, copy, modify, distribute, and sell this software and its
+ documentation for any purpose is hereby granted without fee, provided that
+ the above copyright notice appear in all copies and that both that
+ copyright notice and this permission notice appear in supporting
+ documentation.  No representations are made about the suitability of this
+ software for any purpose.  It is provided "as is" without express or
+ implied warranty.
+-->
+<!-- 
+This DTD validates the format of the XScreenSaver configuration files.
+
+The DTD will not be devloped further, as the .XSD style validation
+can already check more of the details of the config files.
+
+DTD written by Andrew Thompson <andrewthommo@gmail.com>
+-->
+<!-- XScreenSaver settings config file. - DTD version 1.0  -->
+<!ELEMENT screensaver 
+    ((command|fullcommand)*,
+      (boolean|number|select|string|file|hgroup|vgroup)*,
+      _description)>
+<!ATTLIST screensaver
+  name        CDATA   #REQUIRED
+  _label      CDATA   #REQUIRED
+  >
+
+<!-- Every XScreenSaver hack has exactly one of either command or fullcommand -->
+<!ELEMENT command EMPTY>
+<!ATTLIST command
+  arg         CDATA   #IMPLIED
+  >
+
+<!-- Checkbox -->
+<!-- One of either arg-set or arg-unset is required -->
+<!ELEMENT boolean EMPTY>
+<!ATTLIST boolean
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg-set     CDATA   #IMPLIED
+  arg-unset   CDATA   #IMPLIED
+  >
+
+<!-- Slider and Spin Button -->
+<!-- _low/high-label not required for type spinbutton -->
+<!-- arg must end with ' %' -->
+<!ELEMENT number EMPTY>
+<!ATTLIST number
+  id          ID                  #IMPLIED
+  type       (slider|spinbutton) #REQUIRED
+  _label      CDATA               #REQUIRED
+  _low-label  CDATA               #IMPLIED 
+  _high-label CDATA               #IMPLIED 
+  arg         CDATA               #REQUIRED
+  low         CDATA              #REQUIRED
+  high        CDATA              #REQUIRED
+  default     CDATA              #REQUIRED
+  convert     (invert)            #IMPLIED
+  >
+
+<!-- Drop-down list -->
+<!ELEMENT select (option+)>
+<!ATTLIST select
+  id          ID      #IMPLIED
+  >
+
+<!-- List item -->
+<!ELEMENT option EMPTY>
+<!ATTLIST option
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg-set     CDATA   #IMPLIED
+  >
+
+<!-- String or Textual input -->
+<!-- arg must end with ' %' -->
+<!ELEMENT string EMPTY>
+<!ATTLIST string
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg         CDATA   #REQUIRED
+  >
+
+<!-- File browser. -->
+<!-- arg must end with ' %' -->
+<!ELEMENT file EMPTY>
+<!ATTLIST file
+  id          ID      #IMPLIED
+  _label      CDATA   #REQUIRED
+  arg         CDATA   #REQUIRED
+  >
+
+<!-- Free Text.  The description of the Screen Saver. -->
+<!ELEMENT _description (#PCDATA)>
+
+<!-- Horizontal grouping element, a row of widgets. 
+Unimplemented in SaverBeans as of API 0.2. -->
+<!ELEMENT hgroup ((boolean|number|select|string|file|vgroup)*)> <!-- Undocumented -->
+
+<!-- Vertical grouping element, a column of widgets.
+Since the widgets are normally arranged in a column,
+this is only of use within an hgroup. 
+Unimplemented in SaverBeans as of API 0.2. -->
+<!ELEMENT vgroup ((boolean|number|select|string|file|hgroup)*)> <!-- Undocumented -->
\ No newline at end of file