Mercurial > pub > RazorEngine
comparison src/packages/Unity.3.0.1304.1/UnityConfiguration30.xsd @ 0:5bca2d201ad8
initial commit
author | cin |
---|---|
date | Sun, 24 Aug 2014 11:14:55 +0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:5bca2d201ad8 |
---|---|
1 <?xml version="1.0" encoding="utf-8"?> | |
2 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" | |
3 xmlns="http://schemas.microsoft.com/practices/2010/unity" | |
4 targetNamespace="http://schemas.microsoft.com/practices/2010/unity" | |
5 elementFormDefault="qualified" | |
6 attributeFormDefault="unqualified"> | |
7 | |
8 <!-- Core unity config --> | |
9 | |
10 <xs:element name="unity" type="UnityConfigurationSection" /> | |
11 | |
12 <xs:complexType name="UnityConfigurationSection"> | |
13 <xs:sequence> | |
14 <xs:choice minOccurs="0" maxOccurs="unbounded"> | |
15 <xs:element name="container" type="ContainerElement"/> | |
16 <xs:element name="alias" type="AliasElement" /> | |
17 <xs:element name="sectionExtension" type="SectionExtensionElement" /> | |
18 <xs:element name="namespace" type="NamedElement" /> | |
19 <xs:element name="assembly" type="NamedElement" /> | |
20 </xs:choice> | |
21 </xs:sequence> | |
22 </xs:complexType> | |
23 | |
24 <xs:complexType name="Containers"> | |
25 <xs:sequence> | |
26 <xs:element name="container" minOccurs="0" maxOccurs="unbounded" type="ContainerElement"/> | |
27 </xs:sequence> | |
28 </xs:complexType> | |
29 | |
30 <xs:complexType name="ContainerElement"> | |
31 <xs:sequence> | |
32 <xs:choice minOccurs="0" maxOccurs="unbounded"> | |
33 <xs:element name="instance" type="InstanceElement"/> | |
34 <xs:element name="register" type="RegisterElement"/> | |
35 <xs:element name="extension" type="ContainerExtensionElement"/> | |
36 <xs:element name="interception" type="InterceptionElement"/> | |
37 <xs:element name="interceptors" type="InterceptorsElement"/> | |
38 </xs:choice> | |
39 </xs:sequence> | |
40 <xs:attribute name="name" type="IdentifierName_Type"/> | |
41 </xs:complexType> | |
42 | |
43 <xs:complexType name="InstanceElement"> | |
44 <xs:attribute name="name" type="IdentifierName_Type"/> | |
45 <xs:attribute name="type" type="TypeName_Type"/> | |
46 <xs:attribute name="value" type="LiteralValue_Type"/> | |
47 <xs:attribute name="typeConverter" type="TypeName_Type"/> | |
48 </xs:complexType> | |
49 | |
50 <xs:complexType name="ContainerExtensionElement"> | |
51 <xs:attribute name="type" type="ContainerExtensionTypeName_Type" use="required"/> | |
52 </xs:complexType> | |
53 | |
54 <xs:complexType name="RegisterElement"> | |
55 <xs:group ref="InjectionGroup"/> | |
56 <xs:attribute name="type" type="TypeName_Type" use="required" /> | |
57 <xs:attribute name="name" type="IdentifierName_Type" /> | |
58 <xs:attribute name="mapTo" type="TypeName_Type"/> | |
59 </xs:complexType> | |
60 | |
61 <xs:complexType name="LifetimeElement"> | |
62 <xs:attribute name="type" type="LifetimeTypeName_Type" use="required"/> | |
63 <xs:attribute name="value" type="LiteralValue_Type"/> | |
64 <xs:attribute name="typeConverter" type="TypeName_Type"/> | |
65 </xs:complexType> | |
66 | |
67 <xs:complexType name="ConstructorElement"> | |
68 <xs:sequence minOccurs="0" maxOccurs="unbounded"> | |
69 <xs:element name="param" type="ParameterElement"/> | |
70 </xs:sequence> | |
71 </xs:complexType> | |
72 | |
73 <xs:complexType name="MethodElement"> | |
74 <xs:sequence minOccurs="0" maxOccurs="unbounded"> | |
75 <xs:element name="param" type="ParameterElement"/> | |
76 </xs:sequence> | |
77 <xs:attribute name="name" type="IdentifierName_Type" use="required"/> | |
78 </xs:complexType> | |
79 | |
80 <xs:complexType name="PropertyElement"> | |
81 <xs:group ref="ValueResolutionGroup" minOccurs="0"/> | |
82 <xs:attribute name="name" type="IdentifierName_Type" use="required"/> | |
83 <xs:attributeGroup ref="ValueOptimizationAttributes"/> | |
84 </xs:complexType> | |
85 | |
86 <xs:complexType name="ParameterElement"> | |
87 <xs:group ref="ValueResolutionGroup" minOccurs="0"/> | |
88 <xs:attribute name="name" type="IdentifierName_Type"/> | |
89 <xs:attribute name="type" type="TypeName_Type"/> | |
90 <xs:attributeGroup ref="ValueOptimizationAttributes"/> | |
91 </xs:complexType> | |
92 | |
93 <xs:complexType name="DependencyElement"> | |
94 <xs:attribute name="name" type="IdentifierName_Type"/> | |
95 <xs:attribute name="type" type="TypeName_Type"/> | |
96 </xs:complexType> | |
97 | |
98 <xs:complexType name="ValueElement"> | |
99 <xs:attribute name="value" type="LiteralValue_Type"/> | |
100 <xs:attribute name="typeConverter" type="TypeName_Type"/> | |
101 </xs:complexType> | |
102 | |
103 <xs:complexType name="ArrayElement"> | |
104 <xs:group ref="ValueResolutionGroup" minOccurs="0" maxOccurs="unbounded"/> | |
105 <xs:attribute name="type" type="TypeName_Type"/> | |
106 </xs:complexType> | |
107 | |
108 <xs:complexType name="OptionalElement"> | |
109 <xs:attribute name="name" type="IdentifierName_Type"/> | |
110 <xs:attribute name="type" type="TypeName_Type"/> | |
111 </xs:complexType> | |
112 | |
113 | |
114 <xs:complexType name="AliasElement"> | |
115 <xs:attribute name="alias" type="IdentifierName_Type" use="required"/> | |
116 <xs:attribute name="type" type="TypeName_Type" use="required"/> | |
117 </xs:complexType> | |
118 | |
119 | |
120 <xs:complexType name="SectionExtensionElement"> | |
121 <xs:attribute name="prefix" type="IdentifierName_Type"/> | |
122 <xs:attribute name="type" type="SectionExtensionTypeName_Type" use="required"/> | |
123 </xs:complexType> | |
124 | |
125 | |
126 <xs:attributeGroup name="ValueOptimizationAttributes"> | |
127 <xs:attribute name="value" type="LiteralValue_Type"/> | |
128 <xs:attribute name="dependencyName" type="IdentifierName_Type"/> | |
129 <xs:attribute name="dependencyType" type="TypeName_Type"/> | |
130 </xs:attributeGroup> | |
131 | |
132 <xs:group name="ValueResolutionGroup"> | |
133 <xs:choice> | |
134 <xs:element name="value" type="ValueElement"/> | |
135 <xs:element name="dependency" type="DependencyElement"/> | |
136 <xs:element name="array" type="ArrayElement"/> | |
137 <xs:element name="optional" type="OptionalElement"/> | |
138 </xs:choice> | |
139 </xs:group> | |
140 | |
141 <xs:group name="InjectionGroup"> | |
142 <xs:sequence> | |
143 <xs:element minOccurs="0" name="lifetime" type="LifetimeElement"/> | |
144 <xs:element minOccurs="0" name="constructor" type="ConstructorElement"/> | |
145 <xs:choice minOccurs="0" maxOccurs="unbounded"> | |
146 <xs:element name="method" type="MethodElement"/> | |
147 <xs:element name="property" type="PropertyElement"/> | |
148 <xs:element name="interceptor" type="InterceptorElement"/> | |
149 <xs:element name="interceptionBehavior" type="InterceptionBehaviorElement"/> | |
150 <xs:element name="addInterface" type="AddInterfaceElement"/> | |
151 <xs:element name="policyInjection" type="PolicyInjectionElement"/> | |
152 </xs:choice> | |
153 </xs:sequence> | |
154 </xs:group> | |
155 | |
156 <!-- Interception config --> | |
157 | |
158 <xs:complexType name="InterceptionElement"> | |
159 <xs:choice minOccurs="0" maxOccurs="unbounded"> | |
160 <xs:element name="policy" type="PolicyElement"/> | |
161 </xs:choice> | |
162 </xs:complexType> | |
163 | |
164 <xs:complexType name="PolicyElement"> | |
165 <xs:choice minOccurs="0" maxOccurs="unbounded"> | |
166 <xs:element name="callHandler" type="CallHandlerElement"/> | |
167 <xs:element name="matchingRule" type="MatchingRuleElement"/> | |
168 </xs:choice> | |
169 <xs:attribute name="name" type="IdentifierName_Type" use="required"/> | |
170 </xs:complexType> | |
171 | |
172 <xs:complexType name="CallHandlerElement"> | |
173 <xs:group ref="InjectionGroup"/> | |
174 <xs:attribute name="type" type="TypeName_Type"/> | |
175 <xs:attribute name="name" type="IdentifierName_Type" use="required"/> | |
176 </xs:complexType> | |
177 | |
178 <xs:complexType name="MatchingRuleElement"> | |
179 <xs:group ref="InjectionGroup"/> | |
180 <xs:attribute name="type" type="MatchingRuleTypeName_Type"/> | |
181 <xs:attribute name="name" type="IdentifierName_Type" use="required"/> | |
182 </xs:complexType> | |
183 | |
184 <xs:complexType name="InterceptorElement"> | |
185 <xs:attribute name="name" type="IdentifierName_Type"/> | |
186 <xs:attribute name="type" type="InterceptorTypeName_Type"/> | |
187 <xs:attribute name="isDefaultForType" type="boolean_Type2"/> | |
188 </xs:complexType> | |
189 | |
190 <xs:complexType name="InterceptionBehaviorElement"> | |
191 <xs:attribute name="name" type="IdentifierName_Type"/> | |
192 <xs:attribute name="type" type="TypeName_Type"/> | |
193 <xs:attribute name="isDefaultForType" type="boolean_Type2"/> | |
194 </xs:complexType> | |
195 | |
196 <xs:complexType name="AddInterfaceElement"> | |
197 <xs:attribute name="type" type="TypeName_Type" use="required"/> | |
198 </xs:complexType> | |
199 | |
200 <xs:complexType name="PolicyInjectionElement"/> | |
201 | |
202 <xs:complexType name="InterceptorsElement"> | |
203 <xs:sequence minOccurs="0" maxOccurs="unbounded"> | |
204 <xs:element name="interceptor" type="InterceptorsInterceptorElement"/> | |
205 </xs:sequence> | |
206 </xs:complexType> | |
207 | |
208 <xs:complexType name="InterceptorsInterceptorElement"> | |
209 <xs:choice minOccurs="0" maxOccurs="unbounded"> | |
210 <xs:element name="key" type="KeyElement"/> | |
211 <xs:element name="default" type="DefaultElement"/> | |
212 </xs:choice> | |
213 <xs:attribute name="type" type="InterceptorTypeName_Type"/> | |
214 <xs:attribute name="value" type="LiteralValue_Type"/> | |
215 <xs:attribute name="typeConverter" type="TypeName_Type"/> | |
216 </xs:complexType> | |
217 | |
218 <xs:complexType name="KeyElement"> | |
219 <xs:attribute name="type" type="TypeName_Type" use="required"/> | |
220 <xs:attribute name="name" type="IdentifierName_Type"/> | |
221 </xs:complexType> | |
222 | |
223 <xs:complexType name="DefaultElement"> | |
224 <xs:attribute name="type" type="TypeName_Type" use="required"/> | |
225 </xs:complexType> | |
226 | |
227 <!-- common types --> | |
228 | |
229 <xs:simpleType name="LiteralValue_Type"> | |
230 <xs:restriction base="xs:string"/> | |
231 </xs:simpleType> | |
232 | |
233 <xs:simpleType name="TypeName_Type"> | |
234 <xs:restriction base="xs:string"/> | |
235 </xs:simpleType> | |
236 | |
237 <xs:simpleType name="LifetimeTypeName_Type"> | |
238 <xs:union memberTypes="TypeName_Type"> | |
239 <xs:simpleType> | |
240 <xs:restriction base="xs:NMTOKEN"> | |
241 <xs:enumeration value="singleton"/> | |
242 <xs:enumeration value="transient"/> | |
243 <xs:enumeration value="perthread"/> | |
244 <xs:enumeration value="external"/> | |
245 <xs:enumeration value="hierarchical"/> | |
246 <xs:enumeration value="resolve"/> | |
247 <xs:enumeration value="perresolve"/> | |
248 </xs:restriction> | |
249 </xs:simpleType> | |
250 </xs:union> | |
251 </xs:simpleType> | |
252 | |
253 <xs:simpleType name="ContainerExtensionTypeName_Type"> | |
254 <xs:union memberTypes="TypeName_Type"> | |
255 <xs:simpleType> | |
256 <xs:restriction base="xs:NMTOKEN"> | |
257 <xs:enumeration value="Interception"/> | |
258 </xs:restriction> | |
259 </xs:simpleType> | |
260 </xs:union> | |
261 </xs:simpleType> | |
262 | |
263 <xs:simpleType name="SectionExtensionTypeName_Type"> | |
264 <xs:union memberTypes="TypeName_Type"> | |
265 <xs:simpleType> | |
266 <xs:restriction base="xs:string"> | |
267 <xs:enumeration value="Microsoft.Practices.Unity.InterceptionExtension.Configuration.InterceptionConfigurationExtension, Microsoft.Practices.Unity.Interception.Configuration"/> | |
268 </xs:restriction> | |
269 </xs:simpleType> | |
270 </xs:union> | |
271 </xs:simpleType> | |
272 | |
273 <xs:simpleType name="InterceptorTypeName_Type"> | |
274 <xs:union memberTypes="TypeName_Type"> | |
275 <xs:simpleType> | |
276 <xs:restriction base="xs:NMTOKEN"> | |
277 <xs:enumeration value="VirtualMethodInterceptor"/> | |
278 <xs:enumeration value="InterfaceInterceptor"/> | |
279 <xs:enumeration value="TransparentProxyInterceptor"/> | |
280 </xs:restriction> | |
281 </xs:simpleType> | |
282 </xs:union> | |
283 </xs:simpleType> | |
284 | |
285 <xs:simpleType name="MatchingRuleTypeName_Type"> | |
286 <xs:union memberTypes="TypeName_Type"> | |
287 <xs:simpleType> | |
288 <xs:restriction base="xs:NMTOKEN"> | |
289 <xs:enumeration value="AssemblyMatchingRule"/> | |
290 <xs:enumeration value="CustomAttributeMatchingRule"/> | |
291 <xs:enumeration value="MemberNameMatchingRule"/> | |
292 <xs:enumeration value="NamespaceMatchingRule"/> | |
293 <xs:enumeration value="ParameterTypeMatchingRule"/> | |
294 <xs:enumeration value="PropertyMatchingRule"/> | |
295 <xs:enumeration value="TagAttributeMatchingRule"/> | |
296 <xs:enumeration value="TypeMatchingRule"/> | |
297 </xs:restriction> | |
298 </xs:simpleType> | |
299 </xs:union> | |
300 </xs:simpleType> | |
301 | |
302 <xs:simpleType name="IdentifierName_Type"> | |
303 <xs:restriction base="xs:string"/> | |
304 </xs:simpleType> | |
305 | |
306 <xs:simpleType name="boolean_Type2"> | |
307 <xs:restriction base="xs:boolean"> | |
308 <xs:pattern value="true" /> | |
309 <xs:pattern value="false" /> | |
310 </xs:restriction> | |
311 </xs:simpleType> | |
312 | |
313 <xs:complexType name="Empty"/> | |
314 | |
315 <xs:complexType name="NamedElement"> | |
316 <xs:attribute name="name" type="IdentifierName_Type" use="required"/> | |
317 </xs:complexType> | |
318 | |
319 </xs:schema> |