XML Configuration File Schema
XML Configuration file is validated against the schema file IoC.Configuration.Schema.22B4BA50-3429-48FE-8059-B9C1F855A639.xsd below, when the file is loaded by IoC.Configuration.
This file can be found also in folder “IoC.Configuration.Content”, under the folder where Nuget package IoC.Configuration is downloaded (see the screenshot below), or can also be downloaded from IoC.Configuration.Schema.22B4BA50-3429-48FE-8059-B9C1F855A639.xsd or from oroptimizer.com/IoC.Configuration/V2/IoC.Configuration.Schema.22B4BA50-3429-48FE-8059-B9C1F855A639.xsd.
To use Visual Studio code completion based on this schema, right click “Properties” on the XML configuration file, and select the schema in “Schemas” text box in properties tab (see the screenshot below).
Alternatively, reference the schema in xmlConfiguration element as displayed below:
1<iocConfiguration
2 xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'
3 xsi:noNamespaceSchemaLocation="http://oroptimizer.com/IoC.Configuration/V2/IoC.Configuration.Schema.22B4BA50-3429-48FE-8059-B9C1F855A639.xsd">
4 <!--...-->
5<iocConfiguration>
XML configuration file schema:
1<?xml version="1.0" encoding="utf-8"?>
2<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
3 xmlns:xs="http://www.w3.org/2001/XMLSchema">
4 <xs:simpleType name="scopeValues">
5 <xs:restriction base="xs:string">
6 <!--The same object will be used for all service resolutions -->
7 <xs:enumeration value="singleton"/>
8
9 <!--New object will be created per request-->
10 <xs:enumeration value="transient"/>
11
12 <!--The same object will be created per scope lifetime., however different objects will be created in different lifetime scopes.-->
13 <xs:enumeration value="scopeLifetime"/>
14 </xs:restriction>
15 </xs:simpleType>
16
17 <xs:simpleType name="collectionTypes">
18 <xs:restriction base="xs:string">
19 <xs:enumeration value="enumerable"/>
20 <xs:enumeration value="list"/>
21 <xs:enumeration value="readOnlyList"/>
22 <xs:enumeration value="array"/>
23 </xs:restriction>
24 </xs:simpleType>
25
26 <xs:simpleType name="DateTimeType">
27 <xs:restriction base="xs:string">
28 <xs:pattern
29 value="[0-9]{4}-(0[1-9]|1(0|1|2))-(0[1-9]|[1-2][0-9]|3[0-1]) ([0-1][0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9]).([0-9]{3})"/>
30 </xs:restriction>
31 </xs:simpleType>
32
33 <xs:complexType name="doubleType">
34 <xs:attribute name="value" use="required" type="xs:double"/>
35 </xs:complexType>
36
37 <xs:complexType name="namedDoubleType">
38 <xs:complexContent>
39 <xs:extension base="doubleType">
40 <xs:attribute name="name" use="required" type="xs:string"/>
41 </xs:extension>
42 </xs:complexContent>
43 </xs:complexType>
44
45 <xs:complexType name="byteType">
46 <xs:attribute name="value" use="required" type="xs:byte"/>
47 </xs:complexType>
48
49 <xs:complexType name="namedByteType">
50 <xs:complexContent>
51 <xs:extension base="byteType">
52 <xs:attribute name="name" use="required" type="xs:string"/>
53 </xs:extension>
54 </xs:complexContent>
55 </xs:complexType>
56
57 <xs:complexType name="int16Type">
58 <xs:attribute name="value" use="required" type="xs:short"/>
59 </xs:complexType>
60
61 <xs:complexType name="namedInt16Type">
62 <xs:complexContent>
63 <xs:extension base="int16Type">
64 <xs:attribute name="name" use="required" type="xs:string"/>
65 </xs:extension>
66 </xs:complexContent>
67 </xs:complexType>
68
69 <xs:complexType name="int32Type">
70 <xs:attribute name="value" use="required" type="xs:int"/>
71 </xs:complexType>
72
73 <xs:complexType name="namedInt32Type">
74 <xs:complexContent>
75 <xs:extension base="int32Type">
76 <xs:attribute name="name" use="required" type="xs:string"/>
77 </xs:extension>
78 </xs:complexContent>
79 </xs:complexType>
80
81 <xs:complexType name="int64Type">
82 <xs:attribute name="value" use="required" type="xs:long"/>
83 </xs:complexType>
84
85 <xs:complexType name="namedInt64Type">
86 <xs:complexContent>
87 <xs:extension base="int64Type">
88 <xs:attribute name="name" use="required" type="xs:string"/>
89 </xs:extension>
90 </xs:complexContent>
91 </xs:complexType>
92
93 <xs:complexType name="booleanType">
94 <xs:attribute name="value" use="required" type="xs:boolean"/>
95 </xs:complexType>
96
97 <xs:complexType name="namedBooleanType">
98 <xs:complexContent>
99 <xs:extension base="booleanType">
100 <xs:attribute name="name" use="required" type="xs:string"/>
101 </xs:extension>
102 </xs:complexContent>
103 </xs:complexType>
104
105 <xs:complexType name="datetimeType">
106 <xs:attribute name="value" use="required" type="DateTimeType"/>
107 </xs:complexType>
108
109 <xs:complexType name="namedDatetimeType">
110 <xs:complexContent>
111 <xs:extension base="datetimeType">
112 <xs:attribute name="name" use="required" type="xs:string"/>
113 </xs:extension>
114 </xs:complexContent>
115 </xs:complexType>
116
117 <xs:complexType name="stringType">
118 <xs:attribute name="value" use="required" type="xs:string"/>
119 </xs:complexType>
120
121 <xs:complexType name="namedStringType">
122 <xs:complexContent>
123 <xs:extension base="stringType">
124 <xs:attribute name="name" use="required" type="xs:string"/>
125 </xs:extension>
126 </xs:complexContent>
127 </xs:complexType>
128
129 <xs:complexType name="settingValueType">
130 <xs:attribute name="settingName" use="required" type="xs:string"/>
131 </xs:complexType>
132
133 <xs:complexType name="namedSettingValueType">
134 <xs:complexContent>
135 <xs:extension base="settingValueType">
136 <xs:attribute name="name" use="required" type="xs:string"/>
137 </xs:extension>
138 </xs:complexContent>
139 </xs:complexType>
140
141 <xs:complexType name="objectType">
142 <xs:attribute name="type" use="optional" type="xs:string"/>
143 <xs:attribute name="assembly" use="optional" type="xs:string"/>
144 <xs:attribute name="typeRef" use="optional" type="xs:string"/>
145 <xs:attribute name="value" use="required" type="xs:string"/>
146 </xs:complexType>
147
148 <xs:complexType name="namedObjectType">
149 <xs:complexContent>
150 <xs:extension base="objectType">
151 <xs:attribute name="name" use="required" type="xs:string"/>
152 </xs:extension>
153 </xs:complexContent>
154 </xs:complexType>
155
156 <xs:complexType name="classMemberType">
157 <xs:sequence>
158 <xs:element name="parameters" type="namedValuesType" minOccurs="0" maxOccurs="1"/>
159 </xs:sequence>
160 <xs:attribute name="class" use="optional" type="xs:string"/>
161 <xs:attribute name="assembly" use="optional" type="xs:string"/>
162 <xs:attribute name="classRef" use="optional" type="xs:string"/>
163 <xs:attribute name="memberName" use="required" type="xs:string"/>
164 </xs:complexType>
165
166 <xs:complexType name="namedClassMemberType">
167 <xs:complexContent>
168 <xs:extension base="classMemberType">
169 <xs:attribute name="name" use="required" type="xs:string"/>
170 </xs:extension>
171 </xs:complexContent>
172 </xs:complexType>
173
174 <xs:complexType name="classMemberTypeWithDi">
175 <xs:sequence>
176 <xs:element name="parameters" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
177 </xs:sequence>
178 <xs:attribute name="class" use="optional" type="xs:string"/>
179 <xs:attribute name="assembly" use="optional" type="xs:string"/>
180 <xs:attribute name="classRef" use="optional" type="xs:string"/>
181 <xs:attribute name="memberName" use="required" type="xs:string"/>
182 </xs:complexType>
183
184 <xs:complexType name="namedClassMemberTypeWithDi">
185 <xs:complexContent>
186 <xs:extension base="classMemberTypeWithDi">
187 <xs:attribute name="name" use="required" type="xs:string"/>
188 </xs:extension>
189 </xs:complexContent>
190 </xs:complexType>
191
192 <xs:complexType name="injectedObjectType">
193 <xs:attribute name="type" type="xs:string" use="optional"/>
194 <xs:attribute name="assembly" type="xs:string" use="optional"/>
195 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
196 </xs:complexType>
197
198 <xs:complexType name="namedInjectedObjectType">
199 <xs:complexContent>
200 <xs:extension base="injectedObjectType">
201 <xs:attribute name="name" use="required" type="xs:string"/>
202 </xs:extension>
203 </xs:complexContent>
204 </xs:complexType>
205
206 <xs:complexType name="namedProvidedValueType">
207 <xs:attribute name="name" use="required" type="xs:string"/>
208 <xs:attribute name="type" type="xs:string" use="optional"/>
209 <xs:attribute name="assembly" type="xs:string" use="optional"/>
210 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
211 </xs:complexType>
212
213 <xs:complexType name="parameterValueType">
214 <xs:attribute name="paramName" use="required" type="xs:string"/>
215 </xs:complexType>
216
217 <xs:complexType name="namedParameterValueType">
218 <xs:complexContent>
219 <xs:extension base="parameterValueType">
220 <xs:attribute name="name" use="required" type="xs:string"/>
221 </xs:extension>
222 </xs:complexContent>
223 </xs:complexType>
224
225 <xs:complexType name="constructedValueType">
226 <xs:sequence>
227 <xs:element name="parameters" type="namedValuesType" minOccurs="0" maxOccurs="1"/>
228 <xs:element name="injectedProperties" type="namedValuesType" minOccurs="0" maxOccurs="1"/>
229 </xs:sequence>
230 <xs:attribute name="type" type="xs:string" use="optional"/>
231 <xs:attribute name="assembly" type="xs:string" use="optional"/>
232 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
233 </xs:complexType>
234
235 <xs:complexType name="namedConstructedValueType">
236 <xs:complexContent>
237 <xs:extension base="constructedValueType">
238 <xs:attribute name="name" use="required" type="xs:string"/>
239 </xs:extension>
240 </xs:complexContent>
241 </xs:complexType>
242
243 <xs:complexType name="constructedValueTypeWithDi">
244 <xs:sequence>
245 <xs:element name="parameters" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
246 <xs:element name="injectedProperties" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
247 </xs:sequence>
248 <xs:attribute name="type" type="xs:string" use="optional"/>
249 <xs:attribute name="assembly" type="xs:string" use="optional"/>
250 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
251 </xs:complexType>
252
253 <xs:complexType name="namedConstructedValueTypeWithDi">
254 <xs:complexContent>
255 <xs:extension base="constructedValueTypeWithDi">
256 <xs:attribute name="name" use="required" type="xs:string"/>
257 </xs:extension>
258 </xs:complexContent>
259 </xs:complexType>
260
261 <xs:complexType name="collectionType">
262 <xs:sequence minOccurs="0" maxOccurs="unbounded">
263 <xs:choice>
264 <xs:element name="byte" type="byteType" minOccurs="1" maxOccurs="1"/>
265 <xs:element name="int16" type="int16Type" minOccurs="1" maxOccurs="1"/>
266 <xs:element name="int32" type="int32Type" minOccurs="1" maxOccurs="1"/>
267 <xs:element name="int64" type="int64Type" minOccurs="1" maxOccurs="1"/>
268 <xs:element name="double" type="doubleType" minOccurs="1" maxOccurs="1"/>
269 <xs:element name="boolean" type="booleanType" minOccurs="1" maxOccurs="1"/>
270 <xs:element name="datetime" type="datetimeType" minOccurs="1" maxOccurs="1"/>
271 <xs:element name="string" type="stringType" minOccurs="1" maxOccurs="1"/>
272 <xs:element name="object" type="objectType" minOccurs="1" maxOccurs="1"/>
273 <xs:element name="classMember" type="classMemberType" minOccurs="1" maxOccurs="1"/>
274 <xs:element name="constructedValue" type="constructedValueType" minOccurs="1" maxOccurs="1"/>
275 <xs:element name="collection" type="collectionType" minOccurs="1" maxOccurs="1"/>
276 </xs:choice>
277 </xs:sequence>
278 </xs:complexType>
279
280 <xs:complexType name="namedCollectionType">
281 <xs:complexContent>
282 <xs:extension base="collectionType">
283 <xs:attribute name="name" type="xs:string" use="required"/>
284 <xs:attribute name="collectionType" type="collectionTypes" use="required"/>
285 <xs:attribute name="itemType" type="xs:string" use="optional"/>
286 <xs:attribute name="itemTypeRef" type="xs:string" use="optional"/>
287 <xs:attribute name="itemTypeAssembly" type="xs:string" use="optional"/>
288 </xs:extension>
289 </xs:complexContent>
290 </xs:complexType>
291
292 <xs:complexType name="collectionTypeWithDi">
293 <xs:sequence minOccurs="0" maxOccurs="unbounded">
294 <xs:choice>
295 <xs:element name="byte" type="byteType"/>
296 <xs:element name="int16" type="int16Type"/>
297 <xs:element name="int32" type="int32Type"/>
298 <xs:element name="int64" type="int64Type"/>
299 <xs:element name="double" type="doubleType"/>
300 <xs:element name="boolean" type="booleanType"/>
301 <xs:element name="datetime" type="datetimeType"/>
302 <xs:element name="string" type="stringType"/>
303 <xs:element name="object" type="objectType"/>
304 <xs:element name="classMember" type="classMemberTypeWithDi"/>
305 <xs:element name="settingValue" type="settingValueType"/>
306 <xs:element name="constructedValue" type="constructedValueTypeWithDi"/>
307 <xs:element name="injectedObject" type="injectedObjectType"/>
308 <xs:element name="collection" type="collectionTypeWithDi"/>
309 <xs:element name="parameterValue" type="parameterValueType"/>
310 </xs:choice>
311 </xs:sequence>
312 </xs:complexType>
313
314 <xs:complexType name="namedCollectionTypeWithDi">
315 <xs:complexContent>
316 <xs:extension base="collectionTypeWithDi">
317 <xs:attribute name="name" use="required" type="xs:string"/>
318 <xs:attribute name="collectionType" type="collectionTypes" use="required"/>
319 <xs:attribute name="itemType" type="xs:string" use="optional"/>
320 <xs:attribute name="itemTypeRef" type="xs:string" use="optional"/>
321 <xs:attribute name="itemTypeAssembly" type="xs:string" use="optional"/>
322 </xs:extension>
323 </xs:complexContent>
324 </xs:complexType>
325
326 <xs:complexType name="defaultValuesType">
327 <xs:sequence minOccurs="0" maxOccurs="unbounded">
328 <xs:choice>
329 <xs:element name="byte" type="namedByteType" minOccurs="1" maxOccurs="1"/>
330 <xs:element name="int16" type="namedInt16Type" minOccurs="1" maxOccurs="1"/>
331 <xs:element name="int32" type="namedInt32Type" minOccurs="1" maxOccurs="1"/>
332 <xs:element name="int64" type="namedInt64Type" minOccurs="1" maxOccurs="1"/>
333 <xs:element name="double" type="namedDoubleType" minOccurs="1" maxOccurs="1"/>
334 <xs:element name="boolean" type="namedBooleanType" minOccurs="1" maxOccurs="1"/>
335 <xs:element name="datetime" type="namedDatetimeType" minOccurs="1" maxOccurs="1"/>
336 <xs:element name="string" type="namedStringType" minOccurs="1" maxOccurs="1"/>
337 <xs:element name="constructedValue" type="namedConstructedValueType" minOccurs="1" maxOccurs="1"/>
338 </xs:choice>
339 </xs:sequence>
340 </xs:complexType>
341
342 <xs:complexType name="namedValuesType">
343 <xs:sequence minOccurs="0" maxOccurs="unbounded">
344 <xs:choice>
345 <xs:element name="byte" type="namedByteType" minOccurs="1" maxOccurs="1"/>
346 <xs:element name="int16" type="namedInt16Type" minOccurs="1" maxOccurs="1"/>
347 <xs:element name="int32" type="namedInt32Type" minOccurs="1" maxOccurs="1"/>
348 <xs:element name="int64" type="namedInt64Type" minOccurs="1" maxOccurs="1"/>
349 <xs:element name="double" type="namedDoubleType" minOccurs="1" maxOccurs="1"/>
350 <xs:element name="boolean" type="namedBooleanType" minOccurs="1" maxOccurs="1"/>
351 <xs:element name="datetime" type="namedDatetimeType" minOccurs="1" maxOccurs="1"/>
352 <xs:element name="string" type="namedStringType" minOccurs="1" maxOccurs="1"/>
353 <xs:element name="object" type="namedObjectType" minOccurs="1" maxOccurs="1"/>
354 <xs:element name="constructedValue" type="namedConstructedValueType" minOccurs="1" maxOccurs="1"/>
355 <xs:element name="collection" type="namedCollectionType" minOccurs="1" maxOccurs="1"/>
356 <xs:element name="classMember" type="namedClassMemberType" minOccurs="1" maxOccurs="1"/>
357 <xs:element name="providedValue" type="namedProvidedValueType" minOccurs="1" maxOccurs="1"/>
358 </xs:choice>
359 </xs:sequence>
360 </xs:complexType>
361
362 <xs:complexType name="settingValuesType">
363 <xs:sequence minOccurs="0" maxOccurs="unbounded">
364 <xs:choice>
365 <xs:element name="byte" type="namedByteType" minOccurs="1" maxOccurs="1"/>
366 <xs:element name="int16" type="namedInt16Type" minOccurs="1" maxOccurs="1"/>
367 <xs:element name="int32" type="namedInt32Type" minOccurs="1" maxOccurs="1"/>
368 <xs:element name="int64" type="namedInt64Type" minOccurs="1" maxOccurs="1"/>
369 <xs:element name="double" type="namedDoubleType" minOccurs="1" maxOccurs="1"/>
370 <xs:element name="boolean" type="namedBooleanType" minOccurs="1" maxOccurs="1"/>
371 <xs:element name="datetime" type="namedDatetimeType" minOccurs="1" maxOccurs="1"/>
372 <xs:element name="string" type="namedStringType" minOccurs="1" maxOccurs="1"/>
373 <xs:element name="object" type="namedObjectType" minOccurs="1" maxOccurs="1"/>
374 <xs:element name="constructedValue" type="namedConstructedValueType" minOccurs="1" maxOccurs="1"/>
375 <xs:element name="providedValue" type="namedProvidedValueType" minOccurs="1" maxOccurs="1"/>
376 </xs:choice>
377 </xs:sequence>
378 </xs:complexType>
379
380 <xs:complexType name="namedValuesTypeWithDi">
381 <xs:sequence minOccurs="0" maxOccurs="unbounded">
382 <xs:choice>
383 <xs:element name="byte" type="namedByteType" minOccurs="1" maxOccurs="1"/>
384 <xs:element name="int16" type="namedInt16Type" minOccurs="1" maxOccurs="1"/>
385 <xs:element name="int32" type="namedInt32Type" minOccurs="1" maxOccurs="1"/>
386 <xs:element name="int64" type="namedInt64Type" minOccurs="1" maxOccurs="1"/>
387 <xs:element name="double" type="namedDoubleType" minOccurs="1" maxOccurs="1"/>
388 <xs:element name="boolean" type="namedBooleanType" minOccurs="1" maxOccurs="1"/>
389 <xs:element name="datetime" type="namedDatetimeType" minOccurs="1" maxOccurs="1"/>
390 <xs:element name="string" type="namedStringType" minOccurs="1" maxOccurs="1"/>
391 <xs:element name="object" type="namedObjectType" minOccurs="1" maxOccurs="1"/>
392 <xs:element name="settingValue" type="namedSettingValueType" minOccurs="1" maxOccurs="1"/>
393 <xs:element name="constructedValue" type="namedConstructedValueTypeWithDi" minOccurs="1" maxOccurs="1"/>
394 <xs:element name="injectedObject" type="namedInjectedObjectType" minOccurs="1" maxOccurs="1"/>
395 <xs:element name="collection" type="namedCollectionTypeWithDi" minOccurs="1" maxOccurs="1"/>
396 <xs:element name="classMember" type="namedClassMemberTypeWithDi" minOccurs="1" maxOccurs="1"/>
397 <xs:element name="parameterValue" type="namedParameterValueType" minOccurs="1" maxOccurs="1"/>
398 <xs:element name="providedValue" type="namedProvidedValueType" minOccurs="1" maxOccurs="1"/>
399 </xs:choice>
400 </xs:sequence>
401 </xs:complexType>
402
403 <xs:element name="appDataDir">
404 <xs:complexType>
405 <xs:attribute name="path" type="xs:string" use="required"/>
406 </xs:complexType>
407 </xs:element>
408
409 <xs:element name="plugins">
410 <xs:complexType>
411 <xs:sequence>
412 <xs:element name="plugin" minOccurs="0" maxOccurs="unbounded">
413 <xs:complexType>
414 <xs:attribute name="name" type="xs:string" use="required"/>
415 <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/>
416 </xs:complexType>
417 </xs:element>
418 </xs:sequence>
419 <xs:attribute name="pluginsDirPath" type="xs:string" use="optional"/>
420 </xs:complexType>
421 </xs:element>
422
423 <xs:element name="additionalAssemblyProbingPaths">
424 <xs:complexType>
425 <xs:sequence>
426 <xs:element name="probingPath" minOccurs="0" maxOccurs="unbounded">
427 <xs:complexType>
428 <xs:attribute name="path" type="xs:string" use="required"/>
429 </xs:complexType>
430 </xs:element>
431 </xs:sequence>
432 </xs:complexType>
433 </xs:element>
434
435 <xs:element name="assemblies">
436 <xs:complexType>
437 <xs:sequence>
438 <xs:element name="assembly" minOccurs="0" maxOccurs="unbounded">
439 <xs:complexType>
440 <xs:attribute name="name" type="xs:string" use="required"/>
441 <xs:attribute name="alias" type="xs:string" use="required"/>
442 <xs:attribute name="plugin" type="xs:string" use="optional"/>
443 <!--loadAlways is deprecated and will be deleted in the future.
444 All assemblies in configuration file are now added as references to dynamically generated assembly, however
445 .NET only loads assemblies that are used in referencing assembly-->
446 <xs:attribute name="loadAlways" type="xs:boolean" use="optional" default="false"/>
447 <xs:attribute name="overrideDirectory" type="xs:string" use="optional"/>
448 </xs:complexType>
449 </xs:element>
450 </xs:sequence>
451 </xs:complexType>
452 </xs:element>
453
454 <xs:complexType name="typeDefinition">
455 <xs:sequence minOccurs="0" maxOccurs="1">
456 <xs:element name="genericTypeParameters">
457 <xs:complexType>
458 <xs:sequence minOccurs="1" maxOccurs="unbounded">
459 <xs:element type="typeDefinition" name="typeDefinition"></xs:element>
460 </xs:sequence>
461 </xs:complexType>
462 </xs:element>
463 </xs:sequence>
464 <xs:attribute name="type" type="xs:string" use="required"/>
465 <xs:attribute name="assembly" type="xs:string" use="optional"/>
466 </xs:complexType>
467
468 <xs:complexType name="namedTypeDefinition">
469 <xs:complexContent>
470 <xs:extension base="typeDefinition">
471 <xs:attribute name="alias" type="xs:string" use="required"/>
472 </xs:extension>
473 </xs:complexContent>
474 </xs:complexType>
475
476 <xs:element name="typeDefinitions">
477 <xs:complexType>
478 <xs:sequence minOccurs="0" maxOccurs="unbounded">
479 <xs:element name="typeDefinition" type="namedTypeDefinition"></xs:element>
480 </xs:sequence>
481 </xs:complexType>
482 </xs:element>
483
484 <!--<xs:element name="attributeValueTransformer">
485 <xs:complexType>
486 <xs:sequence>
487 <xs:element name="parameters" type="defaultValuesType" minOccurs="0" maxOccurs="1" />
488 </xs:sequence>
489 <xs:attribute name="type" type="xs:string" use="optional" />
490 <xs:attribute name="assembly" type="xs:string" use="optional" />
491 <xs:attribute name="typeRef" type="xs:string" use="optional" />
492 </xs:complexType>
493 </xs:element>
494
495 <xs:element name="attributeValueTransformers">
496 <xs:complexType>
497 <xs:sequence>
498 <xs:element ref="attributeValueTransformer" minOccurs="0" maxOccurs="unbounded" />
499 </xs:sequence>
500 </xs:complexType>
501 </xs:element>-->
502
503 <xs:element name="parameterSerializer">
504 <xs:complexType>
505 <xs:sequence>
506 <xs:element name="parameters" type="defaultValuesType" minOccurs="0" maxOccurs="1"/>
507 </xs:sequence>
508 <xs:attribute name="type" type="xs:string" use="optional"/>
509 <xs:attribute name="assembly" type="xs:string" use="optional"/>
510 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
511 </xs:complexType>
512 </xs:element>
513
514 <xs:element name="parameterSerializers">
515 <xs:complexType>
516 <xs:sequence>
517 <xs:element name="parameters" type="defaultValuesType" minOccurs="0" maxOccurs="1"/>
518 <xs:element name="serializers">
519 <xs:complexType>
520 <xs:sequence>
521 <xs:element ref="parameterSerializer" minOccurs="0" maxOccurs="unbounded"/>
522 </xs:sequence>
523 </xs:complexType>
524 </xs:element>
525 </xs:sequence>
526 <xs:attribute name="serializerAggregatorType" type="xs:string" use="optional"/>
527 <xs:attribute name="assembly" type="xs:string" use="optional"/>
528 <xs:attribute name="serializerAggregatorTypeRef" type="xs:string" use="optional"/>
529 </xs:complexType>
530 </xs:element>
531
532 <xs:element name="diManager">
533 <xs:complexType>
534 <xs:sequence>
535 <xs:element name="parameters" type="namedValuesType" minOccurs="0" maxOccurs="1"/>
536 </xs:sequence>
537
538 <xs:attribute name="name" type="xs:string" use="required"/>
539 <xs:attribute name="type" type="xs:string" use="optional"/>
540 <xs:attribute name="assembly" type="xs:string" use="optional"/>
541 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
542 </xs:complexType>
543 </xs:element>
544
545 <xs:element name="diManagers">
546 <xs:complexType>
547 <xs:sequence>
548 <xs:element ref="diManager" minOccurs="1" maxOccurs="unbounded"/>
549 </xs:sequence>
550 <xs:attribute name="activeDiManagerName" type="xs:string" use="required"/>
551 </xs:complexType>
552 </xs:element>
553
554 <xs:element name="settings" type="settingValuesType">
555 </xs:element>
556
557 <xs:element name="controllerAssembly">
558 <xs:complexType>
559 <xs:attribute name="assembly" type="xs:string" use="required"/>
560 </xs:complexType>
561 </xs:element>
562
563 <xs:element name="controllerAssemblies">
564 <xs:complexType>
565 <xs:sequence>
566 <xs:element ref="controllerAssembly" minOccurs="0" maxOccurs="unbounded"/>
567 </xs:sequence>
568 </xs:complexType>
569 </xs:element>
570
571 <xs:element name="webApi">
572 <xs:complexType>
573 <xs:sequence>
574 <xs:element ref="controllerAssemblies" minOccurs="0" maxOccurs="1"/>
575 </xs:sequence>
576 </xs:complexType>
577 </xs:element>
578
579 <xs:element name="settingsRequestor">
580 <xs:complexType>
581 <xs:sequence>
582 <xs:element name="parameters" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
583 </xs:sequence>
584 <xs:attribute name="type" type="xs:string" use="optional"/>
585 <xs:attribute name="assembly" type="xs:string" use="optional"/>
586 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
587 </xs:complexType>
588 </xs:element>
589
590 <xs:element name="modules">
591 <xs:complexType>
592 <xs:sequence>
593 <xs:element name="module" minOccurs="0" maxOccurs="unbounded">
594 <xs:complexType>
595 <xs:sequence>
596 <xs:element name="parameters" type="namedValuesType" minOccurs="0" maxOccurs="1"/>
597 </xs:sequence>
598 <xs:attribute name="type" type="xs:string" use="optional"/>
599 <xs:attribute name="assembly" type="xs:string" use="optional"/>
600 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
601 <xs:attribute name="enabled" type="xs:boolean" use="optional" default="true"/>
602 </xs:complexType>
603 </xs:element>
604 </xs:sequence>
605 </xs:complexType>
606 </xs:element>
607
608 <xs:element name="implementation">
609 <xs:complexType>
610 <xs:sequence>
611 <xs:element name="parameters" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
612 <xs:element name="injectedProperties" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
613 </xs:sequence>
614 <xs:attribute name="type" type="xs:string" use="optional"/>
615 <xs:attribute name="assembly" type="xs:string" use="optional"/>
616 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
617 <xs:attribute name="scope" type="scopeValues" use="required"/>
618 </xs:complexType>
619 </xs:element>
620
621 <xs:element name="serviceToProxy">
622 <xs:complexType>
623 <xs:attribute name="type" type="xs:string" use="optional"/>
624 <xs:attribute name="assembly" type="xs:string" use="optional"/>
625 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
626 </xs:complexType>
627 </xs:element>
628
629 <xs:element name="valueImplementation">
630 <xs:complexType>
631 <xs:choice>
632 <xs:element name="collection" type="collectionTypeWithDi"/>
633 <xs:element name="settingValue" type="settingValueType"/>
634 <xs:element name="object" type="objectType" minOccurs="1" maxOccurs="1"/>
635 <xs:element name="classMember" type="classMemberTypeWithDi" minOccurs="1" maxOccurs="1"/>
636 <xs:element name="constructedValue" type="constructedValueTypeWithDi" minOccurs="1" maxOccurs="1"/>
637 </xs:choice>
638 <xs:attribute name="scope" type="scopeValues" use="required"/>
639 </xs:complexType>
640 </xs:element>
641
642 <xs:element name="service">
643 <xs:complexType>
644 <xs:sequence minOccurs="1" maxOccurs="unbounded">
645 <xs:choice>
646 <xs:element ref="implementation"/>
647 <xs:element ref="valueImplementation"/>
648 </xs:choice>
649 </xs:sequence>
650 <xs:attribute name="type" type="xs:string" use="optional"/>
651 <xs:attribute name="assembly" type="xs:string" use="optional"/>
652 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
653 <xs:attribute name="registerIfNotRegistered" type="xs:boolean" default="false" use="optional"/>
654 </xs:complexType>
655 </xs:element>
656
657 <xs:element name="proxyService">
658 <xs:complexType>
659 <xs:sequence minOccurs="1" maxOccurs="1">
660 <xs:element ref="serviceToProxy"/>
661 </xs:sequence>
662 <xs:attribute name="type" type="xs:string" use="optional"/>
663 <xs:attribute name="assembly" type="xs:string" use="optional"/>
664 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
665 <xs:attribute name="registerIfNotRegistered" type="xs:boolean" default="false" use="optional"/>
666 </xs:complexType>
667 </xs:element>
668
669 <xs:element name="selfBoundService">
670 <xs:complexType>
671 <xs:sequence>
672 <xs:element name="parameters" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
673 <xs:element name="injectedProperties" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
674 </xs:sequence>
675 <xs:attribute name="type" type="xs:string" use="optional"/>
676 <xs:attribute name="assembly" type="xs:string" use="optional"/>
677 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
678 <xs:attribute name="scope" type="scopeValues" use="required"/>
679 <xs:attribute name="registerIfNotRegistered" type="xs:boolean" default="false" use="optional"/>
680 </xs:complexType>
681 </xs:element>
682
683 <xs:element name="services">
684 <xs:complexType>
685 <xs:sequence minOccurs="0" maxOccurs="unbounded">
686 <xs:choice>
687 <xs:element ref="service" minOccurs="1" maxOccurs="1"/>
688 <xs:element ref="selfBoundService" minOccurs="1" maxOccurs="1"/>
689 <xs:element ref="proxyService" minOccurs="1" maxOccurs="1"/>
690 </xs:choice>
691 </xs:sequence>
692 </xs:complexType>
693 </xs:element>
694
695 <xs:complexType name="autoGeneratedMemberReturnValues">
696 <xs:choice minOccurs="1" maxOccurs="1">
697 <xs:element name="constructedValue" type="constructedValueTypeWithDi"/>
698 <xs:element name="injectedObject" type="injectedObjectType"/>
699 <xs:element name="byte" type="byteType"/>
700 <xs:element name="int16" type="int16Type"/>
701 <xs:element name="int32" type="int32Type"/>
702 <xs:element name="int64" type="int64Type"/>
703 <xs:element name="double" type="doubleType"/>
704 <xs:element name="boolean" type="booleanType"/>
705 <xs:element name="datetime" type="datetimeType"/>
706 <xs:element name="string" type="stringType"/>
707 <xs:element name="object" type="objectType"/>
708 <xs:element name="settingValue" type="settingValueType"/>
709 <xs:element name="collection" type="collectionTypeWithDi"/>
710 <xs:element name="classMember" type="classMemberTypeWithDi"/>
711 <xs:element name="parameterValue" type="parameterValueType"/>
712 </xs:choice>
713 </xs:complexType>
714
715 <xs:element name="autoProperty">
716 <xs:complexType>
717 <xs:choice minOccurs="1" maxOccurs="1">
718 <xs:element name="constructedValue" type="constructedValueTypeWithDi"/>
719 <xs:element name="injectedObject" type="injectedObjectType"/>
720 <xs:element name="byte" type="byteType"/>
721 <xs:element name="int16" type="int16Type"/>
722 <xs:element name="int32" type="int32Type"/>
723 <xs:element name="int64" type="int64Type"/>
724 <xs:element name="double" type="doubleType"/>
725 <xs:element name="boolean" type="booleanType"/>
726 <xs:element name="datetime" type="datetimeType"/>
727 <xs:element name="string" type="stringType"/>
728 <xs:element name="object" type="objectType"/>
729 <xs:element name="settingValue" type="settingValueType"/>
730 <xs:element name="collection" type="collectionTypeWithDi"/>
731 <xs:element name="classMember" type="classMemberTypeWithDi"/>
732 <xs:element name="parameterValue" type="parameterValueType"/>
733 </xs:choice>
734 <xs:attribute name="name" type="xs:string" use="required"/>
735 <xs:attribute name="returnType" use="optional" type="xs:string"/>
736 <xs:attribute name="assembly" use="optional" type="xs:string"/>
737 <xs:attribute name="returnTypeRef" use="optional" type="xs:string"/>
738 <xs:attribute name="declaringInterface" type="xs:string" use="optional"/>
739 </xs:complexType>
740 </xs:element>
741
742 <xs:element name="methodSignature">
743 <xs:complexType>
744 <xs:sequence minOccurs="0" maxOccurs="unbounded">
745 <xs:choice>
746 <xs:element name="byte">
747 <xs:complexType>
748 <xs:attribute name="paramName" use="optional"></xs:attribute>
749 </xs:complexType>
750 </xs:element>
751
752 <xs:element name="int16">
753 <xs:complexType>
754 <xs:attribute name="paramName" use="optional"></xs:attribute>
755 </xs:complexType>
756 </xs:element>
757
758 <xs:element name="int32">
759 <xs:complexType>
760 <xs:attribute name="paramName" use="optional"></xs:attribute>
761 </xs:complexType>
762 </xs:element>
763
764 <xs:element name="int64">
765 <xs:complexType>
766 <xs:attribute name="paramName" use="optional"></xs:attribute>
767 </xs:complexType>
768 </xs:element>
769
770 <xs:element name="double">
771 <xs:complexType>
772 <xs:attribute name="paramName" use="optional"></xs:attribute>
773 </xs:complexType>
774 </xs:element>
775
776 <xs:element name="boolean">
777 <xs:complexType>
778 <xs:attribute name="paramName" use="optional"></xs:attribute>
779 </xs:complexType>
780 </xs:element>
781
782 <xs:element name="datetime">
783 <xs:complexType>
784 <xs:attribute name="paramName" use="optional"></xs:attribute>
785 </xs:complexType>
786 </xs:element>
787
788 <xs:element name="string">
789 <xs:complexType>
790 <xs:attribute name="paramName" use="optional"></xs:attribute>
791 </xs:complexType>
792 </xs:element>
793
794 <xs:element name="object">
795 <xs:complexType>
796 <xs:attribute name="paramName" use="optional"></xs:attribute>
797 <xs:attribute name="type" type="xs:string" use="optional"/>
798 <xs:attribute name="assembly" type="xs:string" use="optional"/>
799 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
800 </xs:complexType>
801 </xs:element>
802 </xs:choice>
803 </xs:sequence>
804 </xs:complexType>
805 </xs:element>
806
807 <xs:element name="autoMethod">
808 <xs:complexType>
809 <xs:sequence>
810 <xs:element ref="methodSignature" minOccurs="0" maxOccurs="1"/>
811 <xs:element name="if" minOccurs="0" maxOccurs="unbounded">
812 <xs:complexType>
813 <xs:complexContent>
814 <xs:extension base="autoGeneratedMemberReturnValues">
815 <xs:attribute name="parameter1" type="xs:string" use="optional"/>
816 <xs:attribute name="parameter2" type="xs:string" use="optional"/>
817 <xs:attribute name="parameter3" type="xs:string" use="optional"/>
818 <xs:attribute name="parameter4" type="xs:string" use="optional"/>
819 <xs:attribute name="parameter5" type="xs:string" use="optional"/>
820 <xs:attribute name="parameter6" type="xs:string" use="optional"/>
821 <xs:attribute name="parameter7" type="xs:string" use="optional"/>
822 <xs:attribute name="parameter8" type="xs:string" use="optional"/>
823 <xs:attribute name="parameter9" type="xs:string" use="optional"/>
824 <xs:attribute name="parameter10" type="xs:string" use="optional"/>
825 </xs:extension>
826 </xs:complexContent>
827 </xs:complexType>
828 </xs:element>
829 <xs:element name="default" type="autoGeneratedMemberReturnValues" minOccurs="1" maxOccurs="1"/>
830 </xs:sequence>
831 <xs:attribute name="name" type="xs:string" use="required"/>
832 <xs:attribute name="returnType" use="optional" type="xs:string"/>
833 <xs:attribute name="assembly" use="optional" type="xs:string"/>
834 <xs:attribute name="returnTypeRef" use="optional" type="xs:string"/>
835 <xs:attribute name="reuseValue" type="xs:boolean" use="optional" default="false"/>
836 <xs:attribute name="declaringInterface" type="xs:string" use="optional"/>
837 </xs:complexType>
838 </xs:element>
839
840 <xs:element name="autoService">
841 <xs:complexType>
842 <xs:sequence minOccurs="0" maxOccurs="unbounded">
843 <xs:choice>
844 <xs:element ref="autoMethod" minOccurs="1" maxOccurs="1"></xs:element>
845 <xs:element ref="autoProperty" minOccurs="1" maxOccurs="1"></xs:element>
846 </xs:choice>
847 </xs:sequence>
848 <xs:attribute name="interface" type="xs:string" use="optional"/>
849 <xs:attribute name="assembly" type="xs:string" use="optional"/>
850 <xs:attribute name="interfaceRef" type="xs:string" use="optional"/>
851 </xs:complexType>
852 </xs:element>
853
854 <!--<xs:complexType name="additionalAssemblyReferencesType">
855 <xs:sequence minOccurs="0" maxOccurs="unbounded">
856 <xs:element name="assemblyRef">
857 <xs:complexType>
858 <xs:attribute name="alias" type="xs:string" />
859 </xs:complexType>
860 </xs:element>
861 </xs:sequence>
862 </xs:complexType>-->
863
864 <xs:complexType name="autoServiceCodeGeneratorType">
865 <xs:sequence minOccurs="1" maxOccurs="1">
866 <xs:choice>
867 <xs:element name="object" type="objectType" minOccurs="1" maxOccurs="1"/>
868 <xs:element name="constructedValue" type="constructedValueType" minOccurs="1" maxOccurs="1"/>
869 <xs:element name="classMember" type="classMemberType" minOccurs="1" maxOccurs="1"/>
870 </xs:choice>
871 </xs:sequence>
872 </xs:complexType>
873
874 <xs:element name="autoServiceCustom">
875 <xs:complexType>
876 <xs:sequence minOccurs="1" maxOccurs="1">
877 <xs:element name="autoServiceCodeGenerator" type="autoServiceCodeGeneratorType" minOccurs="1"
878 maxOccurs="1"/>
879 <!--<xs:element name="additionalAssemblyReferences" type="additionalAssemblyReferencesType" minOccurs="0" maxOccurs="1" />-->
880 </xs:sequence>
881
882 <xs:attribute name="interface" type="xs:string" use="optional"/>
883 <xs:attribute name="assembly" type="xs:string" use="optional"/>
884 <xs:attribute name="interfaceRef" type="xs:string" use="optional"/>
885 </xs:complexType>
886 </xs:element>
887
888 <xs:element name="autoGeneratedServices">
889 <xs:complexType>
890 <xs:sequence minOccurs="0" maxOccurs="unbounded">
891 <xs:choice>
892 <xs:element ref="autoService" minOccurs="1" maxOccurs="1"/>
893 <xs:element ref="autoServiceCustom" minOccurs="1" maxOccurs="1"/>
894 </xs:choice>
895 </xs:sequence>
896 </xs:complexType>
897 </xs:element>
898
899 <xs:element name="dependencyInjection">
900 <xs:complexType>
901 <xs:sequence>
902 <xs:element ref="modules" minOccurs="1" maxOccurs="1"/>
903 <xs:element ref="services" minOccurs="1" maxOccurs="1"/>
904 <xs:element ref="autoGeneratedServices" minOccurs="1" maxOccurs="1"/>
905 </xs:sequence>
906 </xs:complexType>
907 </xs:element>
908
909 <xs:element name="startupAction">
910 <xs:complexType>
911 <xs:sequence>
912 <xs:element name="parameters" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
913 <xs:element name="injectedProperties" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
914 </xs:sequence>
915 <xs:attribute name="type" type="xs:string" use="optional"/>
916 <xs:attribute name="assembly" type="xs:string" use="optional"/>
917 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
918 </xs:complexType>
919 </xs:element>
920
921 <xs:element name="startupActions">
922 <xs:complexType>
923 <xs:sequence>
924 <xs:element ref="startupAction" minOccurs="0" maxOccurs="unbounded"/>
925 </xs:sequence>
926 </xs:complexType>
927 </xs:element>
928
929 <xs:element name="pluginImplementation">
930 <xs:complexType>
931 <xs:sequence>
932 <xs:element name="parameters" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
933 <xs:element name="injectedProperties" type="namedValuesTypeWithDi" minOccurs="0" maxOccurs="1"/>
934 </xs:sequence>
935 <xs:attribute name="type" type="xs:string" use="optional"/>
936 <xs:attribute name="assembly" type="xs:string" use="optional"/>
937 <xs:attribute name="typeRef" type="xs:string" use="optional"/>
938 </xs:complexType>
939 </xs:element>
940
941 <xs:element name="pluginSetup">
942 <xs:complexType>
943 <xs:sequence>
944 <xs:element ref="pluginImplementation" minOccurs="1" maxOccurs="1"/>
945 <xs:element ref="typeDefinitions" minOccurs="0" maxOccurs="1"/>
946 <xs:element ref="settings" minOccurs="1" maxOccurs="1"/>
947 <xs:element ref="webApi" minOccurs="0" maxOccurs="1"/>
948 <xs:element ref="dependencyInjection" minOccurs="1" maxOccurs="1"/>
949 </xs:sequence>
950
951 <xs:attribute name="plugin" type="xs:string" use="required"/>
952 </xs:complexType>
953
954 </xs:element>
955
956 <xs:element name="pluginsSetup">
957 <xs:complexType>
958 <xs:sequence>
959 <xs:element ref="pluginSetup" minOccurs="0" maxOccurs="unbounded"/>
960 </xs:sequence>
961 </xs:complexType>
962 </xs:element>
963
964 <xs:element name="iocConfiguration">
965 <xs:complexType>
966 <xs:sequence>
967 <xs:element ref="appDataDir" minOccurs="1" maxOccurs="1"/>
968 <xs:element ref="plugins" minOccurs="1" maxOccurs="1"/>
969 <xs:element ref="additionalAssemblyProbingPaths" minOccurs="1" maxOccurs="1"/>
970 <xs:element ref="assemblies" minOccurs="1" maxOccurs="1"/>
971 <xs:element ref="typeDefinitions" minOccurs="0" maxOccurs="1"/>
972 <!--<xs:element ref="attributeValueTransformers" minOccurs="0" maxOccurs="1" />-->
973 <xs:element ref="parameterSerializers" minOccurs="1" maxOccurs="1"/>
974 <xs:element ref="diManagers" minOccurs="1" maxOccurs="1"/>
975 <xs:element ref="settingsRequestor" minOccurs="0" maxOccurs="1"/>
976 <xs:element ref="settings" minOccurs="1" maxOccurs="1"/>
977 <xs:element ref="webApi" minOccurs="0" maxOccurs="1"/>
978 <xs:element ref="dependencyInjection" minOccurs="1" maxOccurs="1"/>
979 <xs:element ref="startupActions" minOccurs="1" maxOccurs="1"/>
980 <xs:element ref="pluginsSetup" minOccurs="1" maxOccurs="1"/>
981 </xs:sequence>
982 </xs:complexType>
983 </xs:element>
984</xs:schema>