PageRenderTime 66ms CodeModel.GetById 17ms app.highlight 38ms RepoModel.GetById 1ms app.codeStats 1ms

/hazelcast-spring/src/main/resources/hazelcast-spring-2.4.xsd

https://bitbucket.org/gabral6_gmailcom/hazelcast
XML Schema | 801 lines | 760 code | 41 blank | 0 comment | 0 complexity | 2c12d8afee961f7d5678b76bb5cc1e89 MD5 | raw file
  1<?xml version="1.0" encoding="UTF-8"?>
  2<!--
  3  ~ Copyright (c) 2008-2012, Hazel Bilisim Ltd. All Rights Reserved.
  4  ~
  5  ~ Licensed under the Apache License, Version 2.0 (the "License");
  6  ~ you may not use this file except in compliance with the License.
  7  ~ You may obtain a copy of the License at
  8  ~
  9  ~ http://www.apache.org/licenses/LICENSE-2.0
 10  ~
 11  ~ Unless required by applicable law or agreed to in writing, software
 12  ~ distributed under the License is distributed on an "AS IS" BASIS,
 13  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 14  ~ See the License for the specific language governing permissions and
 15  ~ limitations under the License.
 16  -->
 17
 18<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
 19           xmlns="http://www.hazelcast.com/schema/spring"
 20           targetNamespace="http://www.hazelcast.com/schema/spring"
 21           elementFormDefault="qualified"
 22           attributeFormDefault="unqualified">
 23
 24    <xs:element name="config">
 25        <xs:complexType>
 26            <xs:complexContent>
 27                <xs:extension base="hazelcast-bean">
 28                    <xs:sequence>
 29                        <xs:element name="instance-name" type="xs:string" minOccurs="0" maxOccurs="1"/>
 30                        <xs:element name="lite-member" type="xs:string" minOccurs="0" maxOccurs="1"/>
 31                        <xs:element name="group" type="group" minOccurs="0" maxOccurs="1"/>
 32                        <xs:element name="license-key" type="xs:string" minOccurs="0" maxOccurs="1"/>
 33                        <xs:element name="management-center" type="management-center" minOccurs="0" maxOccurs="1"/>
 34                        <xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
 35                        <xs:element name="wan-replication" type="wan-replication" minOccurs="0" maxOccurs="unbounded"/>
 36                        <xs:element name="network" type="network" minOccurs="0" maxOccurs="1"/>
 37                        <xs:element name="partition-group" type="partition-group" minOccurs="0" maxOccurs="1"/>
 38                        <xs:element name="executor-service" minOccurs="0" maxOccurs="unbounded">
 39                            <xs:complexType>
 40                                <xs:sequence/>
 41                                <xs:attribute name="name" use="required" type="xs:string"/>
 42                                <xs:attribute name="core-pool-size" use="optional" type="xs:string"/>
 43                                <xs:attribute name="max-pool-size" use="optional" type="xs:string"/>
 44                                <xs:attribute name="keep-alive-seconds" use="optional" type="xs:string"/>
 45                            </xs:complexType>
 46                        </xs:element>
 47                        <xs:element name="queue" minOccurs="0" maxOccurs="unbounded">
 48                            <xs:complexType>
 49                                <xs:sequence>
 50                                    <xs:element name="item-listeners" minOccurs="0" maxOccurs="1">
 51                                        <xs:complexType>
 52                                            <xs:sequence>
 53                                                <xs:element name="item-listener" type="item-listener" minOccurs="0"
 54                                                            maxOccurs="unbounded"/>
 55                                            </xs:sequence>
 56                                        </xs:complexType>
 57                                    </xs:element>
 58                                </xs:sequence>
 59                                <xs:attribute name="name" use="required" type="xs:string"/>
 60                                <xs:attribute name="max-size-per-jvm" use="required" type="xs:string"/>
 61                                <xs:attribute name="backing-map-ref" use="optional" type="xs:string"/>
 62                            </xs:complexType>
 63                        </xs:element>
 64                        <xs:element name="map" minOccurs="0" maxOccurs="unbounded">
 65                            <xs:complexType>
 66                                <xs:sequence>
 67                                    <xs:element name="map-store" minOccurs="0" maxOccurs="1">
 68                                        <xs:complexType>
 69                                            <xs:sequence>
 70                                                <xs:element name="properties" type="properties" minOccurs="0"
 71                                                            maxOccurs="1"/>
 72                                            </xs:sequence>
 73                                            <xs:attribute name="enabled" use="required" type="xs:string"/>
 74                                            <xs:attribute name="class-name" use="optional" type="xs:string"/>
 75                                            <xs:attribute name="factory-class-name" use="optional" type="xs:string"/>
 76                                            <xs:attribute name="implementation" use="optional" type="xs:string"/>
 77                                            <xs:attribute name="factory-implementation" use="optional"
 78                                                          type="xs:string"/>
 79                                            <xs:attribute name="write-delay-seconds" use="required" type="xs:string"/>
 80                                        </xs:complexType>
 81                                    </xs:element>
 82                                    <xs:element name="near-cache" minOccurs="0" maxOccurs="1">
 83                                        <xs:complexType>
 84                                            <xs:sequence/>
 85                                            <xs:attribute name="time-to-live-seconds" use="required" type="xs:string"/>
 86                                            <xs:attribute name="max-idle-seconds" use="required" type="xs:string"/>
 87                                            <xs:attribute name="eviction-policy" use="required" type="xs:string"/>
 88                                            <xs:attribute name="max-size" use="required" type="xs:string"/>
 89                                            <xs:attribute name="invalidate-on-change" use="required" type="xs:string"/>
 90                                        </xs:complexType>
 91                                    </xs:element>
 92                                    <xs:element name="wan-replication-ref" minOccurs="0" maxOccurs="1">
 93                                        <xs:complexType>
 94                                            <xs:attribute name="name" use="required" type="xs:string"/>
 95                                            <xs:attribute name="merge-policy" use="required" type="xs:string"/>
 96                                        </xs:complexType>
 97                                    </xs:element>
 98                                    <xs:element name="indexes" minOccurs="0" maxOccurs="1">
 99                                        <xs:complexType>
