Code

new xml schema file to validate xml files
[gosa.git] / gosa-core / plugins / admin / users / user-filter.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3         <xsd:element name="filterdef">
4                 <xsd:complexType>
5                         <xsd:sequence>
6                                 <xsd:element ref="definition" minOccurs="1" maxOccurs="1"/>
7                                 <xsd:element ref="search" minOccurs="1" maxOccurs="1"/>
8                                 <xsd:element ref="element" minOccurs="0" maxOccurs="unbounded"/>
9                         </xsd:sequence>
10                 </xsd:complexType>
11         </xsd:element>
12         <xsd:simpleType name="regexA">
13                 <xsd:restriction base="xsd:string">
14                         <xsd:pattern value="true|false"/>
15                 </xsd:restriction>
16         </xsd:simpleType>
17         <xsd:simpleType name="regexB">
18                 <xsd:restriction base="xsd:string">
19                         <xsd:pattern value="([a-zA-Z0-9/.-])+"/>
20                 </xsd:restriction>
21         </xsd:simpleType>
22         <xsd:simpleType name="regexC">
23                 <xsd:restriction base="xsd:string">
24                         <xsd:pattern value="([a-zA-Z0-9])+"/>
25                 </xsd:restriction>
26         </xsd:simpleType>
27         <xsd:simpleType name="regexD">
28                 <xsd:restriction base="xsd:string">
29                         <xsd:pattern value="([A-Z])+"/>
30                 </xsd:restriction>
31         </xsd:simpleType>
32         <xsd:element name="definition">
33                 <xsd:complexType mixed="true">
34                         <xsd:all>
35                                 <xsd:element ref="category" minOccurs="1"/>
36                                 <xsd:element ref="template" minOccurs="1"/>
37                                 <xsd:element ref="initial" minOccurs="0"/>
38                         </xsd:all>
39                 </xsd:complexType>
40         </xsd:element>
41         <xsd:element name="category" type="regexB"/>
42         <xsd:element name="template" type="regexB"/>
43         <xsd:element name="initial" type="regexA"/>
44         <xsd:element name="search">
45                 <xsd:complexType mixed="true">
46                         <xsd:sequence>
47                                 <xsd:element ref="query" maxOccurs="unbounded"/>
48                                 <xsd:element ref="scope"/>
49                         </xsd:sequence>
50                 </xsd:complexType>
51         </xsd:element>
52         <xsd:element name="query">
53                 <xsd:complexType mixed="true">
54                         <xsd:sequence>
55                                 <xsd:element ref="backend"/>
56                                 <xsd:element ref="filter"/>
57                                 <xsd:element ref="attribute" maxOccurs="unbounded"/>
58                         </xsd:sequence>
59                 </xsd:complexType>
60         </xsd:element>
61         <xsd:element name="backend" type="regexD"/>
62         <xsd:element name="filter" type="xsd:string"/>
63         <xsd:element name="attribute" type="regexC"/>
64         <xsd:element name="scope">
65                 <xsd:simpleType>
66                         <xsd:restriction base="xsd:string">
67                                 <xsd:pattern value="auto|sub|one"/>
68                         </xsd:restriction>
69                 </xsd:simpleType>
70         </xsd:element>
71         <xsd:element name="element">
72                 <xsd:complexType mixed="true">
73                         <xsd:sequence>
74                                 <xsd:element ref="type"/>
75                                 <xsd:element ref="tag"/>
76                                 <xsd:element ref="alphabet" minOccurs="0"/>
77                                 <xsd:element ref="default" minOccurs="0"/>
78                                 <xsd:element ref="unset"/>
79                                 <xsd:element ref="set"/>
80                                 <xsd:element ref="autocomplete" minOccurs="0"/>
81                                 <xsd:element ref="value" minOccurs="0" maxOccurs="unbounded"/>
82                         </xsd:sequence>
83                 </xsd:complexType>
84         </xsd:element>
85         <xsd:element name="type">
86                 <xsd:simpleType>
87                         <xsd:restriction base="xsd:string">
88                                 <xsd:enumeration value="textfield"/>
89                                 <xsd:enumeration value="combobox"/>
90                                 <xsd:enumeration value="checkbox"/>
91                         </xsd:restriction>
92                 </xsd:simpleType>
93         </xsd:element>
94         <xsd:element name="tag" type="regexD"/>
95         <xsd:element name="alphabet" type="regexA"/>
96         <xsd:element name="default" type="xsd:string"/>
97         <xsd:element name="unset" type="xsd:string"/>
98         <xsd:element name="set" type="xsd:string"/>
99         <xsd:element name="autocomplete">
100                 <xsd:complexType mixed="true">
101                         <xsd:sequence>
102                                 <xsd:element ref="backend"/>
103                                 <xsd:element ref="filter"/>
104                                 <xsd:element ref="attribute"/>
105                                 <xsd:element ref="frequency" minOccurs="0" maxOccurs="unbounded"/>
106                                 <xsd:element ref="characters" minOccurs="0" maxOccurs="unbounded"/>
107                                 <xsd:element ref="base" minOccurs="0"/>
108                                 <xsd:element ref="scope" minOccurs="0"/>
109                                 <xsd:element ref="category" minOccurs="0" maxOccurs="unbounded"/>
110                                 <xsd:element ref="objectbase" minOccurs="0" maxOccurs="unbounded"/>
111                                 <xsd:element ref="key" minOccurs="0"/>
112                         </xsd:sequence>
113                 </xsd:complexType>
114         </xsd:element>
115         <xsd:element name="frequency" type="xsd:float"/>
116         <xsd:element name="characters" type="xsd:int"/>
117         <xsd:element name="base" type="xsd:string"/>
118         <xsd:element name="objectbase" type="xsd:string"/>
119         <xsd:element name="value">
120                 <xsd:complexType mixed="true">
121                         <xsd:all>
122                                 <xsd:element ref="key" minOccurs="1"/>
123                                 <xsd:element ref="label" minOccurs="1"/>
124                         </xsd:all>
125                 </xsd:complexType>
126         </xsd:element>
127         <xsd:element name="key" type="xsd:string"/>
128         <xsd:element name="label" type="xsd:string"/>
129 </xsd:schema>