use the new, XSD-based format which was defined by Olivier Poitrey
authorEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Thu, 22 Apr 2004 19:24:05 +0000 (19:24 +0000)
committerEnrico Scholz <enrico.scholz@informatik.tu-chemnitz.de>
Thu, 22 Apr 2004 19:24:05 +0000 (19:24 +0000)
git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1496 94cd875c-1c1d-0410-91d2-eb244daf1a30

util-vserver/doc/configuration-xhtml.xsl
util-vserver/doc/configuration.xml
util-vserver/doc/configuration.xsd [new file with mode: 0644]

index 0a17788..60cfa5f 100644 (file)
@@ -7,16 +7,16 @@
               indent="yes"
               doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
               doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"/>
-  
-  <xsl:param name="confdir"/>
 
+  <xsl:param name="confdir"/>
+  
   <xsl:template match="/">
     <html>
       <xsl:apply-templates/>
     </html>
   </xsl:template>
 
-  <xsl:template match="topleveldir[@type='confdir']">
+  <xsl:template match="database">
     <head>
       <title>The <xsl:value-of select="$confdir"/> directory</title>
       <link rel="stylesheet" title="LSD"    type="text/css" href="configuration-lsd.css"></link>
     <body>
       <h1>The content of the <xsl:value-of select="$confdir"/> directory</h1>
 
-      <xsl:call-template name="dir">
-        <xsl:with-param name="thisdir"><xsl:value-of select="$confdir"/></xsl:with-param>
-      </xsl:call-template>
+      <ul>
+        <xsl:call-template name="collection">
+          <xsl:with-param name="thisdir"><xsl:value-of select="$confdir"/></xsl:with-param>
+        </xsl:call-template>
+      </ul>
     </body>
   </xsl:template>
 
-  <xsl:template name="dir">
+  <xsl:template name="collection">
     <xsl:param name="thisdir"/>
     <xsl:choose>
-      <xsl:when test="count(file) + count(symlink) + count(script) + count(dir) > 0">
+      <xsl:when test="count(scalar) + count(link) + count(program) + count(data) + count(hash) + count(list) + count(boolean) > 0">
         <ul>
           <xsl:call-template name="dir-iterate">
             <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
 
   <xsl:template name="dir-iterate">
     <xsl:param name="thisdir"/>
-    <xsl:apply-templates select="file|symlink|script">
+    <xsl:apply-templates select="scalar|link|program|data|hash|list|boolean">
       <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
       <xsl:sort select="@name"/>
     </xsl:apply-templates>
     
-    <xsl:apply-templates select="dir">
+    <xsl:apply-templates select="collection">
       <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
       <xsl:sort select="@name"/>
     </xsl:apply-templates>
   </xsl:template>
 
-  <xsl:template match="script">
+  <xsl:template match="program">
     <xsl:param name="thisdir"/>
     <li>
       <xsl:call-template name="printname">
     </li>
   </xsl:template>
 
-  <xsl:template match="file">
+  <xsl:template match="hash">
+    <xsl:param name="thisdir"/>
+    <li>
+      <xsl:call-template name="printname">
+        <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+        <xsl:with-param name="style">hash</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="printcontent"/>
+    </li>
+  </xsl:template>
+  
+  <xsl:template match="scalar">
     <xsl:param name="thisdir"/>
     <li>
       <xsl:call-template name="printname">
     </li>
   </xsl:template>
 
-  <xsl:template match="symlink">
+  <xsl:template match="data">
+    <xsl:param name="thisdir"/>
+    <li>
+      <xsl:call-template name="printname">
+        <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+        <xsl:with-param name="style">data</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="printcontent"/>
+    </li>
+  </xsl:template>
+
+  <xsl:template match="list">
+    <xsl:param name="thisdir"/>
+    <li>
+      <xsl:call-template name="printname">
+        <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+        <xsl:with-param name="style">list</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="printcontent"/>
+    </li>
+  </xsl:template>
+  
+  <xsl:template match="link">
     <xsl:param name="thisdir"/>
     <li>
       <xsl:call-template name="printname">
     </li>
   </xsl:template>
 
-  <xsl:template match="dir">
+  <xsl:template match="boolean">
+    <xsl:param name="thisdir"/>
+    <li>
+      <xsl:call-template name="printname">
+        <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/></xsl:with-param>
+        <xsl:with-param name="style">boolean</xsl:with-param>
+      </xsl:call-template>
+      <xsl:call-template name="printcontent"/>
+    </li>
+  </xsl:template>
+  
+  <xsl:template match="collection">
     <xsl:param name="thisdir"/>
     <li>
       <xsl:call-template name="printfullname">
       </xsl:call-template>
       <xsl:call-template name="printcontent"/>
 
-      <xsl:call-template name="dir">
+      <xsl:call-template name="collection">
         <xsl:with-param name="thisdir"><xsl:value-of select="$thisdir"/>/<xsl:value-of select="@name"/></xsl:with-param>
       </xsl:call-template>
     </li>
   </xsl:template>
 
-  <xsl:template match="dir" mode="printrpath">
+  <xsl:template match="collection" mode="printrpath">
     <xsl:text>/</xsl:text>
-    <span class="{@type}">
+      <span class="{@type}">
       <xsl:value-of select="@name"/>
     </span>
   </xsl:template>
     <xsl:param name="style"/>
     <span class="{$style}">
       <xsl:value-of select="$confdir"/>
-      <xsl:apply-templates select="ancestor-or-self::dir" mode="printrpath"/>
+      <xsl:apply-templates select="ancestor-or-self::collection" mode="printrpath"/>
     </span>
   </xsl:template>
 
