configuration.xsd (6898B)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 3 4 <xsd:annotation> 5 <xsd:documentation xml:lang="en"> 6 Filesystem Database schema writen by Olivier Poitrey on 4/20/2004 7 Version $Id$ 8 </xsd:documentation> 9 </xsd:annotation> 10 11 <xsd:group name="commonElements"> 12 <xsd:sequence> 13 <xsd:element name="description" type="xsd:normalizedString" minOccurs="0"/> 14 </xsd:sequence> 15 </xsd:group> 16 17 <xsd:attributeGroup name="commonAttributes"> 18 <xsd:attribute name="name" type="xsd:token" use="required"/> 19 <xsd:attribute name="type" default="fixed"> 20 <xsd:simpleType> 21 <xsd:restriction base="xsd:string"> 22 <xsd:enumeration value="fixed"/> 23 <xsd:enumeration value="symbolic"/> 24 </xsd:restriction> 25 </xsd:simpleType> 26 </xsd:attribute> 27 <xsd:attribute name="use" default="required"> 28 <xsd:simpleType> 29 <xsd:restriction base="xsd:string"> 30 <xsd:enumeration value="optional"/> 31 <xsd:enumeration value="required"/> 32 <xsd:enumeration value="prohibited"/> 33 </xsd:restriction> 34 </xsd:simpleType> 35 </xsd:attribute> 36 </xsd:attributeGroup> 37 38 <xsd:simpleType name="quantityType"> 39 <xsd:union memberTypes="xsd:unsignedInt"> 40 <xsd:simpleType> 41 <xsd:restriction base="xsd:string"> 42 <xsd:enumeration value="unbounded"/> 43 </xsd:restriction> 44 </xsd:simpleType> 45 </xsd:union> 46 </xsd:simpleType> 47 48 <xsd:complexType name="baseItem" abstract="true"> 49 <xsd:sequence> 50 <xsd:group ref="commonElements"/> 51 </xsd:sequence> 52 <xsd:attributeGroup ref="commonAttributes"/> 53 </xsd:complexType> 54 55 <xsd:complexType name="baseNode" abstract="true"> 56 <xsd:sequence> 57 <xsd:group ref="commonElements"/> 58 <xsd:choice minOccurs="0" maxOccurs="unbounded"> 59 <xsd:element name="collection" type="collectionType"> 60 <xsd:unique name="collection"> 61 <xsd:annotation> 62 <xsd:documentation xml:lang="en"> 63 Avoid duplicate element with same name attribute on the same level tree 64 </xsd:documentation> 65 </xsd:annotation> 66 <xsd:selector xpath="*"/> 67 <xsd:field xpath="@name"/> 68 </xsd:unique> 69 </xsd:element> 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"/> 77 </xsd:choice> 78 </xsd:sequence> 79 </xsd:complexType> 80 81 <xsd:complexType name="collectionType"> 82 <xsd:complexContent> 83 <xsd:extension base="baseNode"> 84 <xsd:attributeGroup ref="commonAttributes"/> 85 </xsd:extension> 86 </xsd:complexContent> 87 </xsd:complexType> 88 89 <xsd:complexType name="scalarType"> 90 <xsd:complexContent> 91 <xsd:extension base="baseItem"> 92 <xsd:sequence> 93 <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/> 94 <xsd:element name="restriction" minOccurs="0"> 95 <xsd:complexType> 96 <xsd:choice> 97 <xsd:element name="enumeration" minOccurs="0" maxOccurs="unbounded"> 98 <xsd:complexType> 99 <xsd:attribute name="value" type="xsd:normalizedString"/> 100 </xsd:complexType> 101 </xsd:element> 102 </xsd:choice> 103 </xsd:complexType> 104 </xsd:element> 105 </xsd:sequence> 106 </xsd:extension> 107 </xsd:complexContent> 108 </xsd:complexType> 109 110 <xsd:complexType name="listType"> 111 <xsd:complexContent> 112 <xsd:extension base="baseItem"> 113 <xsd:sequence> 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"> 117 <xsd:complexType> 118 <xsd:sequence> 119 <xsd:element name="element" minOccurs="0" maxOccurs="unbounded"> 120 <xsd:complexType> 121 <xsd:sequence> 122 <xsd:group ref="commonElements"/> 123 <xsd:element name="default" type="xsd:boolean" minOccurs="0" default="0"/> 124 </xsd:sequence> 125 <xsd:attribute name="name" type="xsd:normalizedString" use="required"/> 126 </xsd:complexType> 127 </xsd:element> 128 </xsd:sequence> 129 </xsd:complexType> 130 </xsd:element> 131 </xsd:sequence> 132 </xsd:extension> 133 </xsd:complexContent> 134 </xsd:complexType> 135 136 <xsd:complexType name="hashType"> 137 <xsd:complexContent> 138 <xsd:extension base="baseItem"> 139 <xsd:sequence> 140 <xsd:element name="keys" minOccurs="0"> 141 <xsd:complexType> 142 <xsd:sequence> 143 <xsd:element name="key" minOccurs="0" maxOccurs="unbounded"> 144 <xsd:complexType> 145 <xsd:sequence> 146 <xsd:group ref="commonElements"/> 147 <xsd:element name="default" type="xsd:normalizedString" minOccurs="0"/> 148 </xsd:sequence> 149 <xsd:attribute name="name" type="xsd:normalizedString" use="required"/> 150 </xsd:complexType> 151 </xsd:element> 152 </xsd:sequence> 153 </xsd:complexType> 154 </xsd:element> 155 </xsd:sequence> 156 </xsd:extension> 157 </xsd:complexContent> 158 </xsd:complexType> 159 160 <xsd:complexType name="booleanType"> 161 <xsd:complexContent> 162 <xsd:extension base="baseItem"> 163 <xsd:sequence> 164 <xsd:element name="default" type="xsd:boolean" minOccurs="0"/> 165 </xsd:sequence> 166 </xsd:extension> 167 </xsd:complexContent> 168 </xsd:complexType> 169 170 <xsd:complexType name="dataType"> 171 <xsd:complexContent> 172 <xsd:extension base="baseItem"> 173 <xsd:sequence> 174 <xsd:element name="default" type="xsd:string" minOccurs="0"/> 175 </xsd:sequence> 176 </xsd:extension> 177 </xsd:complexContent> 178 </xsd:complexType> 179 180 <xsd:complexType name="linkType"> 181 <xsd:complexContent> 182 <xsd:extension base="baseItem"> 183 <xsd:sequence> 184 <xsd:element name="default" type="xsd:token" minOccurs="0"/> 185 </xsd:sequence> 186 </xsd:extension> 187 </xsd:complexContent> 188 </xsd:complexType> 189 190 <xsd:complexType name="programType"> 191 <xsd:complexContent> 192 <xsd:extension base="baseItem"> 193 <xsd:sequence> 194 <xsd:element name="parameterList" minOccurs="0"> 195 <xsd:complexType> 196 <xsd:sequence> 197 <xsd:element name="parameter" minOccurs="0" maxOccurs="unbounded"> 198 <xsd:complexType> 199 <xsd:sequence> 200 <xsd:group ref="commonElements"/> 201 </xsd:sequence> 202 <xsd:attribute name="name" type="xsd:normalizedString" use="required"/> 203 </xsd:complexType> 204 </xsd:element> 205 </xsd:sequence> 206 </xsd:complexType> 207 </xsd:element> 208 </xsd:sequence> 209 </xsd:extension> 210 </xsd:complexContent> 211 </xsd:complexType> 212 213 <!-- root element --> 214 <xsd:element name="database"> 215 <xsd:complexType> 216 <xsd:complexContent> 217 <xsd:extension base="baseNode"/> 218 </xsd:complexContent> 219 </xsd:complexType> 220 <xsd:unique name="database"> 221 <xsd:annotation> 222 <xsd:documentation xml:lang="en"> 223 Avoid duplicate element with same name attribute on the same level tree 224 </xsd:documentation> 225 </xsd:annotation> 226 <xsd:selector xpath="*"/> 227 <xsd:field xpath="@name"/> 228 </xsd:unique> 229 </xsd:element> 230 231 </xsd:schema>