Update ooo320-m1
[ooovba.git] / officecfg / registry / component-schema.xsd
blobcc3c18a16c3d8e903c9ff605c0e92132cc44d7aa
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- edited with XML Spy v4.3 U (http://www.xmlspy.com) by Dirk Grobler (OpenOffice) -->
3 <xs:schema targetNamespace="http://openoffice.org/2001/registry" xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified" attributeFormDefault="qualified">
4 <xs:annotation>
5 <xs:documentation>specifies the document format for OOo configuration component schemata.</xs:documentation>
6 </xs:annotation>
7 <xs:attribute name="extensible" type="xs:boolean" use="optional" default="false">
8 <xs:annotation>
9 <xs:documentation>determines, whether a node has an extensible list of attributes or fixed list of attributes.</xs:documentation>
10 </xs:annotation>
11 </xs:attribute>
12 <xs:attribute name="localized" type="xs:boolean" use="optional" default="false">
13 <xs:annotation>
14 <xs:documentation>specifies, whether an attribute has or might have different values for different locales. </xs:documentation>
15 </xs:annotation>
16 </xs:attribute>
17 <xs:attribute name="nillable" type="xs:boolean" use="optional" default="true">
18 <xs:annotation>
19 <xs:documentation>specifies, whether it is permissible to have a 'nil' i.e., missing, node content. The default for 'nillable' is 'true'.
20 If a non-optional (nillable = 'false') has no default value (given in the component schema) it must be
21 explicitly specified for each user.</xs:documentation>
22 </xs:annotation>
23 </xs:attribute>
24 <xs:complexType name="prop">
25 <xs:annotation>
26 <xs:documentation>redefines the property type
27 by adding documentation and type constraint elements.</xs:documentation>
28 </xs:annotation>
29 <xs:complexContent>
30 <xs:extension base="oor:basic-prop">
31 <xs:sequence>
32 <xs:element name="info" type="oor:info" minOccurs="0"/>
33 <xs:element name="constraints" minOccurs="0">
34 <xs:complexType>
35 <xs:sequence>
36 <xs:element name="enumeration" type="oor:constraint" minOccurs="0" maxOccurs="unbounded"/>
37 <xs:element name="length" type="oor:constraint" minOccurs="0"/>
38 <xs:element name="minLength" type="oor:constraint" minOccurs="0"/>
39 <xs:element name="maxLength" type="oor:constraint" minOccurs="0"/>
40 <xs:element name="minInclusive" type="oor:constraint" minOccurs="0"/>
41 <xs:element name="maxInclusive" type="oor:constraint" minOccurs="0"/>
42 <xs:element name="minExclusive" type="oor:constraint" minOccurs="0"/>
43 <xs:element name="maxExclusive" type="oor:constraint" minOccurs="0"/>
44 <xs:element name="whiteSpace" type="oor:constraint" minOccurs="0"/>
45 </xs:sequence>
46 </xs:complexType>
47 </xs:element>
48 <xs:element name="value" type="oor:value" minOccurs="0"/>
49 </xs:sequence>
50 <xs:attribute ref="oor:localized"/>
51 <xs:attribute ref="oor:nillable"/>
52 <xs:attribute ref="oor:type" use="required"/>
53 </xs:extension>
54 </xs:complexContent>
55 </xs:complexType>
56 <xs:complexType name="group">
57 <xs:annotation>
58 <xs:documentation>type definition for group nodes</xs:documentation>
59 </xs:annotation>
60 <xs:complexContent>
61 <xs:extension base="oor:basic-node">
62 <xs:sequence>
63 <xs:element name="info" type="oor:info" minOccurs="0"/>
64 <xs:choice minOccurs="0" maxOccurs="unbounded">
65 <xs:element name="prop" type="oor:prop" />
66 <xs:element name="group" type="oor:group"/>
67 <xs:element name="set" type="oor:set"/>
68 <xs:element name="node-ref" type="oor:node-ref"/>
69 </xs:choice>
70 </xs:sequence>
71 <xs:attribute ref="oor:extensible"/>
72 </xs:extension>
73 </xs:complexContent>
74 </xs:complexType>
75 <xs:complexType name="set">
76 <xs:annotation>
77 <xs:documentation>type definition for set nodes</xs:documentation>
78 </xs:annotation>
79 <xs:complexContent>
80 <xs:extension base="oor:basic-node">
81 <xs:sequence>
82 <xs:element name="info" type="oor:info" minOccurs="0"/>
83 <xs:element name="item" minOccurs="0" maxOccurs="unbounded">
84 <xs:complexType>
85 <xs:attributeGroup ref="oor:node-type-info" />
86 </xs:complexType>
87 </xs:element>
88 </xs:sequence>
89 <xs:attribute ref="oor:extensible"/>
90 <xs:attributeGroup ref="oor:node-type-info" />
91 </xs:extension>
92 </xs:complexContent>
93 </xs:complexType>
94 <xs:complexType name="node-ref">
95 <xs:annotation>
96 <xs:documentation>allows to define node references. A node references points to an existing templated definition. This definition will be expanded at runtime.</xs:documentation>
97 </xs:annotation>
98 <xs:sequence>
99 <xs:element name="info" type="oor:info" minOccurs="0"/>
100 </xs:sequence>
101 <xs:attribute ref="oor:name" use="required"/>
102 <xs:attributeGroup ref="oor:node-type-info" />
103 </xs:complexType>
104 <xs:complexType name="constraint">
105 <xs:annotation>
106 <xs:documentation>basic type for constraints, which can be applied for property elements.</xs:documentation>
107 </xs:annotation>
108 <xs:sequence>
109 <xs:element name="info" type="oor:info" minOccurs="0"/>
110 </xs:sequence>
111 <xs:attribute name="value" type="xs:anySimpleType" use="required"/>
112 </xs:complexType>
113 <xs:complexType name="info">
114 <xs:annotation>
115 <xs:documentation>type for providing human readable information. Can be attached to any kind of component schema element.</xs:documentation>
116 </xs:annotation>
117 <xs:sequence>
118 <xs:element name="deprecated" type="xs:string" minOccurs="0">
119 <xs:annotation>
120 <xs:documentation>identifies an entry as deprecated. Can be assiciated with an explanation e.g. since when the entry is deprecated.</xs:documentation>
121 </xs:annotation>
122 </xs:element>
123 <xs:element name="author" type="xs:string" minOccurs="0" maxOccurs="unbounded">
124 <xs:annotation>
125 <xs:documentation>author(s) of the configuration entry.</xs:documentation>
126 </xs:annotation>
127 </xs:element>
128 <xs:element name="desc" minOccurs="0" maxOccurs="unbounded">
129 <xs:complexType>
130 <xs:annotation>
131 <xs:documentation>provide a human
132 readable documentation for a schema element.</xs:documentation>
133 </xs:annotation>
134 <xs:simpleContent>
135 <xs:extension base="xs:string">
136 <xs:attribute ref="xml:lang"/>
137 </xs:extension>
138 </xs:simpleContent>
139 </xs:complexType>
140 </xs:element>
141 <xs:element name="label" minOccurs="0" maxOccurs="unbounded">
142 <xs:complexType>
143 <xs:annotation>
144 <xs:documentation>describes a title or label,
145 which can be reused in a console.</xs:documentation>
146 </xs:annotation>
147 <xs:simpleContent>
148 <xs:extension base="xs:string">
149 <xs:attribute ref="xml:lang"/>
150 </xs:extension>
151 </xs:simpleContent>
152 </xs:complexType>
153 </xs:element>
154 </xs:sequence>
155 </xs:complexType>
156 <xs:element name="component-schema">
157 <xs:annotation>
158 <xs:documentation>Root element, which encompasses the schema specification</xs:documentation>
159 </xs:annotation>
160 <xs:complexType>
161 <xs:sequence>
162 <xs:element name="info" type="oor:info" minOccurs="0"/>
163 <xs:element name="import" minOccurs="0" maxOccurs="unbounded">
164 <xs:complexType>
165 <xs:attribute ref="oor:component" use="required"/>
166 </xs:complexType>
167 </xs:element>
168 <xs:element name="uses" minOccurs="0" maxOccurs="unbounded">
169 <xs:complexType>
170 <xs:attribute ref="oor:component" use="required"/>
171 </xs:complexType>
172 </xs:element>
173 <xs:element name="templates" minOccurs="0">
174 <xs:complexType>
175 <xs:sequence>
176 <xs:choice minOccurs="0" maxOccurs="unbounded">
177 <xs:element name="group" type="oor:group">
178 <xs:unique name="groupMember">
179 <xs:selector xpath="group|set|node-ref|prop"/>
180 <xs:field xpath="@oor:name"/>
181 </xs:unique>
182 </xs:element>
183 <xs:element name="set" type="oor:set"/>
184 </xs:choice>
185 </xs:sequence>
186 </xs:complexType>
187 <xs:unique name="templatesMember">
188 <xs:selector xpath="oor:group|oor:set"/>
189 <xs:field xpath="@oor:name"/>
190 </xs:unique>
191 </xs:element>
192 <xs:element name="component">
193 <xs:complexType>
194 <xs:sequence>
195 <xs:choice minOccurs="1" maxOccurs="unbounded">
196 <xs:element name="prop" type="oor:prop"/>
197 <xs:element name="node-ref" type="oor:node-ref"/>
198 <xs:element name="group" type="oor:group">
199 <xs:unique name="groupMember1">
200 <xs:selector xpath="oor:group|oor:set|oor:node-ref|oor:prop"/>
201 <xs:field xpath="@oor:name"/>
202 </xs:unique>
203 </xs:element>
204 <xs:element name="set" type="oor:set"/>
205 </xs:choice>
206 </xs:sequence>
207 </xs:complexType>
208 <xs:unique name="schemaMember">
209 <xs:selector xpath="oor:group|oor:set|oor:node-ref|oor:prop"/>
210 <xs:field xpath="@oor:name"/>
211 </xs:unique>
212 </xs:element>
213 </xs:sequence>
214 <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
215 <xs:attribute ref="oor:package"/>
216 <xs:attribute name="version" type="xs:string" use="optional">
217 <xs:annotation>
218 <xs:documentation>identifies the version of the component. The version number is build of major.minor.micro</xs:documentation>
219 </xs:annotation>
220 </xs:attribute>
221 <xs:attribute ref="xml:lang" use="optional"/>
222 </xs:complexType>
223 </xs:element>
224 </xs:schema>