index 4ad7f56..53b361b 100644 (file)
-<?xml version="1.0"?>
-<!DOCTYPE cfgdirdoc SYSTEM "configuration.dtd" [
-<!ENTITY init-scriptlet-params
-         "<params>
-           <param id='vserver-dir'>
-             <description>The configuration directory of the current vserver</description>
-           </param>
-           <param id='vserver-name'>
-             <description>The name of the current vserver</description>
-           </param>
-           <param id='action'>
-             <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop', ...).</description>
-           </param>
-         </params>">
-<!ENTITY init-script-text     "The scriptlet">
-<!ENTITY init-dir-text        "A directory with scriptlets">
-<!ENTITY init-dir-script-text "A scriptlet">
-
-<!ENTITY init-prepre-start "which will be executed before the network-interfaces are enabled
-                           and the directories are mounted.">
-<!ENTITY init-pre-start  "which will be executed after network-interfaces were enabled and
-                          the directories mounted, but before the vserver itself has been
-                          started.">
-<!ENTITY init-post-start "which will be executed after the vserver has been started.">
-<!ENTITY init-pre-stop   "which will be executed before the vserver will be stopped.">
-<!ENTITY init-post-stop  "which will be executed after the vserver has been stopped, but
-                         before the directories will be umounted and the the interfaces
-                          disabled.">
-<!ENTITY init-postpost-stop "which will be executed after the vserver has been stopped
-                            completely.">
-]>
-
-<cfgdirdoc>
-  <topleveldir type="confdir">
-    <description>The base configuration directory.</description>
-
-    <dir name=".defaults" type="fixed" optional="yes">
-      <dir name="init" type="fixed">
-       <file name="mtab">
-         <description>Default mtab-file</description>
-       </file>
-      </dir>
-
-      <symlink name="vdirbase">
-       <description></description>
-       <default>/vservers</default>
-      </symlink>
-
-      <dir name="apps" type="fixed">
-       <dir name="pkgmgmt" type="fixed">
-         <symlink name="base">
-           <description></description>
-           <default>/vservers/.pkg</default>
-         </symlink>
-
-         <file name="apt.conf">
-           <description>The default apt.conf which is going to be used. It is overridden by
-           distribution specific configuration file.</description>
-         </file>
-       </dir>
-
-       <dir name="debootstrap" type="fixed">
-         <file name="mirror">
-           <description>The Debian mirror which is used for 'debootstrap'.</description>
-         </file>
-
-         <file name="uri">
-           <description>When the 'debootstrap' package is not installed; fetch it from this uri and
-           install it at a temporary place.</description>
-         </file>
-       </dir>
-
-       <dir name="vprocunhide" type="fixed">
-         <file name="files">
-           <description>A list of files which will be made visibly by vprocunhide. Wildcards are
-           allowed and anything ending in '/' will be processed recursively. When this file exists,
-           it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be
-           absolute filenames inclusive the leading '/proc'.</description>
-         </file>
-       </dir>
-
-       <dir name="init" type="fixed">
-         <symlink name="tty">
-           <description>A symlink to the TTY device where input/output will be redirected from/to
-           at startup via initscript.</description>
-         </symlink>
-       </dir>
-
-       <dir name="vunify" type="fixed">
-         <file name="exclude">
-           <description>Static list of excluded files.</description>
-         </file>
-       </dir>
-      </dir>
-    </dir>
-
-    <dir name=".distributions" type="fixed" optional="yes">
-      <dir name="dist" type="symbolic">
-       <file name="dev">
-         <description></description>
-       </file>
-
-       <file name="apt.conf">
-         <description>The default apt.conf which is going to be used. It overrides the apt.conf
-         from CONFDIR/.defaults/apps/pkgmgmt.</description>
-       </file>
-
-       <script name="initpre">
-         <description>Script which will be executed before packages will be installed.</description>
-         <params>
-           <param id="confdir">
-             <description>The configuration directory of the vserver which is going to be set
-             up.</description>
-           </param>
-
-           <param id="vserver">
-             <description>The pathname of the vserver binary.</description>
-           </param>
-         </params>
-       </script>
-
-       <script name="initpost">
-         <description>Script which will be executed after packages are installed.</description>
-         <params>
-           <param id="confdir">
-             <description>The configuration directory of the vserver which is going to be set
-             up.</description>
-           </param>
-
-           <param id="vserver">
-             <description>The pathname of the vserver binary.</description>
-           </param>
-         </params>
-       </script>
-
-       <dir name="pkgs" type="fixed">
-         <description>Contains files with packages.</description>
-         <file name="list" type="symbolic">
-           <description>File which contains the name of packages. On top of file the special
-           keywords '--reinstall' and '--can-fail' are possible.</description>
-         </file>
-       </dir>
-
-       <dir name="pubkeys" type="fixed">
-         <description>Directory with GPG pubkeys which are used to sign the packages of this
-         distribution.</description>
-       </dir>
-
-       <dir name="apt" type="fixed">
-         <description>Default content of the /etc/apt/ directory.</description>
-       </dir>
-
-       <dir name="rpm" type="fixed">
-         <description>Default content of the /etc/rpm directory.</description>
-       </dir>
-
-       <symlink name="rpmlib">
-         <description>Directory which overrides /usr/lib/rpm.</description>
-       </symlink>
-       
-       <symlink name="execdir">
-         <description>Directory with all executables and libraries which are required for this
-         distribution.</description>
-       </symlink>
-      </dir>
-    </dir> <!-- .distributions -->
-
-    <dir name="vserver-name" type="symbolic">
-      <description>The configuration directory for the vserver vserver-name.</description>
-
-      <file name="bcapabilities">
-       <description>[experimental; name is subject of possible change] Contains the system capabilities.</description>
-      </file>
-
-      <file name="ccapabilities">
-       <description>[experimental; name is subject of possible change] Contains the context capabilities.</description>
-      </file>
-
-      <file name="schedule">
-       <description>[experimental; name is subject of possible change] Contains the scheduler
-       parameters: fill-rate, interval, tokens, tokens-min, tokens-max and cpu-mask. One parameter
-       per line.</description>
-      </file>
-      
-      
-      <file name="hostname">
-       <description>Contains the hostname of the vserver. Same as uts/nodename.</description>
-      </file>
-
-      <file name="name">
-       <description>Contains the name of the vserver. When not given, the basename of the directory
-       will be assumed as this name.</description>
-      </file>
-
-      <file name="domainname">
-       <description>The domainname of the vserver. Same as uts/domainname.</description>
-      </file>
-
-      <file name="nice">
-       <description>The nice-level on which the vserver will be started.</description>
-      </file>
-
-      <file name="capabilities">
-       <description>Contains per line a capability.</description>
-      </file>
-
-      <file name="shell">
-       <description>Contains the pathname of the shell which will be used by the "vserver ... enter"
-       command.</description>
-      </file>
-
-      <file name="flags">
-       <description>Contains per line a flag.</description>
-      </file>
-
-      <file name="context">
-       <description>Contains the context which shall be used for the vserver.</description>
-      </file>
-
-      <file name="fstab">
-       <description>The fstab file for the vserver. Entries in this file will be mounted within the
-       network context of the vserver; this means that mount will be called as 'chbind &lt;options&gt;
-       mount ...'. Use the 'fstab.local' file when you do not want this behavior, but in most cases
-       the 'fstab' file should be used.</description>
-      </file>
-
-      <file name="fstab.local">
-       <description>The fstab file for the vserver. In opposite to the normal 'fstab' file, the
-       mounting happens in the local network context. Currently there is no way to mix entries of
-       both files; 'fstab' will be always processed before 'fstab.local'.</description>
-      </file>
-      
-      <dir name="apps" type="fixed">
-       <dir name="init" type="fixed">
-         <file name="mtab">
-           <description>The initial-mtab which will be used for the vserver.</description>
-         </file>
-
-         <file name="style">
-           <description>Contains the init-style; possible values are 'sysv', 'plain', 'minit' and
-           'gentoo'.</description>
-         </file>
-
-         <file name="runlevel">
-           <description>The start runlevel.</description>
-         </file>
-
-         <file name="runlevel.start">
-           <description>The start runlevel.</description>
-         </file>
-
-         <file name="runlevel.stop">
-           <description>The stop runlevel.</description>
-         </file>
-
-         <file name="killseq">
-           <description>Contains the 'signal [wait signal]*' sequence which is used to stop the
-           vserver.</description>
-         </file>
-
-         <file name="cmd.start">
-           <description>The command which is used to start the vserver. Each option must be on a
-           separate line.</description>
-         </file>
-
-         <file name="cmd.start-sync">
-           <description>The command which is used to wait on the vserver after it has been
-           started. Each option must be on a separate line. This file will be ignored when the
-           'sync' does not exist and the '--sync' option was not used.</description>
-         </file>
-         
-         <file name="cmd.stop">
-           <description>The command which is used to stop the vserver. Each option must be on a
-           separate line.</description>
-         </file>
-
-         <file name="cmd.stop-sync">
-           <description>The command which is used to wait on the vserver after it has been
-           stopped. Each option must be on a separate line. This file will be ignored when the
-           'sync' does not exist and the '--sync' option was not used.</description>
-         </file>
-
-         <file name="cmd.prepare">
-           <description>The command which is used to setup the init-system (e.g. to set the runlevel
-           in the utmp-file). Each option must be on a separate line.</description>
-         </file>
-
-         <file name="sync">
-           <description>Without this file, the 'cmd.*-sync' files will be ignored.</description>
-         </file>
-
-         <symlink name="tty">
-           <description>A symlink to the TTY device where input/output will be redirected from/to
-           at startup via initscript.</description>
-         </symlink>
-
-         <file name="mark">
-           <description>This file is used to mark group of vservers which shall be started/stopped
-           together by the initscript. Content is a simple string like 'default'.</description>
-         </file>
-
-         <file name="depends">
-           <description>This file is used to configure vservers which must be running before the
-           current vserver can be started. At shutdown, the current vserver will be stopped before
-           its dependencies. Content of this file are vserver ids (one name per line).</description>
-         </file>
-       </dir> <!-- ...apps/init -->
-
-       <dir name="vshelper" type="fixed">
-         <file name="sync-timeout">
-           <description>The timeout in seconds which is used when synchronising vserver startup/shutdown
-           with the vshelper. When no set, 30 seconds will be assumed.</description>
-         </file>
-
-         <file name="action">
-           <description>The action which is going to be executed when a vshelper event occurs. The
-           default value is 'restart', but there can be defined own methods by placing scripts into
-           the 'vshelper-methods' directories. These scripts are fed with the same arguments as the
-           'vshelper' script.</description>
-         </file>
-
-         <script type="symbolic" name="event">
-           <description>When existing. these scripts will be executed *instead* of the default
-           handler defined in 'action'. Their name must match the event which caused the execution
-           of 'vshelper'; e.g. 'restart' or 'poweroff'. See the vs_reboot() function in the kernel
-           for more details.</description>
-           <params>
-             <param id="xid">
-               <description>The xid of the context calling the vshelper</description>
-             </param>
-             <param id="event">
-               <description>The reboot-event</description>
-             </param>
-           </params>
-         </script>
-
-         <file name="disabled">
-           <description>When existing, the vshelper functionality will be disabled for this
-           vserver.</description>
-         </file>
-
-         <file name="warning-disabled">
-           <description>When existing, sanity checks for the vshelper functionality will be
-           skipped.</description>
-         </file>
-
-         <symlink name="logfile">
-           <description>The file where output will be logged to when 'vshelper' is invoked from the
-           kernel. This should point somewhere e.g. into /var/log.</description>
-         </symlink>
-       </dir>
-
-       <dir name="vshelper-methods" type="fixed">
-         <script type="symbolic" name="handler">
-           <description>See vshelper/action.</description>
-           <params>
-           </params>
-         </script>
-       </dir>
-
-       <dir name="vunify" type="fixed">
-         <description>This directory contains configuration data required for vserver
-         unification.</description>
-         
-         <file name="exclude">
-           <description>Static list of excluded files. This list supports an rsync syntax: when a
-           file is prefixed by '+', it is a candidate for unification; when there is no prefix or a
-           '-' it will be excluded. Shell-wildcards are allowed for the filenames.</description>
-         </file>
-
-         <symlink name="refserver.X">
-           <description>These are symlinks to the configuration directory
-           (e.g. CONFDIR/vservers/&lt;idgt;) of a refserver. There may be multiple such symlinks
-           but they must be prefixed by 'refserver.' and will be processed in alphanumerical
-           order.</description>
-         </symlink>
-       </dir>
-      </dir>
-
-      <dir name="scripts" type="fixed">
-       <description>A directory for scripts. By default, when one of these scripts will be executed,
-       the execution of defaultscripts (within .../.defaults/scripts) will be skipped. To execute
-       them nevertheless, the $DONT_SKIP_DEFAULTS environment variable must be set by one of the
-       in-shellcontext scripts (the non-executable ones).</description>
-       
-       <script name="prepre-start">
-         <description>&init-script-text; &init-prepre-start;</description>
-         &init-scriptlet-params;
-       </script>
-       <dir name="prepre-start.d" type="fixed">
-         <description>&init-dir-text; &init-prepre-start;</description>
-
-         <script name="script">
-           <description>&init-dir-script-text; &init-prepre-start;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="pre-start">
-         <description>&init-script-text; &init-pre-start;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="pre-start.d">
-         <description>&init-dir-text; &init-pre-start;</description>
-         
-         <script name="script">
-           <description>&init-dir-script-text; &init-pre-start;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="post-start">
-         <description>&init-script-text; &init-post-start;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="post-start.d">
-         <description>&init-dir-text; &init-post-start;</description>
-         
-         <script name="script">
-           <description>&init-dir-script-text; &init-post-start;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="pre-stop">
-         <description>&init-script-text; &init-pre-stop;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="pre-stop.d" type="fixed">
-         <description>&init-dir-text; &init-pre-stop;</description>
-         <script name="script">
-           <description>&init-dir-script-text; &init-pre-stop;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="post-stop">
-         <description>&init-script-text; &init-post-stop;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="post-stop.d" type="fixed">
-         <description>&init-dir-text; &init-post-stop;</description>
-         <script name="script">
-           <description>&init-dir-script-text; &init-post-stop;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-
-       <script name="postpost-stop">
-         <description>&init-script-text; &init-postpost-stop;</description>
-         &init-scriptlet-params;
-       </script>
-
-       <dir name="postpost-stop.d" type="fixed">
-         <description>&init-dir-text; &init-postpost-stop;</description>
-         <script name="script">
-           <description>&init-dir-script-text; &init-postpost-stop;</description>
-           &init-scriptlet-params;
-         </script>
-       </dir>
-      </dir>
-
-
-      
-      <dir name="interfaces" type="fixed">
-       <file name="bcast">
-         <description>The deafult broadcast address.</description>
-       </file>
-       <file name="dev">
-         <description>The default network-device.</description>
-       </file>
-       <file name="prefix">
-         <description>The default network-prefix.</description>
-       </file>
-       <file name="mask">
-         <description>The default network-mask.</description>
-       </file>
-       <file name="scope">
-         <description>The default scope of the network interfaces.</description>
-       </file>
-
-       <dir name="iface" type="symbolic">
-         <description>'iface' is an arbitrary name for the interface; the value itself is not important
-         but may be interesting regarding interface-creation and usage with 'chbind'. Both happens in
-         alphabetical order and numbers like '00' are good names for these directories.</description>
-         
-         <file name="disabled">
-           <description>When this file exists, this interface will be ignored.</description>
-         </file>
-         
-         <file name="ip">
-           <description>The ip which will be assigned to this interface.</description>
-         </file>
-         <file name="bcast">
-           <description>The broadcast address.</description>
-         </file>
-         <file name="dev">
-           <description>The network-device.</description>
-         </file>
-         <file name="prefix">
-           <description>The network-prefix.</description>
-         </file>
-         <file name="mask">
-           <description>The network-mask.</description>
-         </file>
-         <file name="scope">
-           <description>The scope of the network interface.</description>
-         </file>
-         <file name="name">
-           <description>When this file exists, the interface will be named with the text in this file.</description>
-         </file>
-         <file name="nodev">
-           <description>When this file exists, the interface will be assumed to exist already. A
-           former name for this flag was 'only_ip' which is deprecated now.</description>
-         </file>
-       </dir>
-      </dir>
-
-      <dir name="ulimits" type="fixed">
-       <description>A directory with ulimits. Possible resources are cpu, data, fsize, locks,
-       memlock, nofile, nproc, rss and/or stack.</description>
-
-       <file name="resource" type="symbolic">
-         <description>A file which contains the hard- and soft-limit of the given resource in the
-         first line. The special keyword 'inf' is recognized.</description>
-       </file>
-
-       <file name="resource.hard" type="symbolic">
-         <description>A file which contains the hard- of the given resource in the first line. The
-         special keyword 'inf' is recognized.</description>
-       </file>
-
-       <file name="resource.soft" type="symbolic">
-         <description>A file which contains the soft- of the given resource in the first line. The
-         special keyword 'inf' is recognized.</description>
-       </file>
-      </dir>
-
-      <dir name="rlimits" type="fixed">
-       <description>see ulimits</description>
-      </dir>
-
-      <dir name="uts" type="fixed">
-       <file name="context">
-         <description>The context-name of the vserver. This file is listed for completeness only;
-         the 'context' name is used and set internally by the util-vserver tools and can *not* be
-         modified.</description>
-       </file>
-       <file name="sysname">
-         <description>The sysname of the vserver</description>
-       </file>
-       <file name="nodename">
-         <description>The node-/hostname of the vserver</description>
-       </file>
-       <file name="release">
-         <description>The OS-release of the vserver</description>
-       </file>
-       <file name="version">
-         <description>The OS-version of the vserver</description>
-       </file>
-       <file name="machine">
-         <description>The machine-type of the vserver</description>
-       </file>
-       <file name="domainname">
-         <description>The NIS domainname of the vserver</description>
-       </file>
-      </dir>
-    </dir>
-  </topleveldir>
-</cfgdirdoc>
-
-
-<!--
-!! Local Variables:
-!! fill-column: 100
-!! End:
--->
+<?xml version="1.0" encoding="UTF-8"?>
+<database xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
+          xsi:noNamespaceSchemaLocation="file:filesystem-database.xsd">
+
+ <!-- Global configuration -->
+ <collection name=".default" use="optional">
+  <collection name="init" type="fixed">
+   <data name="mtab">
+    <description>Default mtab file</description>
+   </data>
+  </collection>
+
+  <link name="vdirbase">
+   <default>/vservers</default>
+  </link>
+  
+  <collection name="apps">
+   <collection name="pkgmgmt">
+    <link name="base">
+     <default>/vservers/.pkg</default>
+    </link> 
+    <data name="apt.conf">
+     <description>
+      The default apt.conf which is going to be used. It is overridden by
+      distribution specific configuration file.
+     </description>
+    </data>
+   </collection>
+   
+   <collection name="debootstrap">
+    <scalar name="mirror">
+     <description>
+      The Debian mirror to use with the 'debootstrap' program
+     </description>
+    </scalar>
+    <scalar name="uri">
+     <description>
+      When the 'debootstrap' package is not installed; fetch it from this uri and
+      install it at a temporary place.
+     </description>
+    </scalar>
+   </collection>
+   
+   <collection name="vprocunhide">
+    <list name="files">
+     <description>
+      A list of files which will be made visibly by vprocunhide. Wildcards are
+      allowed and anything ending in '/' will be processed recursively. When this file exists,
+      it overrides the defaults in SYSDEFAULTDIR/vprocunhide-files. The entries there must be
+      absolute filenames inclusive the leading '/proc'.
+     </description>
+    </list>
+   </collection>
+   
+   <collection name="init">
+    <link name="tty">
+     <description>
+      A symlink to the TTY device where input/output will be redirected from/to
+      at startup via initscript.
+     </description>
+    </link>
+   </collection>
+   
+   <collection name="vunify">
+    <list name="exclude">
+     <description>
+      Static list of excluded files.
+     </description>
+    </list>
+   </collection>
+  </collection>
+   
+  <collection name=".distributions" use="optional">
+   <collection name="dist" type="symbolic">
+    <scalar name="dev">
+     <description>
+     </description>
+    </scalar>
+    <data name="apt.conf">
+     <description>
+      The default apt.conf which is going to be used. It overrides the apt.conf
+      from CONFDIR/.defaults/apps/pkgmgmt.
+     </description>
+    </data>
+    <program name="initpre">
+     <description>
+      Script which will be executed before packages will be installed.
+     </description>
+     <parameterList>
+      <parameter name="confdir">
+       <description>
+        The configuration directory of the vserver which is going to be set up.
+       </description>
+      </parameter>
+      <parameter name="vserver">
+       <description>
+        The pathname of the vserver binary.
+       </description>
+      </parameter>
+     </parameterList>
+    </program>
+    <program name="initpost">
+     <description>
+      Script which will be executed after packages are installed.
+     </description>
+     <parameterList>
+      <parameter name="confdir">
+       <description>
+        The configuration directory of the vserver which is going to be set up.
+       </description>
+      </parameter>
+      <parameter name="vserver">
+       <description>
+        The pathname of the vserver binary.
+       </description>
+      </parameter>
+     </parameterList>
+    </program>
+    
+    <collection name="pkgs">
+     <description>
+      Contains files with packages.
+     </description>
+     <list name="list">
+      <description>
+       File which contains the name of packages. On top of file the special
+       keywords '--reinstall' and '--can-fail' are possible.
+      </description>
+     </list>
+    </collection>
+    
+    <collection name="pubkeys">
+     <description>
+      Directory with GPG pubkeys which are used to sign the packages of this
+      distribution.
+     </description>
+    </collection>
+    
+    <collection name="apt">
+     <description>
+      Default content of the /etc/apt/ directory.
+     </description>
+    </collection>
+    
+    <collection name="rpm">
+     <description>
+      Default content of the /etc/rpm directory.
+     </description>
+    </collection>
+    
+    <link name="rpmlib">
+     <description>
+      Directory which overrides /usr/lib/rpm.
+     </description>
+    </link>
+    <link name="execdir">
+     <description>
+      Directory with all executables and libraries which are required for this
+      distribution.
+     </description>
+    </link>
+   </collection>
+  </collection>
+ </collection>
+ <!-- Vserver configuration -->
+ <collection name="vserver-name" type="symbolic">
+  <description>
+   The configuration directory for the vserver vserver-name.
+  </description>
+  
+  <list name="bcapabilities">
+   <description>
+    [experimental; name is subject of possible change] Contains the system capabilities.
+   </description>
+  </list>
+  <list name="ccapabilities">
+   <description>
+    [experimental; name is subject of possible change] Contains the context capabilities.
+   </description>
+  </list>
+  <hash name="schedule">
+   <description>
+    [experimental; name is subject of possible change] Contains the scheduler parameters, 
+    one per line.
+   </description>
+   <keys>
+    <key name="fill-rate">
+     <description>
+     </description>
+    </key>
+    <key name="interval">
+     <description>
+     </description>
+    </key>
+    <key name="tokens">
+     <description>
+     </description>
+    </key>
+     <key name="tokens-min">
+     <description>
+     </description>
+    </key>
+    <key name="tokens-max">
+     <description>
+     </description>
+    </key>
+    <key name="cpu-mask">
+     <description>
+     </description>
+    </key>
+   </keys>
+  </hash>
+  <scalar name="hostname">
+   <description>
+    Contains the hostname of the vserver. Same as uts/nodename.
+   </description>
+  </scalar>
+  <scalar name="name">
+   <description>
+    Contains the name of the vserver. When not given, the basename of the directory
+    will be assumed as this name.
+   </description>
+  </scalar>
+  <scalar name="domainname">
+   <description>
+    The domainname of the vserver. Same as uts/domainname.
+   </description>
+  </scalar>
+  <scalar name="nice">
+   <description>
+    The nice-level on which the vserver will be started.
+   </description>
+  </scalar>
+  <list name="capabilities">
+   <description>
+    Contains per line a capability
+   </description>
+  </list>
+  <scalar name="shell">
+   <description>
+    Contains the pathname of the shell which will be used by the "vserver ... enter"
+    command.
+   </description>
+  </scalar>
+  <list name="flags">
+   <description>
+    Contains per line a flag.
+   </description>
+   <elements>
+    <element name="fakeinit">
+     <description>
+      The new process will believe it is process number 1. Useful to run a real 
+      /sbin/init in a vserver.
+     </description>
+    </element>
+    <element name="lock">
+     <description>
+      The new process is trapped and can't use chcontext anymore.
+     </description>
+    </element>
+    <element name="sched">
+     <description>
+      The new process and its children will share a common
+     </description>
+    </element>
+    <element name="nproc">
+     <description>
+      Limit the number of process in the vserver according to
+      ulimit setting. Normally, ulimit is a per user thing.
+      With this flag, it becomes a per vserver thing.  
+     </description>
+    </element>
+    <element name="private">
+     <description>
+      No one can join this security context once created.
+     </description>
+    </element>
+    <element name="ulimit">
+     <description>
+      Apply the current ulimit to the whole context
+     </description>
+    </element>
+   </elements>
+  </list>
+  <scalar name="context">
+   <description>
+    Contains the context which shall be used for the vserver.
+   </description>
+  </scalar>
+  <data name="fstab">
+   <description>
+    The fstab file for the vserver. Entries in this file will be mounted within the
+    network context of the vserver; this means that mount will be called as 'chbind &lt;options&gt;
+    mount ...'. Use the 'fstab.local' file when you do not want this behavior, but in most cases
+    the 'fstab' file should be used.
+   </description>
+  </data>
+  <data name="fstab.local">
+   <description>
+    The fstab file for the vserver. In opposite to the normal 'fstab' file, the
+    mounting happens in the local network context. Currently there is no way to mix entries of
+    both files; 'fstab' will be always processed before 'fstab.local'.
+   </description>
+  </data>
+  
+  <collection name="apps">
+   <collection name="init">
+    <data name="mtab">
+     <description>
+      The initial-mtab which will be used for the vserver.
+     </description>
+    </data>
+    
+    <scalar name="style">
+     <description>
+      Contains the init-style.
+     </description>
+     <restriction>
+      <enumeration value="sysv"/>
+      <enumeration value="plain"/>
+      <enumeration value="minit"/>
+      <enumeration value="gento"/>
+     </restriction>
+    </scalar>
+                                                                                                                                  
+    <scalar name="runlevel">
+     <description>The start runlevel.</description>
+    </scalar>
+                                                                                                                                  
+    <scalar name="runlevel.start">
+     <description>The start runlevel.</description>
+    </scalar>
+                                                                                                                                  
+    <scalar name="runlevel.stop">
+     <description>The stop runlevel.</description>
+    </scalar>
+                                                                                                                                  
+                 <scalar name="killseq">
+                  <description>
+                   Contains the 'signal [wait signal]*' sequence which is used to stop the
+                   vserver.
+                  </description>
+                 </scalar>
+                                                                                                                                         
+                 <list name="cmd.start">
+                  <description>
+                   The command which is used to start the vserver. Each option must be on a
+                   separate line.
+                  </description>
+                 </list>
+                                                                                                                                         
+                 <list name="cmd.start-sync">
+                  <description>
+                   The command which is used to wait on the vserver after it has been
+                   started. Each option must be on a separate line. This file will be ignored when the
+                   'sync' does not exist and the '--sync' option was not used.
+                  </description>
+                 </list>
+                                                                                                                                         
+                 <list name="cmd.stop">
+                  <description>
+                   The command which is used to stop the vserver. Each option must be on a
+                   separate line.
+                  </description>
+                 </list>
+                                                                                                                                         
+    <list name="cmd.stop-sync">
+     <description>
+      The command which is used to wait on the vserver after it has been
+      stopped. Each option must be on a separate line. This file will be ignored when the
+      'sync' does not exist and the '--sync' option was not used.
+     </description>
+    </list>
+                                                                                                                                  
+                 <list name="cmd.prepare">
+                  <description>
+                   The command which is used to setup the init-system (e.g. to set the runlevel
+                   in the utmp-file). Each option must be on a separate line.
+                  </description>
+                 </list>
+                                                                                                                                         
+                 <boolean name="sync">
+                  <description>
+                   If this file is not present, all 'cmd.*-sync files will be ignored.
+                  </description>
+                 </boolean>
+                                                                                                                                         
+                 <link name="tty">
+                  <description>
+                   A symlink to the TTY device where input/output will be redirected from/to
+                   at startup via initscript.
+                  </description>
+                 </link>
+               
+                 <scalar name="mark">
+                   <description>
+                    This file is used to mark group of vservers which shall be started/stopped
+                    together by the initscript. Content is a simple string like 'default'.
+                   </description>
+                 </scalar>
+                                                                                                                                         
+                 <list name="depends">
+                   <description>
+                    This file is used to configure vservers which must be running before the
+                    current vserver can be started. At shutdown, the current vserver will be stopped before
+                    its dependencies. Content of this file are vserver ids (one name per line).
+                   </description>
+                 </list>
+   </collection>
+   
+   <collection name="vshelper">
+                 <scalar name="sync-timeout">
+                  <description>
+                   The timeout in seconds which is used when synchronising vserver startup/shutdown
+                   with the vshelper. When no set, 30 seconds will be assumed.
+                  </description>
+                  <default>30</default>
+                 </scalar>
+                                                                                                                                         
+                 <scalar name="action">
+                  <description>
+                   The action which is going to be executed when a vshelper event occurs. The
+                   default value is 'restart', but there can be defined own methods by placing scripts into
+                   the 'vshelper-methods' directories. These scripts are fed with the same arguments as the
+                   'vshelper' script.
+                  </description>
+                  <default>restart</default>
+                 </scalar>
+                                                                                                                                  
+                 <program name="event" type="symbolic">
+                  <description>
+                   When existing. these scripts will be executed *instead* of the default
+                   handler defined in 'action'. Their name must match the event which caused the execution
+                   of 'vshelper'; e.g. 'restart' or 'poweroff'. See the vs_reboot() function in the kernel
+                   for more details.
+                  </description>
+                  <parameterList>
+                   <parameter name="xid">
+                    <description>The xid of the context calling the vshelper</description>
+                   </parameter>
+                   <parameter name="event">
+                    <description>The reboot-event</description>
+                   </parameter>
+                  </parameterList>
+                 </program>
+                                                                                                                                         
+                 <boolean name="disabled">
+                  <description>
+                   When existing, the vshelper functionality will be disabled for this
+                   vserver.
+                  </description>
+                 </boolean>
+                                                                                                                                         
+                 <boolean name="warning-disabled">
+                   <description>
+                    When existing, sanity checks for the vshelper functionality will be
+                    skipped.
+                   </description>
+                 </boolean>
+                                                                                                                                         
+                 <link name="logfile">
+                   <description>
+                    The file where output will be logged to when 'vshelper' is invoked from the
+                    kernel. This should point somewhere e.g. into /var/log.
+                   </description>
+                 </link>
+   </collection>
+   
+   <collection name="vshelper-methods">
+    <program name="handler" type="symbolic">
+     <description>
+      See vshelper/action.
+     </description>
+    </program>
+   </collection>
+   
+   <collection name="vunify">
+                 <description>
+                  This directory contains configuration data required for vserver
+                  unification.
+                 </description>
+                                                                                                                                         
+                 <list name="exclude">
+                   <description>
+                    Static list of excluded files. This list supports an rsync syntax: when a
+                    file is prefixed by '+', it is a candidate for unification; when there is no prefix or a
+                    '-' it will be excluded. Shell-wildcards are allowed for the filenames.
+                   </description>
+                 </list>
+                                                                                                                                         
+                 <link name="refserver.X" type="symbolic">
+                  <description>
+                   These are symlinks to the configuration directory
+                   (e.g. CONFDIR/vservers/&lt;id&gt;) of a refserver. There may be multiple such symlinks
+                   but they must be prefixed by 'refserver.' and will be processed in alphanumerical
+                   order.
+                  </description>
+                 </link>
+   </collection>
+  </collection>
+  
+  <collection name="scripts">
+   <description>
+    A directory for scripts. By default, when one of these scripts will be executed,
+    the execution of defaultscripts (within .../.defaults/scripts) will be skipped. To execute
+    them nevertheless, the $DONT_SKIP_DEFAULTS environment variable must be set by one of the
+    in-shellcontext scripts (the non-executable ones).
+   </description>
+   
+   <program name="prepre-start">
+    <description>
+     The scriptlet which will be executed before the network-interfaces are enabled
+     and the directories are mounted."
+    </description>
+    <parameterList>
+     <parameter name="vserver-dir">
+      <description>The configuration directory of the current vserver.</description>
+     </parameter>
+     <parameter name="vserver-name">
+      <description>The name of the current vserver.</description>
+     </parameter>
+     <parameter name="action">
+      <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+     </parameter>
+    </parameterList>
+   </program>
+   <collection name="prepre-start.d">
+    <description>
+     Repository of prepre-start like scripts
+    </description>                                                                                                                 
+    <program name="script" type="symbolic">
+      <description>See prepre-start.</description>
+      <parameterList>
+                    <parameter name="vserver-dir">
+                     <description>The configuration directory of the current vserver.</description>
+                    </parameter>
+                    <parameter name="vserver-name">
+                     <description>The name of the current vserver.</description>
+                    </parameter>
+                    <parameter name="action">
+                     <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+                    </parameter>
+                   </parameterList>
+    </program>
+   </collection>
+                                                                                                                              
+   <program name="pre-start">
+    <description>
+     The scriptlet which will be executed after network-interfaces were enabled and
+     the directories mounted, but before the vserver itself has been started.
+    </description>
+    <parameterList>
+     <parameter name="vserver-dir">
+      <description>The configuration directory of the current vserver.</description>
+     </parameter>
+     <parameter name="vserver-name">
+      <description>The name of the current vserver.</description>
+     </parameter>
+     <parameter name="action">
+      <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+     </parameter>
+    </parameterList>
+   </program>
+   <collection name="pre-start.d">
+    <description>
+     Repository of pre-start like scripts
+    </description>                                                                                                                 
+    <program name="script" type="symbolic">
+      <description>See pre-start.</description>
+      <parameterList>
+                    <parameter name="vserver-dir">
+                     <description>The configuration directory of the current vserver.</description>
+                    </parameter>
+                    <parameter name="vserver-name">
+                     <description>The name of the current vserver.</description>
+                    </parameter>
+                    <parameter name="action">
+                     <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+                    </parameter>
+                   </parameterList>
+    </program>
+   </collection>
+                                                                                                                
+
+   <program name="post-start">
+    <description>
+     The scriptlet which will be executed after the vserver has been started.
+    </description>
+    <parameterList>
+     <parameter name="vserver-dir">
+      <description>The configuration directory of the current vserver.</description>
+     </parameter>
+     <parameter name="vserver-name">
+      <description>The name of the current vserver.</description>
+     </parameter>
+     <parameter name="action">
+      <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+     </parameter>
+    </parameterList>
+   </program>
+   <collection name="post-start.d">
+    <description>
+     Repository of post-start like scripts
+    </description>                                                                                                                 
+    <program name="script" type="symbolic">
+      <description>See post-start.</description>
+      <parameterList>
+                    <parameter name="vserver-dir">
+                     <description>The configuration directory of the current vserver.</description>
+                    </parameter>
+                    <parameter name="vserver-name">
+                     <description>The name of the current vserver.</description>
+                    </parameter>
+                    <parameter name="action">
+                     <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+                    </parameter>
+                   </parameterList>
+    </program>
+   </collection>
+
+
+   <program name="pre-stop">
+    <description>
+     The scriptlet which will be executed before the vserver will be stopped.
+    </description>
+    <parameterList>
+     <parameter name="vserver-dir">
+      <description>The configuration directory of the current vserver.</description>
+     </parameter>
+     <parameter name="vserver-name">
+      <description>The name of the current vserver.</description>
+     </parameter>
+     <parameter name="action">
+      <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+     </parameter>
+    </parameterList>
+   </program>
+   <collection name="pre-stop.d">
+    <description>
+     Repository of pre-stop like scripts
+    </description>                                                                                                                 
+    <program name="script" type="symbolic">
+      <description>See pre-stop.</description>
+      <parameterList>
+                    <parameter name="vserver-dir">
+                     <description>The configuration directory of the current vserver.</description>
+                    </parameter>
+                    <parameter name="vserver-name">
+                     <description>The name of the current vserver.</description>
+                    </parameter>
+                    <parameter name="action">
+                     <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+                    </parameter>
+                   </parameterList>
+    </program>
+   </collection>
+
+   <program name="post-stop">
+    <description>
+     The scriptlet which will be executed after the vserver has been stopped, but
+     before the directories will be umounted and the the interfaces
+     disabled.
+    </description>
+    <parameterList>
+     <parameter name="vserver-dir">
+      <description>The configuration directory of the current vserver.</description>
+     </parameter>
+     <parameter name="vserver-name">
+      <description>The name of the current vserver.</description>
+     </parameter>
+     <parameter name="action">
+      <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+     </parameter>
+    </parameterList>
+   </program>
+   <collection name="post-stop.d">
+    <description>
+     Repository of post-stop like scripts
+    </description>                                                                                                                 
+    <program name="script" type="symbolic">
+      <description>See post-stop.</description>
+      <parameterList>
+                    <parameter name="vserver-dir">
+                     <description>The configuration directory of the current vserver.</description>
+                    </parameter>
+                    <parameter name="vserver-name">
+                     <description>The name of the current vserver.</description>
+                    </parameter>
+                    <parameter name="action">
+                     <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+                    </parameter>
+                   </parameterList>
+    </program>
+   </collection>
+                                                                                                                              
+   <program name="postpost-stop">
+    <description>
+     The scriptlet which will be executed after the vserver has been stopped
+     completely.
+    </description>
+    <parameterList>
+     <parameter name="vserver-dir">
+      <description>The configuration directory of the current vserver.</description>
+     </parameter>
+     <parameter name="vserver-name">
+      <description>The name of the current vserver.</description>
+     </parameter>
+     <parameter name="action">
+      <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+     </parameter>
+    </parameterList>
+   </program>
+   <collection name="postpost-stop.d">
+    <description>
+     Repository of postpost-stop like scripts
+    </description>                                                                                                                 
+    <program name="script" type="symbolic">
+      <description>See postpost-stop.</description>
+      <parameterList>
+                    <parameter name="vserver-dir">
+                     <description>The configuration directory of the current vserver.</description>
+                    </parameter>
+                    <parameter name="vserver-name">
+                     <description>The name of the current vserver.</description>
+                    </parameter>
+                    <parameter name="action">
+                     <description>The fixed value of the current action (e.g. 'prepre-start', 'post-stop'...).</description>
+                    </parameter>
+                   </parameterList>
+    </program>
+   </collection>
+  </collection>
+  
+  <collection name="interfaces">
+                       <scalar name="bcast">
+                        <description>The default broadcast address.</description>
+                       </scalar>
+                       <scalar name="dev">
+                        <description>The default network device.</description>
+                       </scalar>
+                       <scalar name="prefix">
+                         <description>The default network prefix.</description>
+                       </scalar>
+                       <scalar name="mask">
+                         <description>The default network mask.</description>
+                       </scalar>
+                       <scalar name="scope">
+                         <description>The default scope of the network interfaces.</description>
+                       </scalar>
+                                                                                                                                                 
+                       <collection name="iface" type="symbolic">
+                 <description>
+                  'iface' is an arbitrary name for the interface; the value itself is not important
+                  but may be interesting regarding interface-creation and usage with 'chbind'. Both happens in
+                  alphabetical order and numbers like '00' are good names for these directories.
+                 </description>
+                                                                                                                                         
+                 <boolean name="disabled">
+                   <description>When this file exists, this interface will be ignored.</description>
+                 </boolean>
+                                                                                                                                         
+                 <scalar name="ip">
+                  <description>The ip which will be assigned to this interface.</description>
+                 </scalar>
+                 <scalar name="bcast">
+                  <description>The broadcast address.</description>
+                 </scalar>
+                 <scalar name="dev">
+                  <description>The network device.</description>
+                 </scalar>
+                 <scalar name="prefix">
+                  <description>The network prefix.</description>
+                 </scalar>
+                 <scalar name="mask">
+                  <description>The network mask.</description>
+                 </scalar>
+                 <scalar name="scope">
+                  <description>The scope of the network interface.</description>
+                 </scalar>
+                 <scalar name="name">
+                  <description>
+                   When this file exists, the interface will be named with the text in this file.
+                  </description>
+                 </scalar>
+                 <boolean name="nodev">
+                  <description>
+                   When this file exists, the interface will be assumed to exist already. A
+                   former name for this flag was 'only_ip' which is deprecated now.
+                  </description>
+                 </boolean>
+   </collection>
+  </collection>
+  
+  <collection name="ulimits">
+                       <description>
+                        A directory with ulimits. Possible resources are cpu, data, fsize, locks,
+                        memlock, nofile, nproc, rss and/or stack.
+                       </description>                                                                                                                 
+                       <scalar name="resource" type="symbolic">
+                         <description>
+                          A file which contains the hard- and soft-limit of the given resource in the
+                          first line. The special keyword 'inf' is recognized.
+                         </description>
+                       </scalar>                                                                            
+                       <scalar name="resource.hard" type="symbolic">
+                         <description>
+                          A file which contains the hard- of the given resource in the first line. The
+                          special keyword 'inf' is recognized.
+                         </description>
+                       </scalar>                                                                                             
+                       <scalar name="resource.soft" type="symbolic">
+                         <description>
+                          A file which contains the soft- of the given resource in the first line. The
+                          special keyword 'inf' is recognized.
+                         </description>
+                       </scalar>
+  </collection>
+  <collection name="rlimits">
+   <description>
+                        A directory with ulimits. Possible resources are cpu, data, fsize, locks,
+                        memlock, nofile, nproc, rss and/or stack.
+                       </description>                                                                                                                 
+                       <scalar name="resource" type="symbolic">
+                         <description>
+                          A file which contains the hard- and soft-limit of the given resource in the
+                          first line. The special keyword 'inf' is recognized.
+                         </description>
+                       </scalar>                                                                            
+                       <scalar name="resource.hard" type="symbolic">
+                         <description>
+                          A file which contains the hard- of the given resource in the first line. The
+                          special keyword 'inf' is recognized.
+                         </description>
+                       </scalar>                                                                                             
+                       <scalar name="resource.soft" type="symbolic">
+                         <description>
+                          A file which contains the soft- of the given resource in the first line. The
+                          special keyword 'inf' is recognized.
+                         </description>
+                       </scalar>
+  </collection>
+  
+  <collection name="uts">
+                       <scalar name="context">
+                         <description>
+                          The context-name of the vserver. This file is listed for completeness only;
+                          the 'context' name is used and set internally by the util-vserver tools and can *not* be
+                          modified.
+                         </description>
+                       </scalar>
+                       <scalar name="sysname">
+                        <description>The sysname of the vserver</description>
+                       </scalar>
+                       <scalar name="nodename">
+                        <description>The node-/hostname of the vserver</description>
+                       </scalar>
+                       <scalar name="release">
+                        <description>The OS-release of the vserver</description>
+                       </scalar>
+                       <scalar name="version">
+                        <description>The OS-version of the vserver</description>
+                       </scalar>
+                       <scalar name="machine">
+                        <description>The machine-type of the vserver</description>
+                       </scalar>
+                       <scalar name="domainname">
+                        <description>The NIS domainname of the vserver</description>
+                       </scalar>
+  </collection>
+ </collection>
+</database>
diff --git a/util-vserver/doc/configuration.xsd b/util-vserver/doc/configuration.xsd
new file mode 100644 (file)
index 0000000..e93f0ab
--- /dev/null
@@ -0,0 +1,231 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
+
+<xsd:annotation>
+ <xsd:documentation xml:lang="en">
+  Filesystem Database schema writen by Olivier Poitrey on 4/20/2004
+  Version $Id$
+ </xsd:documentation>
+</xsd:annotation>
+
+<xsd:group name="commonElements">
+ <xsd:sequence>
+  <xsd:element name="description" type="xsd:normalizedString" minOccurs="0"/>
+ </xsd:sequence>
+</xsd:group>
+
+<xsd:attributeGroup name="commonAttributes">
+ <xsd:attribute name="name" type="xsd:token" use="required"/>
+ <xsd:attribute name="type" default="fixed">
+  <xsd:simpleType>
+   <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="fixed"/>
+    <xsd:enumeration value="symbolic"/>
+   </xsd:restriction>
+  </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="use" default="required">
+  <xsd:simpleType>
+   <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="optional"/>
+    <xsd:enumeration value="required"/>
+    <xsd:enumeration value="prohibited"/>
+   </xsd:restriction>
+  </xsd:simpleType>
+ </xsd:attribute>
+</xsd:attributeGroup>
+
+<xsd:simpleType name="quantityType">
+ <xsd:union memberTypes="xsd:unsignedInt">
+  <xsd:simpleType>
+   <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="unbounded"/>
+   </xsd:restriction>
+  </xsd:simpleType>
+ </xsd:union>
+</xsd:simpleType>
+
+<xsd:complexType name="baseItem" abstract="true">
+ <xsd:sequence>
+  <xsd:group ref="commonElements"/>
+ </xsd:sequence>
+ <xsd:attributeGroup ref="commonAttributes"/>
+</xsd:complexType>
+
+<xsd:complexType name="baseNode" abstract="true">
+ <xsd:sequence>
+  <xsd:group ref="commonElements"/>
+  <xsd:choice minOccurs="0" maxOccurs="unbounded">
+   <xsd:element name="collection" type="collectionType">
+    <xsd:unique name="collection">
+     <xsd:annotation>
+      <xsd:documentation xml:lang="en">
+       Avoid duplicate element with same name attribute on the same level tree
+      </xsd:documentation>
+     </xsd:annotation>
+     <xsd:selector xpath="*"/>
+     <xsd:field xpath="@name"/>
+    </xsd:unique>
+   </xsd:element>
+   <xsd:element name="scalar" type="scalarType"/>
+   <xsd:element name="list" type="listType"/>
+   <xsd:element name="hash" type="hashType"/>
+   <xsd:element name="boolean" type="booleanType"/>
+   <xsd:element name="data" type="dataType"/>
+   <xsd:element name="link" type="linkType"/>
+   <xsd:element name="program" type="programType"/>
+  </xsd:choice>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="collectionType">
+ <xsd:complexContent>
+  <xsd:extension base="baseNode">
+   <xsd:attributeGroup ref="commonAttributes"/>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="scalarType">
+ <xsd:complexContent>
+  <xsd:extension base="baseItem">
+   <xsd:sequence>
+    <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
+    <xsd:element name="restriction" minOccurs="0">
+     <xsd:complexType>
+      <xsd:choice>
+       <xsd:element name="enumeration" minOccurs="0" maxOccurs="unbounded">
+        <xsd:complexType>
+         <xsd:attribute name="value" type="xsd:normalizedString"/>
+        </xsd:complexType>
+       </xsd:element>
+      </xsd:choice>
+     </xsd:complexType>
+    </xsd:element>
+   </xsd:sequence>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="listType">
+ <xsd:complexContent>
+  <xsd:extension base="baseItem">
+   <xsd:sequence>
+    <xsd:element name="minElements" type="quantityType" minOccurs="0" default="0"/>
+    <xsd:element name="maxElements" type="quantityType" minOccurs="0" default="unbounded"/>
+    <xsd:element name="elements" minOccurs="0">
+     <xsd:complexType>
+      <xsd:sequence>
+       <xsd:element name="element" minOccurs="0" maxOccurs="unbounded">
+        <xsd:complexType>
+         <xsd:sequence>
+          <xsd:group ref="commonElements"/>
+          <xsd:element name="default" type="xsd:boolean" minOccurs="0" default="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
+        </xsd:complexType>
+       </xsd:element>
+      </xsd:sequence>
+     </xsd:complexType>
+    </xsd:element>
+   </xsd:sequence>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="hashType">
+ <xsd:complexContent>
+  <xsd:extension base="baseItem">
+   <xsd:sequence>
+    <xsd:element name="keys" minOccurs="0">
+     <xsd:complexType>
+      <xsd:sequence>
+       <xsd:element name="key" minOccurs="0" maxOccurs="unbounded">
+        <xsd:complexType>
+         <xsd:sequence>
+          <xsd:group ref="commonElements"/>
+          <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
+         </xsd:sequence>
+         <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
+        </xsd:complexType>
+       </xsd:element>
+      </xsd:sequence>
+     </xsd:complexType>
+    </xsd:element>
+   </xsd:sequence>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="booleanType">
+ <xsd:complexContent>
+  <xsd:extension base="baseItem">
+   <xsd:sequence>
+    <xsd:element name="default" type="xsd:boolean" minOccurs="0"/>
+   </xsd:sequence>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="dataType">
+ <xsd:complexContent>
+  <xsd:extension base="baseItem">
+   <xsd:sequence>
+    <xsd:element name="default" type="xsd:string" minOccurs="0"/>
+   </xsd:sequence>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="linkType">
+ <xsd:complexContent>
+  <xsd:extension base="baseItem">
+   <xsd:sequence>
+    <xsd:element name="default" type="xsd:token" minOccurs="0"/>
+   </xsd:sequence>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="programType">
+ <xsd:complexContent>
+  <xsd:extension base="baseItem">
+   <xsd:sequence>
+    <xsd:element name="parameterList" minOccurs="0">
+     <xsd:complexType>
+      <xsd:sequence>
+       <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded">
+        <xsd:complexType>
+         <xsd:sequence>
+          <xsd:group ref="commonElements"/>
+         </xsd:sequence>
+         <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
+        </xsd:complexType>
+       </xsd:element>
+      </xsd:sequence>
+     </xsd:complexType>
+    </xsd:element>
+   </xsd:sequence>
+  </xsd:extension>
+ </xsd:complexContent>
+</xsd:complexType>
+
+<!-- root element -->
+<xsd:element name="database">
+ <xsd:complexType>
+  <xsd:complexContent>
+   <xsd:extension base="baseNode"/>
+  </xsd:complexContent>
+ </xsd:complexType>
+ <xsd:unique name="database">
+  <xsd:annotation>
+   <xsd:documentation xml:lang="en">
+    Avoid duplicate element with same name attribute on the same level tree
+   </xsd:documentation>
+  </xsd:annotation>
+  <xsd:selector xpath="*"/>
+  <xsd:field xpath="@name"/>
+ </xsd:unique>
+</xsd:element>
+
+</xsd:schema>