1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
5 <xsd:documentation xml:lang="en">
6 Filesystem Database schema writen by Olivier Poitrey on 4/20/2004
11 <xsd:group name="commonElements">
13 <xsd:element name="description" type="xsd:normalizedString" minOccurs="0"/>
17 <xsd:attributeGroup name="commonAttributes">
18 <xsd:attribute name="name" type="xsd:token" use="required"/>
19 <xsd:attribute name="type" default="fixed">
21 <xsd:restriction base="xsd:string">
22 <xsd:enumeration value="fixed"/>
23 <xsd:enumeration value="symbolic"/>
27 <xsd:attribute name="use" default="required">
29 <xsd:restriction base="xsd:string">
30 <xsd:enumeration value="optional"/>
31 <xsd:enumeration value="required"/>
32 <xsd:enumeration value="prohibited"/>
38 <xsd:simpleType name="quantityType">
39 <xsd:union memberTypes="xsd:unsignedInt">
41 <xsd:restriction base="xsd:string">
42 <xsd:enumeration value="unbounded"/>
48 <xsd:complexType name="baseItem" abstract="true">
50 <xsd:group ref="commonElements"/>
52 <xsd:attributeGroup ref="commonAttributes"/>
55 <xsd:complexType name="baseNode" abstract="true">
57 <xsd:group ref="commonElements"/>
58 <xsd:choice minOccurs="0" maxOccurs="unbounded">
59 <xsd:element name="collection" type="collectionType">
60 <xsd:unique name="collection">
62 <xsd:documentation xml:lang="en">
63 Avoid duplicate element with same name attribute on the same level tree
66 <xsd:selector xpath="*"/>
67 <xsd:field xpath="@name"/>
70 <xsd:element name="scalar" type="scalarType"/>
71 <xsd:element name="list" type="listType"/>
72 <xsd:element name="hash" type="hashType"/>
73 <xsd:element name="boolean" type="booleanType"/>
74 <xsd:element name="data" type="dataType"/>
75 <xsd:element name="link" type="linkType"/>
76 <xsd:element name="program" type="programType"/>
81 <xsd:complexType name="collectionType">
83 <xsd:extension base="baseNode">
84 <xsd:attributeGroup ref="commonAttributes"/>
89 <xsd:complexType name="scalarType">
91 <xsd:extension base="baseItem">
93 <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
94 <xsd:element name="restriction" minOccurs="0">
97 <xsd:element name="enumeration" minOccurs="0" maxOccurs="unbounded">
99 <xsd:attribute name="value" type="xsd:normalizedString"/>
107 </xsd:complexContent>
110 <xsd:complexType name="listType">
112 <xsd:extension base="baseItem">
114 <xsd:element name="minElements" type="quantityType" minOccurs="0" default="0"/>
115 <xsd:element name="maxElements" type="quantityType" minOccurs="0" default="unbounded"/>
116 <xsd:element name="elements" minOccurs="0">
119 <xsd:element name="element" minOccurs="0" maxOccurs="unbounded">
122 <xsd:group ref="commonElements"/>
123 <xsd:element name="default" type="xsd:boolean" minOccurs="0" default="0"/>
125 <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
133 </xsd:complexContent>
136 <xsd:complexType name="hashType">
138 <xsd:extension base="baseItem">
140 <xsd:element name="keys" minOccurs="0">
143 <xsd:element name="key" minOccurs="0" maxOccurs="unbounded">
146 <xsd:group ref="commonElements"/>
147 <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/>
149 <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
157 </xsd:complexContent>
160 <xsd:complexType name="booleanType">
162 <xsd:extension base="baseItem">
164 <xsd:element name="default" type="xsd:boolean" minOccurs="0"/>
167 </xsd:complexContent>
170 <xsd:complexType name="dataType">
172 <xsd:extension base="baseItem">
174 <xsd:element name="default" type="xsd:string" minOccurs="0"/>
177 </xsd:complexContent>
180 <xsd:complexType name="linkType">
182 <xsd:extension base="baseItem">
184 <xsd:element name="default" type="xsd:token" minOccurs="0"/>
187 </xsd:complexContent>
190 <xsd:complexType name="programType">
192 <xsd:extension base="baseItem">
194 <xsd:element name="parameterList" minOccurs="0">
197 <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded">
200 <xsd:group ref="commonElements"/>
202 <xsd:attribute name="name" type="xsd:normalizedString" use="required"/>
210 </xsd:complexContent>
213 <!-- root element -->
214 <xsd:element name="database">
217 <xsd:extension base="baseNode"/>
218 </xsd:complexContent>
220 <xsd:unique name="database">
222 <xsd:documentation xml:lang="en">
223 Avoid duplicate element with same name attribute on the same level tree
226 <xsd:selector xpath="*"/>
227 <xsd:field xpath="@name"/>