100                                            <xs:sequence>
101                                                <xs:element name="index" minOccurs="0" maxOccurs="unbounded">
102                                                    <xs:complexType>
103                                                        <xs:attribute name="attribute" type="xs:string" use="required"/>
104                                                        <xs:attribute name="ordered" type="xs:string" use="optional"
105                                                                      default="false"/>
106                                                    </xs:complexType>
107                                                </xs:element>
108                                            </xs:sequence>
109                                        </xs:complexType>
110                                    </xs:element>
111                                    <xs:element name="entry-listeners" minOccurs="0" maxOccurs="1">
112                                        <xs:complexType>
113                                            <xs:sequence>
114                                                <xs:element name="entry-listener" type="entry-listener" minOccurs="0"
115                                                            maxOccurs="unbounded"/>
116                                            </xs:sequence>
117                                        </xs:complexType>
118                                    </xs:element>
119                                </xs:sequence>
120                                <xs:attribute name="name" use="required" type="xs:string"/>
121                                <xs:attribute name="backup-count" use="optional" type="xs:string"/>
122                                <xs:attribute name="async-backup-count" use="optional" type="xs:string"/>
123                                <xs:attribute name="time-to-live-seconds" use="optional" type="xs:string"/>
124                                <xs:attribute name="max-size" use="optional" type="xs:string"/>
125                                <xs:attribute name="max-size-policy" use="optional" type="xs:string"/>
126                                <xs:attribute name="max-idle-seconds" use="optional" type="xs:string"/>
127                                <xs:attribute name="eviction-delay-seconds" use="optional" type="xs:string"/>
128                                <xs:attribute name="eviction-percentage" use="optional" type="xs:string"/>
129                                <xs:attribute name="eviction-policy" use="optional" type="xs:string"/>
130                                <xs:attribute name="merge-policy" use="optional" type="xs:string"/>
131                                <xs:attribute name="value-indexed" use="optional" type="xs:string"/>
132                                <xs:attribute name="read-backup-data" use="optional" type="xs:string"/>
133                                <xs:attribute name="cache-value" use="optional" type="xs:string"/>
134                                <xs:attribute name="storage-type" use="optional" type="xs:string" default="HEAP"/>
135                            </xs:complexType>
136                        </xs:element>
137                        <xs:element name="multimap" minOccurs="0" maxOccurs="unbounded">
138                            <xs:complexType>
139                                <xs:sequence>
140                                    <xs:element name="entry-listeners" minOccurs="0" maxOccurs="1">
141                                        <xs:complexType>
142                                            <xs:sequence>
143                                                <xs:element name="entry-listener" type="entry-listener" minOccurs="0"
144                                                            maxOccurs="unbounded"/>
145                                            </xs:sequence>
146                                        </xs:complexType>
147                                    </xs:element>
148                                </xs:sequence>
149                                <xs:attribute name="name" type="xs:string" use="optional" default="default"/>
150                                <xs:attribute name="value-collection-type" type="xs:string" use="optional"
151                                              default="SET"/>
152                            </xs:complexType>
153                        </xs:element>
154                        <xs:element name="topic" minOccurs="0" maxOccurs="unbounded">
155                            <xs:complexType>
156                                <xs:sequence>
157                                    <xs:element name="message-listeners" minOccurs="0" maxOccurs="1">
158                                        <xs:complexType>
159                                            <xs:sequence>
160                                                <xs:element name="message-listener" type="listener" minOccurs="0"
161                                                            maxOccurs="unbounded"/>
162                                            </xs:sequence>
163                                        </xs:complexType>
164                                    </xs:element>
165                                </xs:sequence>
166                                <xs:attribute name="name" type="xs:string" use="optional" default="default"/>
167                            </xs:complexType>
168                        </xs:element>
169                        <xs:element name="merge-policies" type="merge-policies" minOccurs="0" maxOccurs="unbounded"/>
170                        <xs:element name="listeners" minOccurs="0" maxOccurs="1">
171                            <xs:complexType>
172                                <xs:sequence>
173                                    <xs:element name="listener" type="listener" minOccurs="0" maxOccurs="unbounded"/>
174                                </xs:sequence>
175                            </xs:complexType>
176                        </xs:element>
177                        <xs:element name="security" type="security" minOccurs="0" maxOccurs="1"/>
178                    </xs:sequence>
179                </xs:extension>
180            </xs:complexContent>
181        </xs:complexType>
182    </xs:element>
183
184    <xs:element name="hazelcast">
185        <xs:complexType>
186            <xs:complexContent>
187                <xs:extension base="hazelcast-bean">
188                    <xs:sequence>
189                        <xs:element ref="config" minOccurs="0" maxOccurs="1"/>
190                    </xs:sequence>
191                </xs:extension>
192            </xs:complexContent>
193        </xs:complexType>
194    </xs:element>
195
196    <xs:element name="client">
197        <xs:complexType>
198            <xs:complexContent>
199                <xs:extension base="hazelcast-bean">
200                    <xs:sequence>
201                        <xs:element name="member" type="member" minOccurs="0"
202                                    maxOccurs="unbounded"/>
203                    </xs:sequence>
204                    <xs:attribute name="group-name" type="xs:string" use="optional"/>
205                    <xs:attribute name="group-password" type="xs:string" use="optional"/>
206                    <xs:attribute name="auto-update-members" type="xs:string" use="optional" default="true"/>
207                    <xs:attribute name="shuffle-members" type="xs:string" use="optional"/>
208                    <xs:attribute name="connect-attempt-limit" type="xs:string" use="optional"/>
209                    <xs:attribute name="connect-timeout" type="xs:string" use="optional"/>
210                    <xs:attribute name="reconnect-attempt-limit" type="xs:string" use="optional"/>
211                    <xs:attribute name="reconnect-timeout" type="xs:string" use="optional"/>
212                    <xs:attribute name="credentials-ref" type="xs:string" use="optional"/>
213                </xs:extension>
214            </xs:complexContent>
215        </xs:complexType>
216    </xs:element>
217
218    <xs:element name="map" type="hazelcast-type"/>
219    <xs:element name="multiMap" type="hazelcast-type"/>
220    <xs:element name="queue" type="hazelcast-type"/>
221    <xs:element name="topic" type="hazelcast-type"/>
222    <xs:element name="set" type="hazelcast-type"/>
223    <xs:element name="list" type="hazelcast-type"/>
224    <xs:element name="executorService" type="hazelcast-type"/>
225    <xs:element name="idGenerator" type="hazelcast-type"/>
226    <xs:element name="atomicNumber" type="hazelcast-type"/>
227    <xs:element name="countDownLatch" type="hazelcast-type"/>
228    <xs:element name="semaphore" type="hazelcast-type"/>
229    <xs:element name="lock" type="hazelcast-type"/>
230
231    <xs:element name="hibernate-cache-provider" type="hibernate-cache"/>
232    <xs:element name="hibernate-region-factory" type="hibernate-cache"/>
233
234    <!-- internal elements -->
235    <xs:complexType name="hazelcast-bean">
236        <xs:attribute name="id" type="xs:string" use="optional">
237            <xs:annotation>
238                <xs:documentation>
239                    <![CDATA[The unique identifier for a bean.
240                    A bean id may not be used more than once within the same <beans> element.]]>
241                </xs:documentation>
242            </xs:annotation>
243        </xs:attribute>
244        <xs:attribute name="lazy-init" type="xs:string" use="optional" default="false">
245            <xs:annotation>
246                <xs:documentation>
247                    <![CDATA[Indicates whether or not this bean is to be lazily initialized.
248                    If false, it will be instantiated on startup by bean factories that perform
249                    eager initialization of singletons.]]>
250                </xs:documentation>
251            </xs:annotation>
252        </xs:attribute>
253        <xs:attribute name="scope" type="xs:string" use="optional" default="singleton">
254            <xs:annotation>
255                <xs:documentation>
256                    <![CDATA[The scope of this bean: typically "singleton", or "prototype".]]>
257                </xs:documentation>
258            </xs:annotation>
259        </xs:attribute>
260        <xs:attribute name="depends-on" type="xs:string" use="optional">
261            <xs:annotation>
262                <xs:documentation>
263                    <![CDATA[The names of the beans that this bean depends on being initialized.]]>
264                </xs:documentation>
265            </xs:annotation>
266        </xs:attribute>
267    </xs:complexType>
268
269    <xs:complexType name="hazelcast-type">
270        <xs:complexContent>
271            <xs:extension base="hazelcast-bean">
272                <xs:sequence/>
273                <xs:attribute name="instance-ref" type="xs:string" use="required">
274                    <xs:annotation>
275                        <xs:documentation>
276                            <![CDATA[The name of the HazelcastInstance that this bean depends on.]]>
277                        </xs:documentation>
278                    </xs:annotation>
279                </xs:attribute>
280                <xs:attribute name="name" type="xs:string" use="required">
281                    <xs:annotation>
282                        <xs:documentation>
283                            <![CDATA[The name of this bean in Hazelcast context (HazelcastInstance.getMap(name)).]]>
284                        </xs:documentation>
285                    </xs:annotation>
286                </xs:attribute>
287            </xs:extension>
288        </xs:complexContent>
289    </xs:complexType>
290
291    <xs:complexType name="network">
292        <xs:sequence>
293            <xs:element name="outbound-ports" type="outbound-ports" minOccurs="0" maxOccurs="1" />
294            <xs:element name="join" type="join" minOccurs="0" maxOccurs="1"/>
295            <xs:element name="interfaces" type="interfaces" minOccurs="0" maxOccurs="1"/>
296            <xs:element name="ssl" type="ssl" minOccurs="0" maxOccurs="1"/>
297            <xs:element name="socket-interceptor" type="socket-interceptor" minOccurs="0" maxOccurs="1"/>
298            <xs:element name="symmetric-encryption" type="symmetric-encryption" minOccurs="0" maxOccurs="1"/>
299            <xs:element name="asymmetric-encryption" type="asymmetric-encryption" minOccurs="0" maxOccurs="1"/>
300        </xs:sequence>
301        <xs:attribute name="public-address" type="xs:string" use="optional"/>
302        <xs:attribute name="port" type="xs:string" use="required"/>
303        <xs:attribute name="port-auto-increment" type="xs:string" use="optional" default="true"/>
304    </xs:complexType>
305
306    <xs:complexType name="tcp-ip">
307        <xs:sequence>
308            <xs:element name="required-member" type="xs:string" minOccurs="0" maxOccurs="1"/>
309            <xs:choice>
310                <xs:element name="members" type="members" default="127.0.0.1"/>
311                <xs:sequence>
312                    <xs:element name="member" type="member" default="127.0.0.1" minOccurs="0" maxOccurs="unbounded"/>
313                </xs:sequence>
314                <xs:sequence>
315                    <xs:element name="interface" type="interface" minOccurs="0" maxOccurs="unbounded"/>
316                </xs:sequence>
317            </xs:choice>
318        </xs:sequence>
319        <xs:attribute name="enabled" type="xs:string" use="optional" default="false"/>
320    </xs:complexType>
321
322    <xs:complexType name="multicast">
323        <xs:sequence/>
324        <xs:attribute name="enabled" type="xs:string" use="optional" default="true"/>
325        <xs:attribute name="multicast-group" type="xs:string" use="optional" default="224.2.2.3"/>
326        <xs:attribute name="multicast-port" type="xs:string" use="optional" default="54327"/>
327        <xs:attribute name="multicast-timeout-seconds" type="xs:string" use="optional" default="2"/>
328        <xs:attribute name="multicast-time-to-live" type="xs:string" use="optional" default="32"/>
329    </xs:complexType>
330
331    <xs:complexType name="aws">
332        <xs:sequence/>
333        <xs:attribute name="enabled" type="xs:string" use="optional" default="true"/>
334        <xs:attribute name="access-key" type="xs:string" use="optional" default=""/>
335        <xs:attribute name="secret-key" type="xs:string" use="optional" default=""/>
336        <xs:attribute name="region" type="xs:string" use="optional" default=""/>
337        <xs:attribute name="host-header" type="xs:string" use="optional" default=""/>
338        <xs:attribute name="security-group-name" type="xs:string" use="optional" default=""/>
339        <xs:attribute name="tag-key" type="xs:string" use="optional" default=""/>
340        <xs:attribute name="tag-value" type="xs:string" use="optional" default=""/>
341    </xs:complexType>
342
343    <xs:complexType name="merge-policies">
344        <xs:sequence>
345            <xs:element name="map-merge-policy" type="map-merge-policy" minOccurs="1" maxOccurs="unbounded"/>
346        </xs:sequence>
347    </xs:complexType>
348
349    <xs:complexType name="map-merge-policy">
350        <xs:attribute name="name" type="xs:string" use="required"/>
351        <xs:attribute name="class-name" type="xs:string" use="optional"/>
352        <xs:attribute name="implementation" type="xs:string" use="optional"/>
353    </xs:complexType>
354
355    <xs:complexType name="outbound-ports">
356        <xs:sequence>
357            <xs:element name="ports" minOccurs="0" maxOccurs="unbounded">
358                <xs:simpleType>
359                    <xs:restriction base="xs:string" />
360                </xs:simpleType>
361            </xs:element>
362        </xs:sequence>
363    </xs:complexType>
364    
365    <xs:complexType name="join">
366        <xs:sequence>
367            <xs:element name="multicast" type="multicast" minOccurs="0"/>
368            <xs:element name="tcp-ip" type="tcp-ip" minOccurs="0"/>
369            <xs:element name="aws" type="aws" minOccurs="0"/>
370        </xs:sequence>
371    </xs:complexType>
372
373    <xs:complexType name="interfaces">
374        <xs:sequence>
375            <xs:element name="interface" type="interface" default="127.0.0.1"/>
376        </xs:sequence>
377        <xs:attribute name="enabled" type="xs:string" use="optional" default="false"/>
378    </xs:complexType>
379
380    <xs:simpleType name="interface">
381        <xs:restriction base="xs:string"/>
382    </xs:simpleType>
383
384    <xs:simpleType name="member">
385        <xs:restriction base="xs:string"/>
386    </xs:simpleType>
387
388    <xs:simpleType name="members">
389        <xs:restriction base="xs:string"/>
390    </xs:simpleType>
391
392    <xs:complexType name="group">
393        <xs:sequence/>
394        <xs:attribute name="name" type="xs:string" use="required"/>
395        <xs:attribute name="password" type="xs:string" use="required"/>
396    </xs:complexType>
397
398    <xs:simpleType name="propertyNameEnum">
399        <xs:restriction base="xs:string">
400            <xs:enumeration value="hazelcast.merge.first.run.delay.seconds"/>
401            <xs:enumeration value="hazelcast.merge.next.run.delay.seconds"/>
402            <xs:enumeration value="hazelcast.redo.wait.millis"/>
403            <xs:enumeration value="hazelcast.socket.bind.any"/>
404            <xs:enumeration value="hazelcast.serializer.gzip.enabled"/>
405            <xs:enumeration value="hazelcast.serializer.shared"/>
406            <xs:enumeration value="hazelcast.shutdownhook.enabled"/>
407            <xs:enumeration value="hazelcast.wait.seconds.before.join"/>
408            <xs:enumeration value="hazelcast.max.no.heartbeat.seconds"/>
409            <xs:enumeration value="hazelcast.initial.wait.seconds"/>
410            <xs:enumeration value="hazelcast.restart.on.max.idle"/>
411            <xs:enumeration value="hazelcast.map.partition.count"/>
412            <xs:enumeration value="hazelcast.map.remove.delay.seconds"/>
413            <xs:enumeration value="hazelcast.map.cleanup.delay.seconds"/>
414            <xs:enumeration value="hazelcast.executor.query.thread.count"/>
415            <xs:enumeration value="hazelcast.executor.event.thread.count"/>
416            <xs:enumeration value="hazelcast.executor.migration.thread.count"/>
417            <xs:enumeration value="hazelcast.executor.client.thread.count"/>
418            <xs:enumeration value="hazelcast.executor.store.thread.count"/>
419            <xs:enumeration value="hazelcast.log.state"/>
420            <xs:enumeration value="hazelcast.jmx"/>
421            <xs:enumeration value="hazelcast.jmx.detailed"/>
422            <xs:enumeration value="hazelcast.mancenter.enabled"/>
423            <xs:enumeration value="hazelcast.memcache.enabled"/>
424            <xs:enumeration value="hazelcast.rest.enabled"/>
425            <xs:enumeration value="hazelcast.map.load.chunk.size"/>
426            <xs:enumeration value="hazelcast.in.thread.priority"/>
427            <xs:enumeration value="hazelcast.out.thread.priority"/>
428            <xs:enumeration value="hazelcast.service.thread.priority"/>
429            <xs:enumeration value="hazelcast.socket.receive.buffer.size"/>
430            <xs:enumeration value="hazelcast.socket.send.buffer.size"/>
431            <xs:enumeration value="hazelcast.socket.keep.alive"/>
432            <xs:enumeration value="hazelcast.socket.no.delay"/>
433            <xs:enumeration value="hazelcast.heartbeat.interval.seconds"/>
434            <xs:enumeration value="hazelcast.icmp.enabled"/>
435            <xs:enumeration value="hazelcast.initial.min.cluster.size"/>
436            <xs:enumeration value="hazelcast.mc.atomicnumber.excludes"/>
437            <xs:enumeration value="hazelcast.mc.countdownlatch.excludes"/>
438            <xs:enumeration value="hazelcast.mc.map.excludes"/>
439            <xs:enumeration value="hazelcast.mc.queue.excludes"/>
440            <xs:enumeration value="hazelcast.mc.semaphore.excludes"/>
441            <xs:enumeration value="hazelcast.mc.topic.excludes"/>
442            <xs:enumeration value="hazelcast.version.check.enabled"/>
443            <xs:enumeration value="hazelcast.map.max.backup.count"/>
444            <xs:enumeration value="hazelcast.topic.flow.control.enabled"/>
445            <xs:enumeration value="hazelcast.max.wait.seconds.before.join"/>
446            <xs:enumeration value="hazelcast.mc.max.visible.instance.count"/>
447            <xs:enumeration value="hazelcast.logging.type"/>
448        </xs:restriction>
449    </xs:simpleType>
450    <xs:simpleType name="propertyNameString">
451        <xs:restriction base="non-space-string"/>
452    </xs:simpleType>
453    <xs:simpleType name="propertyName">
454        <xs:union memberTypes="propertyNameEnum propertyNameString"/>
455    </xs:simpleType>
456    <xs:complexType name="property">
457        <xs:simpleContent>
458            <xs:extension base="xs:string">
459                <xs:attribute name="name" use="required" type="propertyName"/>
460            </xs:extension>
461        </xs:simpleContent>
462    </xs:complexType>
463
464    <xs:complexType name="properties">
465        <xs:sequence minOccurs="0" maxOccurs="unbounded">
466            <xs:element name="property" type="property"/>
467        </xs:sequence>
468    </xs:complexType>
469
470    <xs:complexType name="ssl">
471        <xs:sequence>
472            <xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
473        </xs:sequence>
474        <xs:attribute name="enabled" default="false" type="xs:string"/>
475        <xs:attribute name="factory-class-name" type="xs:string" use="optional"/>
476        <xs:attribute name="factory-implementation" type="xs:string" use="optional"/>
477    </xs:complexType>
478
479    <xs:complexType name="socket-interceptor">
480        <xs:sequence>
481            <xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
482        </xs:sequence>
483        <xs:attribute name="enabled" default="false" type="xs:string"/>
484        <xs:attribute name="class-name" type="xs:string" use="optional"/>
485        <xs:attribute name="implementation" type="xs:string" use="optional"/>
486    </xs:complexType>
487
488    <xs:complexType name="symmetric-encryption">
489        <xs:sequence/>
490        <xs:attribute name="enabled" type="xs:string" use="optional" default="false"/>
491        <xs:attribute name="algorithm" use="optional" type="xs:string"/>
492        <xs:attribute name="salt" use="optional" type="xs:string"/>
493        <xs:attribute name="password" use="optional" type="xs:string"/>
494        <xs:attribute name="iteration-count" use="optional" type="xs:string"/>
495    </xs:complexType>
496
497    <xs:complexType name="asymmetric-encryption">
498        <xs:sequence/>
499        <xs:attribute name="enabled" type="xs:string" use="optional" default="false"/>
500        <xs:attribute name="algorithm" use="optional" type="xs:string"/>
501        <xs:attribute name="key-password" use="optional" type="xs:string"/>
502        <xs:attribute name="key-alias" use="optional" type="xs:string"/>
503        <xs:attribute name="store-type" use="optional" type="xs:string"/>
504        <xs:attribute name="store-password" use="optional" type="xs:string"/>
505        <xs:attribute name="store-path" use="optional" type="xs:string"/>
506    </xs:complexType>
507
508    <xs:complexType name="hibernate-cache">
509        <xs:complexContent>
510            <xs:extension base="hazelcast-bean">
511                <xs:attribute name="instance-ref" type="xs:string" use="required"/>
512            </xs:extension>
513        </xs:complexContent>
514    </xs:complexType>
515
516    <xs:simpleType name="non-space-string">
517        <xs:restriction base="xs:string">
518            <xs:pattern value="\S.*"/>
519        </xs:restriction>
520    </xs:simpleType>
521
522    <xs:complexType name="wan-replication">
523        <xs:sequence>
524            <xs:element name="target-cluster" minOccurs="1" maxOccurs="unbounded">
525                <xs:complexType>
526                    <xs:sequence>
527                        <xs:choice minOccurs="1" maxOccurs="1">
528                            <xs:element name="replication-impl">
529                                <xs:simpleType>
530                                    <xs:restriction base="xs:string"/>
531                                </xs:simpleType>
532                            </xs:element>
533                            <xs:element name="replication-impl-object">
534                                <xs:complexType>
535                                    <xs:complexContent>
536                                        <xs:extension base="hazelcast-bean">
537                                            <xs:attribute name="ref" type="xs:string" use="required"/>
538                                        </xs:extension>
539                                    </xs:complexContent>
540                                </xs:complexType>
541                            </xs:element>
542                        </xs:choice>
543                        <xs:element name="end-points" minOccurs="1" maxOccurs="1">
544                            <xs:complexType>
545                                <xs:sequence>
546                                    <xs:element name="address" minOccurs="1" maxOccurs="unbounded">
547                                        <xs:simpleType>
548                                            <xs:restriction base="xs:string"/>
549                                        </xs:simpleType>
550                                    </xs:element>
551                                </xs:sequence>
552                            </xs:complexType>
553                        </xs:element>
554                    </xs:sequence>
555                    <xs:attribute name="group-name" use="required">
556                        <xs:simpleType>
557                            <xs:restriction base="xs:string"/>
558                        </xs:simpleType>
559                    </xs:attribute>
560                    <xs:attribute name="group-password" use="required">
561                        <xs:simpleType>
562                            <xs:restriction base="xs:string"/>
563                        </xs:simpleType>
564                    </xs:attribute>
565                </xs:complexType>
566            </xs:element>
567        </xs:sequence>
568        <xs:attribute name="name" use="required">
569            <xs:simpleType>
570                <xs:restriction base="xs:string"/>
571            </xs:simpleType>
572        </xs:attribute>
573    </xs:complexType>
574
575    <xs:complexType name="partition-group">
576        <xs:sequence>
577            <xs:element name="member-group" minOccurs="0" maxOccurs="unbounded">
578                <xs:complexType>
579                    <xs:sequence>
580                        <xs:element name="interface" type="interface" minOccurs="0" maxOccurs="unbounded"/>
581                    </xs:sequence>
582                </xs:complexType>
583            </xs:element>
584        </xs:sequence>
585        <xs:attribute name="enabled" type="xs:boolean" use="required"/>
586        <xs:attribute name="group-type" type="xs:string" use="optional"/>
587    </xs:complexType>
588
589    <xs:complexType name="management-center">
590        <xs:attribute name="enabled" type="xs:string" default="false" use="optional"/>
591        <xs:attribute name="url" type="xs:string" use="optional"/>
592        <xs:attribute name="update-interval" type="xs:string" default="3" use="optional"/>
593    </xs:complexType>
594
595    <xs:complexType name="listener">
596        <xs:attribute name="class-name" type="xs:string" use="optional"/>
597        <xs:attribute name="implementation" type="xs:string" use="optional"/>
598    </xs:complexType>
599    <xs:complexType name="item-listener">
600        <xs:complexContent>
601            <xs:extension base="listener">
602                <xs:attribute name="include-value" type="xs:string" use="optional" default="true"/>
603            </xs:extension>
604        </xs:complexContent>
605    </xs:complexType>
606    <xs:complexType name="entry-listener">
607        <xs:complexContent>
608            <xs:extension base="item-listener">
609                <xs:attribute name="local" type="xs:string" use="optional" default="false"/>
610            </xs:extension>
611        </xs:complexContent>
612    </xs:complexType>
613
614    <xs:complexType name="security">
615        <xs:sequence>
616            <xs:element name="member-credentials-factory" minOccurs="0" maxOccurs="1">
617                <xs:complexType>
618                    <xs:sequence>
619                        <xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
620                    </xs:sequence>
621                    <xs:attribute name="class-name" type="non-space-string" use="optional"/>
622                    <xs:attribute name="implementation" type="non-space-string" use="optional"/>
623                </xs:complexType>
624            </xs:element>
625            <xs:element name="member-login-modules" type="login-modules" minOccurs="0" maxOccurs="1"/>
626            <xs:element name="client-login-modules" type="login-modules" minOccurs="0" maxOccurs="1"/>
627            <xs:element name="client-permission-policy" minOccurs="0" maxOccurs="1">
628                <xs:complexType>
629                    <xs:sequence>
630                        <xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
631                    </xs:sequence>
632                    <xs:attribute name="class-name" type="non-space-string" use="optional"/>
633                    <xs:attribute name="implementation" type="non-space-string" use="optional"/>
634                </xs:complexType>
635            </xs:element>
636            <xs:element name="client-permissions" minOccurs="0" maxOccurs="1">
637                <xs:complexType>
638                    <xs:sequence>
639                        <xs:element name="all-permissions" type="base-permisson" minOccurs="0" maxOccurs="1"/>
640                        <xs:element name="map-permission" type="instance-permisson" minOccurs="0"
641                                    maxOccurs="unbounded"/>
642                        <xs:element name="queue-permission" type="instance-permisson" minOccurs="0"
643                                    maxOccurs="unbounded"/>
644                        <xs:element name="multimap-permission" type="instance-permisson" minOccurs="0"
645                                    maxOccurs="unbounded"/>
646                        <xs:element name="topic-permission" type="instance-permisson" minOccurs="0"
647                                    maxOccurs="unbounded"/>
648                        <xs:element name="list-permission" type="instance-permisson" minOccurs="0"
649                                    maxOccurs="unbounded"/>
650                        <xs:element name="set-permission" type="instance-permisson" minOccurs="0"
651                                    maxOccurs="unbounded"/>
652                        <xs:element name="lock-permission" type="instance-permisson" minOccurs="0"
653                                    maxOccurs="unbounded"/>
654                        <xs:element name="atomic-number-permission" type="instance-permisson" minOccurs="0"
655                                    maxOccurs="unbounded"/>
656                        <xs:element name="countdown-latch-permission" type="instance-permisson" minOccurs="0"
657                                    maxOccurs="unbounded"/>
658                        <xs:element name="semaphore-permission" type="instance-permisson" minOccurs="0"
659                                    maxOccurs="unbounded"/>
660                        <xs:element name="id-generator-permission" type="instance-permisson" minOccurs="0"
661                                    maxOccurs="unbounded"/>
662                        <xs:element name="executor-service-permission" type="instance-permisson" minOccurs="0"
663                                    maxOccurs="unbounded"/>
664                        <xs:element name="transaction-permission" type="base-permisson" minOccurs="0" maxOccurs="1"/>
665                        <xs:element name="listener-permisson" minOccurs="0" maxOccurs="unbounded">
666                            <xs:complexType>
667                                <xs:complexContent>
668                                    <xs:extension base="base-permisson">
669                                        <xs:attribute name="name" type="non-space-string" use="required"/>
670                                    </xs:extension>
671                                </xs:complexContent>
672                            </xs:complexType>
673                        </xs:element>
674                    </xs:sequence>
675                </xs:complexType>
676            </xs:element>
677        </xs:sequence>
678        <xs:attribute name="enabled" type="xs:string" default="false"/>
679    </xs:complexType>
680
681    <xs:complexType name="login-modules">
682        <xs:sequence>
683            <xs:element name="login-module" type="login-module" minOccurs="0" maxOccurs="unbounded"/>
684        </xs:sequence>
685    </xs:complexType>
686
687    <xs:complexType name="login-module">
688        <xs:sequence>
689            <xs:element name="properties" type="properties" minOccurs="0" maxOccurs="1"/>
690        </xs:sequence>
691        <xs:attribute name="class-name" type="non-space-string" use="required"/>
692        <xs:attribute name="usage" use="optional" default="required">
693            <xs:simpleType>
694                <xs:union>
695                    <xs:simpleType>
696                        <xs:restriction base="xs:string">
697                            <xs:enumeration value="REQUIRED"/>
698                            <xs:enumeration value="OPTIONAL"/>
699                            <xs:enumeration value="REQUISITE"/>
700                            <xs:enumeration value="SUFFICIENT"/>
701                        </xs:restriction>
702                    </xs:simpleType>
703                    <xs:simpleType>
704                        <xs:restriction base="non-space-string"/>
705                    </xs:simpleType>
706                </xs:union>
707            </xs:simpleType>
708        </xs:attribute>
709    </xs:complexType>
710
711    <xs:complexType name="base-permisson">
712        <xs:sequence>
713            <xs:element name="endpoints" type="endpoints" minOccurs="0" maxOccurs="1"/>
714        </xs:sequence>
715        <xs:attribute name="principal" type="xs:string" use="optional" default="*">
716            <xs:annotation>
717                <xs:documentation>
718                    Name of the principal. Wildcards(*) can be used.
719                </xs:documentation>
720            </xs:annotation>
721        </xs:attribute>
722    </xs:complexType>
723
724    <xs:complexType name="instance-permisson">
725        <xs:complexContent>
726            <xs:extension base="base-permisson">
727                <xs:sequence>
728                    <xs:element name="actions" type="actions" minOccurs="1" maxOccurs="1"/>
729                </xs:sequence>
730                <xs:attribute name="name" type="xs:string" use="required">
731                    <xs:annotation>
732                        <xs:documentation>
733                            Name of the permission. Wildcards(*) can be used.
734                        </xs:documentation>
735                    </xs:annotation>
736                </xs:attribute>
737            </xs:extension>
738        </xs:complexContent>
739    </xs:complexType>
740
741    <xs:complexType name="endpoints">
742        <xs:sequence>
743            <xs:element name="endpoint" minOccurs="1" maxOccurs="unbounded" default="127.0.0.1">
744                <xs:annotation>
745                    <xs:documentation>
746                        Endpoint address of principal. Wildcards(*) can be used.
747                    </xs:documentation>
748                </xs:annotation>
749                <xs:simpleType>
750                    <xs:restriction base="xs:string"/>
751                </xs:simpleType>
752            </xs:element>
753        </xs:sequence>
754    </xs:complexType>
755
756    <xs:complexType name="actions">
757        <xs:sequence>
758            <xs:element name="action" minOccurs="1" maxOccurs="unbounded">
759                <xs:annotation>
760                    <xs:documentation>
761                        Permission actions that are permitted on Hazelcast instance objects.
762                    </xs:documentation>
763                </xs:annotation>
764                <xs:simpleType>
765                    <xs:union>
766                        <xs:simpleType>
767                            <xs:restriction base="xs:string">
768                                <xs:enumeration value="all"/>
769                                <xs:enumeration value="create"/>
770                                <xs:enumeration value="destroy"/>
771                                <xs:enumeration value="put"/>
772                                <xs:enumeration value="add"/>
773                                <xs:enumeration value="get"/>
774                                <xs:enumeration value="set"/>
775                                <xs:enumeration value="remove"/>
776                                <xs:enumeration value="offer"/>
777                                <xs:enumeration value="poll"/>
778                                <xs:enumeration value="take"/>
779                                <xs:enumeration value="lock"/>
780                                <xs:enumeration value="listen"/>
781                                <xs:enumeration value="publish"/>
782                                <xs:enumeration value="increment"/>
783                                <xs:enumeration value="decrement"/>
784                                <xs:enumeration value="execute"/>
785                                <xs:enumeration value="countdown"/>
786                                <xs:enumeration value="acquire"/>
787                                <xs:enumeration value="release"/>
788                                <xs:enumeration value="drain"/>
789                                <xs:enumeration value="statistics"/>
790                            </xs:restriction>
791                        </xs:simpleType>
792                        <xs:simpleType>
793                            <xs:restriction base="non-space-string"/>
794                        </xs:simpleType>
795                    </xs:union>
796                </xs:simpleType>
797            </xs:element>
798        </xs:sequence>
799    </xs:complexType>
800
801</xs:schema>