util-vserver-0.30.208
[util-vserver.git] / doc / configuration.xsd
diff --git a/doc/configuration.xsd b/doc/configuration.xsd
new file mode 100644 (file)
index 0000000..e665a1e
--- /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: configuration.xsd,v 1.1 2004/04/22 19:24:05 ensc Exp $
+ </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>