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>