1 <?xml version="1.0" encoding="UTF-8"?>
2 <xsd:schema elementFormDefault="qualified" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
3 <!-- general declarations multiple times used in this document-->
4 <xsd:element name="label" type="regexB"/>
5 <xsd:simpleType name="regexB">
6 <xsd:restriction base="xsd:string">
7 <xsd:pattern value="([a-zA-Z0-9/. _-])+"/>
8 </xsd:restriction>
9 </xsd:simpleType>
10 <xsd:simpleType name="regexC">
11 <xsd:restriction base="xsd:string">
12 <xsd:pattern value="([a-zA-Z0-9])+"/>
13 </xsd:restriction>
14 </xsd:simpleType>
15 <xsd:simpleType name="regexE">
16 <xsd:restriction base="xsd:string">
17 <xsd:pattern value="(!)?([a-zA-Z0-9])+"/>
18 </xsd:restriction>
19 </xsd:simpleType>
20 <xsd:simpleType name="regexF">
21 <xsd:restriction base="xsd:string">
22 <xsd:pattern value="([0-9|px%;rlc])+"/>
23 </xsd:restriction>
24 </xsd:simpleType>
25 <xsd:simpleType name="regexType">
26 <xsd:restriction base="xsd:string">
27 <xsd:pattern value="sub|entry|snapshot|copypaste|separator|exporter|daemon"/>
28 </xsd:restriction>
29 </xsd:simpleType>
30 <xsd:simpleType name="regexAcl">
31 <xsd:restriction base="xsd:string">
32 <xsd:pattern value="(([a-zA-Z0-9])+)?(/([a-zA-Z0-9])+)?(\[([cdrwm])+\])?"/>
33 </xsd:restriction>
34 </xsd:simpleType>
36 <!-- first element of xml tree -->
37 <xsd:element name="list">
38 <xsd:complexType>
39 <xsd:sequence>
40 <xsd:element ref="definition"/>
41 <xsd:element ref="table"/>
42 <xsd:element ref="actionmenu" minOccurs="0"/>
43 <xsd:element ref="actiontriggers" minOccurs="0"/>
44 </xsd:sequence>
45 </xsd:complexType>
46 </xsd:element>
47 <xsd:element name="definition">
48 <xsd:complexType mixed="true">
49 <xsd:sequence>
50 <xsd:element name="departmentBrowser" type="xsd:boolean" minOccurs="0" default="true"/>
51 <xsd:element name="departmentRootVisible" type="xsd:boolean" minOccurs="0" default="true"/>
52 <xsd:element name="baseMode" type="xsd:boolean" minOccurs="0"/>
53 <xsd:element name="multiSelect" type="xsd:boolean" minOccurs="0"/>
54 <xsd:element name="template" type="regexB"/>
55 <xsd:element name="module" type="regexC"/>
56 <xsd:element ref="label"/>
57 <xsd:element name="defaultSortColumn" type="xsd:integer" minOccurs="0" maxOccurs="1" default="1"/>
58 <xsd:element ref="objectType" maxOccurs="unbounded"/>
59 </xsd:sequence>
60 </xsd:complexType>
61 </xsd:element>
62 <xsd:element name="objectType">
63 <xsd:complexType mixed="true">
64 <xsd:sequence>
65 <xsd:element ref="label"/>
66 <xsd:element name="objectClass" type="regexE" maxOccurs="unbounded"/>
67 <xsd:element name="category" type="regexB"/>
68 <xsd:element name="class" type="regexC"/>
69 <xsd:element name="image" type="regexB"/>
70 </xsd:sequence>
71 </xsd:complexType>
72 </xsd:element>
73 <xsd:element name="table">
74 <xsd:complexType mixed="true">
75 <xsd:sequence>
76 <xsd:element name="layout" type="regexF"/>
77 <xsd:element ref="department" minOccurs="0" maxOccurs="unbounded"/>
78 <xsd:element ref="column" maxOccurs="unbounded"/>
79 </xsd:sequence>
80 </xsd:complexType>
81 </xsd:element>
82 <xsd:element name="department">
83 <xsd:complexType mixed="true">
84 <xsd:sequence>
85 <xsd:element name="value" type="xsd:string"/>
86 <xsd:element name="span" type="xsd:integer" minOccurs="0"/>
87 </xsd:sequence>
88 </xsd:complexType>
89 </xsd:element>
90 <xsd:element name="column">
91 <xsd:complexType mixed="true">
92 <xsd:sequence>
93 <xsd:element ref="label"/>
94 <xsd:element name="value" type="xsd:string"/>
95 <xsd:element name="sortAttribute" type="regexC" minOccurs="0"/>
96 <xsd:element name="sortType" type="regexSortType" minOccurs="0"/>
97 <xsd:element name="export" type="xsd:boolean" minOccurs="0" default="true"/>
98 </xsd:sequence>
99 </xsd:complexType>
100 </xsd:element>
101 <xsd:simpleType name="regexSortType">
102 <xsd:restriction base="xsd:string">
103 <xsd:pattern value="int|string|date"/>
104 </xsd:restriction>
105 </xsd:simpleType>
106 <xsd:element name="export" type="xsd:string"/><!--
108 actionmenu -->
109 <xsd:element name="actionmenu">
110 <xsd:complexType>
111 <xsd:choice maxOccurs="unbounded" minOccurs="0">
112 <xsd:element ref="action"/>
113 </xsd:choice>
114 </xsd:complexType>
115 </xsd:element>
116 <xsd:element name="action">
117 <xsd:complexType mixed="true">
118 <xsd:choice maxOccurs="unbounded" minOccurs="0">
119 <xsd:element name="type" type="regexType"/>
120 <xsd:element name="label" type="xsd:string"/>
121 <xsd:element name="image" minOccurs="0"/>
122 <xsd:element name="name" type="xsd:string" minOccurs="0"/>
123 <xsd:element name="acl" type="regexAcl" minOccurs="0"/>
124 <xsd:element ref="objectclass" minOccurs="0"/>
125 <xsd:element ref="action"/>
126 </xsd:choice>
127 </xsd:complexType>
128 </xsd:element>
129 <xsd:element name="objectclass" type="xsd:string"/><!--
131 actiontriggers -->
132 <xsd:element name="actiontriggers">
133 <xsd:complexType>
134 <xsd:choice maxOccurs="unbounded" minOccurs="0">
135 <xsd:element ref="action"/>
136 </xsd:choice>
137 <xsd:attribute name="snapshot" type="xsd:boolean" use="required"/>
138 <xsd:attribute name="copypaste" type="xsd:boolean" use="required"/>
139 </xsd:complexType>
140 </xsd:element>
141 </xsd:schema>