-
Notifications
You must be signed in to change notification settings - Fork 76
/
FrankConfig-compatibility.xsd
18255 lines (18252 loc) · 886 KB
/
FrankConfig-compatibility.xsd
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="7.8.2">
<xs:element name="Configuration" type="ConfigurationType" />
<xs:complexType name="ConfigurationType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Adapter" minOccurs="0" maxOccurs="unbounded" type="AdapterType" />
<xs:element name="Scheduler" minOccurs="0" maxOccurs="1" type="SchedulerType" />
<xs:group ref="JobElementGroup" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="SapSystems" minOccurs="0" maxOccurs="1" type="SapSystemsType" />
<xs:element name="JmsRealms" minOccurs="0" maxOccurs="1" type="JmsRealmsType" />
<xs:element name="JmsRealm" minOccurs="0" maxOccurs="unbounded" type="JmsRealmType" />
<xs:element name="Monitoring" minOccurs="0" maxOccurs="1" type="MonitoringType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="autoStart" type="frankBoolean">
<xs:annotation>
<xs:documentation>If the Configuration should automatically start all Adapters and Jobs.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Configurations should be wired through Spring, which in turn should call #setBeanName(String).
Once the ConfigurationContext has a name it should not be changed anymore, hence
super.setBeanName(String) only sets the name once.
If not created by Spring, the setIdCalled flag in AbstractRefreshableConfigApplicationContext wont be set, allowing the name to be updated.
The DisplayName will always be updated, which is purely used for logging purposes.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.configuration.Configuration" use="prohibited" />
<xs:attribute ref="active" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="AdapterType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Receiver" minOccurs="1" maxOccurs="unbounded" type="ReceiverType" />
<xs:group ref="ErrorMessageFormatterElementGroup" minOccurs="0" maxOccurs="1" />
<xs:element name="Pipeline" minOccurs="1" maxOccurs="1" type="PipelineType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>name of the adapter</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="description" type="xs:string">
<xs:annotation>
<xs:documentation>some functional description of the <code>Adapter</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="autoStart" type="frankBoolean">
<xs:annotation>
<xs:documentation>AutoStart indicates that the adapter should be started when the configuration
is started. Default: <code>true</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="replaceNullMessage" type="frankBoolean">
<xs:annotation>
<xs:documentation>If <code>true</code> a null message is replaced by an empty message Default: <code>false</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="messageKeeperSize" type="frankInt">
<xs:annotation>
<xs:documentation>number of message displayed in ibisconsole Default: 10</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="requestReplyLogging" type="frankBoolean" />
<xs:attribute name="msgLogHidden" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set to <code>true</code>, the length of the message is shown in the msg log instead of the content of the message Default: <code>false</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="targetDesignDocument" type="xs:string" />
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.core.Adapter" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="adapter" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="ReceiverType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="ListenerElementGroup" minOccurs="1" maxOccurs="1" />
<xs:group ref="SenderElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="InProcessStorageElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="ErrorSenderElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="ErrorStorageElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="MessageLogElementGroup" minOccurs="0" maxOccurs="1" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the Receiver as known to the Adapter</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="onError">
<xs:annotation>
<xs:documentation>One of 'continue' or 'close'. Controls the behaviour of the Receiver when it encounters an error sending a reply or receives an exception asynchronously Default: CONTINUE</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="OnErrorAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="numThreads" type="frankInt">
<xs:annotation>
<xs:documentation>The number of threads that may execute a Pipeline concurrently (only for pulling listeners) Default: 1</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="numThreadsPolling" type="frankInt">
<xs:annotation>
<xs:documentation>The number of threads that are actively polling for messages concurrently. '0' means 'limited only by <code>numthreads</code>' (only for pulling listeners) Default: 1</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="pollInterval" type="frankInt">
<xs:annotation>
<xs:documentation>The number of seconds waited after an unsuccesful poll attempt before another poll attempt is made. Only for polling listeners, not for e.g. ifsa, jms, webservice or javaListeners Default: 10</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="startTimeout" type="frankInt">
<xs:annotation>
<xs:documentation>timeout to start receiver. If this timeout is reached, the Receiver may be stopped again</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="stopTimeout" type="frankInt">
<xs:annotation>
<xs:documentation>timeout to stopped receiver. If this timeout is reached, a new stop command may be issued</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="checkForDuplicates" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set to <code>true</code>, each message is checked for presence in the messageLog. If already present, it is not processed again. Only required for non XA compatible messaging. Requires messageLog! Default: false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="checkForDuplicatesMethod">
<xs:annotation>
<xs:documentation>(Only used when <code>checkForDuplicates=true</code>) Indicates whether the messageid or the correlationid is used for checking presence in the message log Default: MESSAGEID</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="CheckForDuplicatesMethodAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="maxDeliveries" type="frankInt">
<xs:annotation>
<xs:documentation>The maximum delivery count after which to stop processing the message (only for listeners that know the delivery count of received messages). If -1 the delivery count is ignored Default: 5</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxRetries" type="frankInt">
<xs:annotation>
<xs:documentation>The number of times a processing attempt is automatically retried after an exception is caught or rollback is experienced. If <code>maxRetries &lt; 0</code> the number of attempts is infinite Default: 1</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="processResultCacheSize" type="frankInt">
<xs:annotation>
<xs:documentation>Size of the cache to keep process results, used by maxRetries Default: 100</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="returnedSessionKeys" type="xs:string" />
<xs:attribute name="correlationIDXPath" type="xs:string">
<xs:annotation>
<xs:documentation>XPath expression to extract correlationid from message</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="correlationIDNamespaceDefs" type="xs:string">
<xs:annotation>
<xs:documentation>Namespace defintions for correlationIDXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="correlationIDStyleSheet" type="xs:string">
<xs:annotation>
<xs:documentation>Stylesheet to extract correlationID from message</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="labelXPath" type="xs:string">
<xs:annotation>
<xs:documentation>XPath expression to extract label from message</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="labelNamespaceDefs" type="xs:string">
<xs:annotation>
<xs:documentation>Namespace defintions for labelXPath. Must be in the form of a comma or space separated list of <code>prefix=namespaceuri</code>-definitions</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="labelStyleSheet" type="xs:string">
<xs:annotation>
<xs:documentation>Stylesheet to extract label from message</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="chompCharSize" type="xs:string">
<xs:annotation>
<xs:documentation>If set (>=0) and the character data length inside a xml element exceeds this size, the character data is chomped (with a clear comment)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="elementToMove" type="xs:string">
<xs:annotation>
<xs:documentation>If set, the character data in this element is stored under a session key and in the message replaced by a reference to this session key: {sessionkey: + <code>elementToMoveSessionKey</code> + }</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="elementToMoveSessionKey" type="xs:string">
<xs:annotation>
<xs:documentation>(Only used when <code>elementToMove</code> is set) Name of the session key under which the character data is stored Default: ref_ + the name of the element</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="elementToMoveChain" type="xs:string">
<xs:annotation>
<xs:documentation>Like <code>elementToMove</code> but element is preceded with all ancestor elements and separated by semicolons (e.g. adapter;pipeline;pipe)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="removeCompactMsgNamespaces" type="frankBoolean" />
<xs:attribute name="hideRegex" type="xs:string">
<xs:annotation>
<xs:documentation>Regular expression to mask strings in the errorStore/logStore. Every character between to the strings in this expression will be replaced by a '*'. For example, the regular expression (?&lt;=&lt;party&gt;).*?(?=&lt;/party&gt;) will replace every character between keys &lt;party&gt; and &lt;/party&gt;</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="hideMethod">
<xs:annotation>
<xs:documentation>Only used when hideRegex is not empty Default: all</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="HideMethodAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="hiddenInputSessionKeys" type="xs:string">
<xs:annotation>
<xs:documentation>Comma separated list of keys of session variables which are available when the <code>PipelineSession</code> is created and of which the value will not be shown in the log (replaced by asterisks)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="forceRetryFlag" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set to <code>true</code>, every message read will be processed as if it is being retried, by setting a session variable 'retry' Default: false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="numberOfExceptionsCaughtWithoutMessageBeingReceivedThreshold" type="frankInt">
<xs:annotation>
<xs:documentation>Number of connection attemps to put the adapter in warning status Default: 5</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transacted" type="frankBoolean" />
<xs:attribute ref="transactionTimeout" />
<xs:attribute ref="transactionAttribute" />
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.receivers.Receiver" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="receiver" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="ParamType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Param" minOccurs="0" maxOccurs="unbounded" type="ParamType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the parameter</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type">
<xs:annotation>
<xs:documentation>The target data type of the parameter, related to the database or XSLT stylesheet to which the parameter is applied.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="ParameterTypeAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="value" type="xs:string">
<xs:annotation>
<xs:documentation>The value of the parameter, or the base for transformation using xpathExpression or stylesheet, or formatting.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sessionKey" type="xs:string">
<xs:annotation>
<xs:documentation>Key of a PipelineSession-variable. <br/>If specified, the value of the PipelineSession variable is used as input for
the xpathExpression or stylesheet, instead of the current input message. <br/>If no xpathExpression or stylesheet are
specified, the value itself is returned. <br/>If the value '*' is specified, all existing sessionkeys are added as
parameter of which the name starts with the name of this parameter. <br/>If also the name of the parameter has the
value '*' then all existing sessionkeys are added as parameter (except tsReceived)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="contextKey" type="xs:string">
<xs:annotation>
<xs:documentation>key of message context variable to use as source, instead of the message found from input message or sessionKey itself</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="sessionKeyXPath" type="xs:string">
<xs:annotation>
<xs:documentation>Instead of a fixed <code>sessionKey</code> it's also possible to use a XPath expression applied to the input message to extract the name of the session-variable.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="styleSheetName" type="xs:string">
<xs:annotation>
<xs:documentation>URL to a stylesheet that wil be applied to the contents of the message or the value of the session-variable.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="xpathExpression" type="xs:string">
<xs:annotation>
<xs:documentation>the XPath expression to extract the parameter value from the (xml formatted) input or session-variable.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="xsltVersion" type="frankInt">
<xs:annotation>
<xs:documentation>when set to <code>2</code> xslt processor 2.0 (net.sf.saxon) will be used, otherwise xslt processor 1.0 (org.apache.xalan). <code>0</code> will auto detect Default: 0</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="xslt2" type="frankBoolean" />
<xs:attribute name="namespaceDefs" type="xs:string">
<xs:annotation>
<xs:documentation>Namespace defintions for xpathExpression. Must be in the form of a comma or space separated list of
<code>prefix=namespaceuri</code>-definitions. One entry can be without a prefix, that will define the default namespace.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="removeNamespaces" type="frankBoolean">
<xs:annotation>
<xs:documentation>When set <code>true</code> namespaces (and prefixes) in the input message are removed before the stylesheet/xpathExpression is executed Default: <code>false</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultValue" type="xs:string">
<xs:annotation>
<xs:documentation>If the result of sessionKey, xpathExpression and/or stylesheet returns null or an empty string, this value is returned</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="defaultValueMethods" type="xs:string">
<xs:annotation>
<xs:documentation>Comma separated list of methods (<code>defaultValue</code>, <code>sessionKey</code>, <code>pattern</code>, <code>value</code> or <code>input</code>) to use as default value. Used in the order they appear until a non-null value is found. Default: <code>defaultValue</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="pattern" type="xs:string">
<xs:annotation>
<xs:documentation>Value of parameter is determined using substitution and formatting, following MessageFormat syntax with named parameters. The expression can contain references
to session-variables or other parameters using {name-of-parameter} and is formatted using java.text.MessageFormat.
<br/>If for instance <code>fname</code> is a parameter or session variable that resolves to eric, then the pattern
'hi {fname}, hoe gaat het?' resolves to 'hi eric, hoe gaat het?'.<br/>
The following predefined reference can be used in the expression too:<ul>
<li>{now}: the current system time</li>
<li>{uid}: an unique identifier, based on the IP address and java.rmi.server.UID</li>
<li>{uuid}: an unique identifier, based on the IP address and java.util.UUID</li>
<li>{hostname}: the name of the machine the application runs on</li>
<li>{username}: username from the credentials found using authAlias, or the username attribute</li>
<li>{password}: password from the credentials found using authAlias, or the password attribute</li>
<li>{fixeddate}: fake date, for testing only</li>
<li>{fixeduid}: fake uid, for testing only</li>
<li>{fixedhostname}: fake hostname, for testing only</li>
</ul>
A guid can be generated using {hostname}_{uid}, see also
<a href="http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html">http://java.sun.com/j2se/1.4.2/docs/api/java/rmi/server/uid.html</a> for more information about (g)uid's or
<a href="http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html">http://docs.oracle.com/javase/1.5.0/docs/api/java/util/uuid.html</a> for more information about uuid's.
<br/>
When combining a date or time <code>pattern</code> like {now} or {fixeddate} with a DATE, TIME, DATETIME or TIMESTAMP <code>type</code>, the effective value of the attribute
<code>formatString</code> must match the effective value of the formatString in the <code>pattern</code>.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="authAlias" type="xs:string">
<xs:annotation>
<xs:documentation>Alias used to obtain username and password, used when a <code>pattern</code> containing {username} or {password} is specified</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="username" type="xs:string">
<xs:annotation>
<xs:documentation>Default username that is used when a <code>pattern</code> containing {username} is specified</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="userName" type="xs:string" />
<xs:attribute name="password" type="xs:string">
<xs:annotation>
<xs:documentation>Default password that is used when a <code>pattern</code> containing {password} is specified</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ignoreUnresolvablePatternElements" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set <code>true</code> pattern elements that cannot be resolved to a parameter or sessionKey are silently resolved to an empty string</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="formatString" type="xs:string">
<xs:annotation>
<xs:documentation>Used in combination with types <code>DATE</code>, <code>TIME</code>, <code>DATETIME</code> and <code>TIMESTAMP</code> to parse the raw parameter string data into an object of the respective type Default: depends on type</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="decimalSeparator" type="xs:string">
<xs:annotation>
<xs:documentation>Used in combination with type <code>NUMBER</code> Default: system default</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="groupingSeparator" type="xs:string">
<xs:annotation>
<xs:documentation>Used in combination with type <code>NUMBER</code> Default: system default</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="minLength" type="frankInt">
<xs:annotation>
<xs:documentation>If set (>=0) and the length of the value of the parameter falls short of this minimum length, the value is padded Default: -1</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxLength" type="frankInt">
<xs:annotation>
<xs:documentation>If set (>=0) and the length of the value of the parameter exceeds this maximum length, the length is trimmed to this maximum length Default: -1</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxInclusive" type="xs:string">
<xs:annotation>
<xs:documentation>Used in combination with type <code>number</code>; if set and the value of the parameter exceeds this maximum value, this maximum value is taken</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="minInclusive" type="xs:string">
<xs:annotation>
<xs:documentation>Used in combination with type <code>number</code>; if set and the value of the parameter falls short of this minimum value, this minimum value is taken</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="hidden" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set to <code>true</code>, the value of the parameter will not be shown in the log (replaced by asterisks) Default: <code>false</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.parameters.Parameter" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="param" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="PipelineType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="InputValidatorElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="OutputValidatorElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="InputWrapperElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="OutputWrapperElementGroup" minOccurs="0" maxOccurs="1" />
<xs:element name="Exits" minOccurs="0" maxOccurs="1" type="ExitsType" />
<xs:element name="Exit" minOccurs="0" maxOccurs="unbounded" type="ExitType" />
<xs:element name="Global-forwards" minOccurs="0" maxOccurs="1" type="Global-forwardsType" />
<xs:element name="Forward" minOccurs="0" maxOccurs="unbounded" type="ForwardType" />
<xs:element name="Locker" minOccurs="0" maxOccurs="1" type="LockerType" />
<xs:group ref="CacheElementGroup" minOccurs="0" maxOccurs="1" />
<xs:group ref="PipeElementGroup" minOccurs="1" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
<xs:attribute name="firstPipe" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the first pipe to execute when a message is to be processed Default: first pipe of the pipeline</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxThreads" type="frankInt">
<xs:annotation>
<xs:documentation>Maximum number of threads that may execute this Pipeline simultaneously, use 0 to disable limit Default: 0</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="storeOriginalMessageWithoutNamespaces" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set <code>true</code> the original message without namespaces (and prefixes) is stored under the session key originalMessageWithoutNamespaces Default: false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="messageSizeWarn" type="xs:string">
<xs:annotation>
<xs:documentation>If messageSizeWarn>=0 and the size of the input or result pipe message exceeds the value specified a warning message is logged. You can specify the value with the suffixes <code>KB</code>, <code>MB</code> or <code>GB</code> Default: application default (3MB)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transformNullMessage" type="xs:string">
<xs:annotation>
<xs:documentation>when specified and <code>null</code> is received as a message the message is changed to the specified value</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="adapterToRunBeforeOnEmptyInput" type="xs:string">
<xs:annotation>
<xs:documentation>when specified and an empty message is received the specified adapter is run before passing the message (response from specified adapter) to the pipeline</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transacted" type="frankBoolean" />
<xs:attribute ref="transactionTimeout" />
<xs:attribute ref="transactionAttribute" />
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.core.PipeLine" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="pipeline" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="ForwardType">
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>the <code>name</code> is a symbolic reference to a <code>path</code>.<br/></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="path" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The name of the next Pipe or Exit. When the Pipeline doesn't have an Exits element configured it will be
initialized with one Exit having name READY and state SUCCESS</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.core.PipeForward" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="forward" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="LockerType">
<xs:attribute name="objectId" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Identifier for this lock</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type">
<xs:annotation>
<xs:documentation>Type for this lock: P(ermanent) or T(emporary). A temporary lock is released after the job has completed Default: T</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="LockTypeAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="dateFormatSuffix" type="xs:string">
<xs:annotation>
<xs:documentation>Format for date which is added after <code>objectid</code> (e.g. yyyyMMdd to be sure the job is executed only once a day)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="retention" type="frankInt">
<xs:annotation>
<xs:documentation>The time (for type=P in days and for type=T in hours) to keep the record in the database before making it eligible for deletion by a cleanup process Default: 30 days (type=P), 4 hours (type=T)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="numRetries" type="frankInt">
<xs:annotation>
<xs:documentation>The number of times an attempt should be made to acquire a lock, after this many times an exception is thrown when no lock could be acquired, when -1 the number of retries is unlimited Default: 0</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="firstDelay" type="frankInt">
<xs:annotation>
<xs:documentation>The time in ms to wait before the first attempt to acquire a lock is made Default: 0</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="retryDelay" type="frankInt">
<xs:annotation>
<xs:documentation>The time in ms to wait before another attempt to acquire a lock is made Default: 10000</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="ignoreTableNotExist" type="frankBoolean" />
<xs:attribute name="transactionTimeout" type="frankInt">
<xs:annotation>
<xs:documentation>Timeout (in seconds) of transaction started to process a message. Default: <code>0</code> (use system default)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="lockWaitTimeout" type="frankInt">
<xs:annotation>
<xs:documentation>If > 0: The time in s to wait before the INSERT statement to obtain the lock is canceled. Default: 0</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transactionAttribute">
<xs:annotation>
<xs:documentation>The <code>transactionAttribute</code> declares transactional behavior of execution. It applies both to database transactions and XA transactions.The pipeline uses this to start a new transaction or suspend the current one when required. For developers: it is equalto <a href="https://docs.oracle.com/javaee/7/tutorial/transactions003.htm">EJB transaction attribute</a>. Possible values for transactionAttribute: <table border="1"> <tr><th>transactionAttribute</th><th>callers Transaction</th><th>Pipeline excecuted in Transaction</th></tr> <tr><td colspan="1" rowspan="2">Required</td> <td>none</td><td>T2</td></tr> <tr><td>T1</td> <td>T1</td></tr> <tr><td colspan="1" rowspan="2">RequiresNew</td> <td>none</td><td>T2</td></tr> <tr><td>T1</td> <td>T2</td></tr> <tr><td colspan="1" rowspan="2">Mandatory</td> <td>none</td><td>error</td></tr> <tr><td>T1</td> <td>T1</td></tr> <tr><td colspan="1" rowspan="2">NotSupported</td><td>none</td><td>none</td></tr> <tr><td>T1</td> <td>none</td></tr> <tr><td colspan="1" rowspan="2">Supports</td> <td>none</td><td>none</td></tr> <tr><td>T1</td> <td>T1</td></tr> <tr><td colspan="1" rowspan="2">Never</td> <td>none</td><td>none</td></tr> <tr><td>T1</td> <td>error</td></tr> </table> Default: Supports</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="TransactionAttributeAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute ref="datasourceName" />
<xs:attribute name="authAlias" type="xs:string">
<xs:annotation>
<xs:documentation>Authentication alias used to authenticate when connecting to database</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="username" type="xs:string">
<xs:annotation>
<xs:documentation>User name for authentication when connecting to database, when none found from <code>authAlias</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="password" type="xs:string">
<xs:annotation>
<xs:documentation>Password for authentication when connecting to database, when none found from <code>authAlias</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transacted" type="frankBoolean">
<xs:annotation>
<xs:documentation>controls the use of transactions</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute ref="connectionsArePooled" />
<xs:attribute ref="authentication" />
<xs:attribute ref="credentials" />
<xs:attribute ref="initialContextFactoryName" />
<xs:attribute ref="providerURL" />
<xs:attribute ref="securityProtocol" />
<xs:attribute ref="urlPkgPrefixes" />
<xs:attribute ref="jmsRealm" />
<xs:attribute ref="principal" />
<xs:attribute ref="jndiAuthAlias" />
<xs:attribute ref="jndiContextPrefix" />
<xs:attribute ref="jndiProperties" />
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the sender or the listener</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.util.Locker" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="locker" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="ExitsType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Exit" minOccurs="1" maxOccurs="unbounded" type="ExitType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.core.PipeLineExits" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="exits" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="ExitType">
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>The name of the Exit that can be referenced by a PipeForward's <code>path</code> attribute. When a Pipeline doesn't have an Exits
element configured it will be initialized with one Exit having name READY (and state SUCCESS)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="path" type="xs:string" />
<xs:attribute name="state" use="required">
<xs:annotation>
<xs:documentation>The state of the Pipeline that is returned to the Receiver for this Exit. When a Pipeline doesn't have an Exits
element configured it will be initialized with one Exit having state SUCCESS (and name READY)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:union memberTypes="ExitStateAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="code" type="xs:string">
<xs:annotation>
<xs:documentation>HTTP statusCode e.g. <code>500</code> Default: 200</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="responseRoot" type="xs:string">
<xs:annotation>
<xs:documentation>Configures the responseRoot in the OpenAPI schema for this exit. If not set, the responseRoot value of the validator will be used. If that contains multiple (comma separated) values, the first will be used for the exits with state <code>SUCCESS</code>, the last for the other exits.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="empty" type="frankBoolean">
<xs:annotation>
<xs:documentation>If using RestListener and set to <code>true</code>, this removes the output and shows a blank page, the output is still logged in the ladybug testtool Default: <code>false</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="skipWrapping" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set to <code>true</code>, the output will not be wrapped by the OutputWrapper. Default: <code>false</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="skipValidation" type="frankBoolean">
<xs:annotation>
<xs:documentation>If set to <code>true</code>, the output will not be validated or transformed by the validator. Default: <code>false</code></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.core.PipeLineExit" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="exit" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="Global-forwardsType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Forward" minOccurs="0" maxOccurs="unbounded" type="ForwardType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.core.PipeForwards" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="global-forwards" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="FlowType">
<xs:attribute name="recordKey" type="xs:string">
<xs:annotation>
<xs:documentation>Key under which this flow is registered in the manager</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="nextRecordHandlerManagerRef" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the manager to be used after handling this record</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="recordHandlerRef" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the recordHandler to be used to transform records of the type specified in the key (optional)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="recordHandlerManagerRef" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the manager to which this flow must be added</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="resultHandlerRef" type="xs:string">
<xs:annotation>
<xs:documentation>Name of the resultHandler to be used to handle the transformed result</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="openBlockBeforeLine" type="xs:string">
<xs:annotation>
<xs:documentation>Instructs the resultHandler to start a new block before the parsed line is processed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="closeBlockBeforeLine" type="xs:string">
<xs:annotation>
<xs:documentation>Instructs the resultHandler to end the specified block before the parsed line is processed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="openBlockAfterLine" type="xs:string">
<xs:annotation>
<xs:documentation>Instructs the resultHandler to start a new block after the parsed line is processed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="closeBlockAfterLine" type="xs:string">
<xs:annotation>
<xs:documentation>Instructs the resultHandler to end the specified block after the parsed line is processed</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="autoCloseBlock" type="frankBoolean">
<xs:annotation>
<xs:documentation>If <code>true</code>, any open block of this type (and other nested open 'autoClose' block) is closed before a new one of the same type is opened. At a forced close, nested blocks are closed too (since 4.9) Default: true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="openBlockBeforeLineNumber" type="frankInt">
<xs:annotation>
<xs:documentation>If &gt;0 the <code>openBlockBeforeLine</code> instruction is only performed when the current line number is a multiple of this value Default: 0</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.batch.RecordHandlingFlow" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="flow" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="InputFieldsType">
<xs:attribute name="value" type="xs:string" />
<xs:attribute name="description" type="xs:string" />
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.batch.InputfieldsPart" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="inputFields" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="OutputFieldsType">
<xs:attribute name="value" type="xs:string" />
<xs:attribute name="description" type="xs:string" />
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.batch.OutputfieldsPart" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="outputFields" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="SchedulerType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="JobElementGroup" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.configuration.ScheduleManager" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="scheduler" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="DirectoryCleanerType">
<xs:attribute name="directory" type="xs:string">
<xs:annotation>
<xs:documentation>directory to be cleaned up</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="retention" type="xs:string">
<xs:annotation>
<xs:documentation>time (with suffix 'd', 'h', 'm' or 's' in milliseconds) that must have passed at least before a file will be deleted Default: 30d</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="subdirectories" type="frankBoolean">
<xs:annotation>
<xs:documentation>when <code>true</code>, files in subdirectories will be deleted, too Default: false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="deleteEmptySubdirectories" type="frankBoolean">
<xs:annotation>
<xs:documentation>when <code>true</code>, empty subdirectories will be deleted, too Default: false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="notExistWarn" type="frankBoolean">
<xs:annotation>
<xs:documentation>when set <code>true</code>, send warnings to logging and console about not existing directories Default: true</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.util.DirectoryCleaner" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="directoryCleaner" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="SapSystemsType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="SapSystemElementGroup" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.configuration.extensions.SapSystems" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="sapSystems" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="JmsRealmsType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="JmsRealm" minOccurs="0" maxOccurs="unbounded" type="JmsRealmType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.jms.JmsRealmFactory" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="jmsRealms" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="JmsRealmType">
<xs:attribute name="aliasForRealm" type="xs:string">
<xs:annotation>
<xs:documentation>Includes another realm into this one</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="realmName" type="xs:string">
<xs:annotation>
<xs:documentation>Set the name of this realm<br/></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="queueConnectionFactoryName" type="xs:string">
<xs:annotation>
<xs:documentation>Set the name of the QueueConnectionFactory<br/></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="topicConnectionFactoryName" type="xs:string">
<xs:annotation>
<xs:documentation>Set the name of the TopicConnectionFactory<br/></xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="datasourceName" type="xs:string" />
<xs:attribute name="securityProtocol" type="xs:string" />
<xs:attribute name="urlPkgPrefixes" type="xs:string" />
<xs:attribute name="authentication" type="xs:string" />
<xs:attribute name="credentials" type="xs:string" />
<xs:attribute name="initialContextFactoryName" type="xs:string" />
<xs:attribute name="providerURL" type="xs:string" />
<xs:attribute name="userTransactionUrl" type="xs:string" />
<xs:attribute name="principal" type="xs:string" />
<xs:attribute name="jndiAuthAlias" type="xs:string" />
<xs:attribute name="authAlias" type="xs:string" />
<xs:attribute name="jndiContextPrefix" type="xs:string" />
<xs:attribute name="jndiProperties" type="xs:string" />
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.jms.JmsRealm" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="jmsRealm" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="MonitoringType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="DestinationElementGroup" minOccurs="0" maxOccurs="unbounded" />
<xs:element name="Monitor" minOccurs="0" maxOccurs="unbounded" type="MonitorType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.monitoring.MonitorManager" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="monitoring" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="MonitorType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="TriggerElementGroup" minOccurs="0" maxOccurs="unbounded" />
</xs:choice>
</xs:sequence>
<xs:attribute name="destinations" type="xs:string" />
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>The functional name of the object.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="raised" type="frankBoolean" />
<xs:attribute name="additionalHitCount" type="frankInt" />
<xs:attribute name="type">
<xs:simpleType>
<xs:union memberTypes="EventTypeAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="alarmSeverity">
<xs:simpleType>
<xs:union memberTypes="SeverityAttributeValuesType variableRef" />
</xs:simpleType>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.monitoring.Monitor" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="monitor" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:complexType name="AdapterfilterType">
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Source" minOccurs="0" maxOccurs="unbounded" type="xs:string" />
</xs:choice>
</xs:sequence>
<xs:attribute name="adapter" type="xs:string">
<xs:annotation>
<xs:documentation>Set the name of the Adapter that this AdapterFilter filters on.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.monitoring.AdapterFilter" use="prohibited" />
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="adapterfilter" />
<xs:anyAttribute namespace="##other" processContents="skip" />
</xs:complexType>
<xs:group name="ListenerElementGroup">
<xs:choice>
<xs:element name="Listener">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="Param" type="ParamType" />
<xs:group ref="SenderElementGroup" />
</xs:choice>
</xs:sequence>
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="listener" />
<xs:attribute name="className" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
<xs:group ref="ListenerElementGroupBase" />
</xs:choice>
</xs:group>
<xs:group name="SenderElementGroup">
<xs:choice>
<xs:element name="Sender">
<xs:complexType>
<xs:sequence>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:group ref="CacheElementGroup" />
<xs:element name="Param" type="ParamType" />
<xs:group ref="SenderElementGroup" />
</xs:choice>
</xs:sequence>
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="sender" />
<xs:attribute name="className" type="xs:string" use="required" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
<xs:group ref="SenderElementGroupBase" />
</xs:choice>
</xs:group>
<xs:group name="CacheElementGroup">
<xs:choice>
<xs:element name="Cache">
<xs:complexType>
<xs:attribute ref="active" />
<xs:attribute name="elementRole" type="xs:string" fixed="cache" />
<xs:attribute name="className" type="xs:string" default="nl.nn.adapterframework.cache.EhCache" />
<xs:anyAttribute processContents="skip" />
</xs:complexType>
</xs:element>
<xs:group ref="CacheElementGroupBase" />
</xs:choice>
</xs:group>
<xs:group name="CacheElementGroupBase">
<xs:choice>
<xs:element name="EhCache">
<xs:complexType>
<xs:complexContent>
<xs:extension base="EhCacheType">
<xs:attribute name="elementRole" type="xs:string" fixed="cache" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:group>
<xs:complexType name="EhCacheType">
<xs:attributeGroup ref="EhCacheCumulativeAttributeGroup" />
<xs:attribute name="className" type="xs:string" fixed="nl.nn.adapterframework.cache.EhCache" />
</xs:complexType>
<xs:attributeGroup name="EhCacheDeclaredAttributeGroup">
<xs:attribute name="maxElementsInMemory" type="frankInt">
<xs:annotation>
<xs:documentation>The maximum number of elements in memory, before they are evicted Default: 100</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="memoryStoreEvictionPolicy" type="xs:string">
<xs:annotation>
<xs:documentation>Either <code>LRU</code>=Least Recent Use,<code>LFU</code>=Least Frequent Use or <code>FIFO</code>=First In - First Out Default: LRU</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="eternal" type="frankBoolean">
<xs:annotation>
<xs:documentation>If <code>true</code>, the elements in the cache are eternal, i.e. never expire Default: false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="timeToLiveSeconds" type="frankInt">
<xs:annotation>
<xs:documentation>The amount of time <i>in seconds</i> to live for an element from its creation date Default: 36000</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="timeToIdleSeconds" type="frankInt">
<xs:annotation>
<xs:documentation>The amount of time <i>in seconds</i> to live for an element from its last accessed or modified date Default: 36000</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="overflowToDisk" type="frankBoolean">
<xs:annotation>
<xs:documentation>If <code>true</code>, the elements that are evicted from memory are spooled to disk Default: false</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxElementsOnDisk" type="frankInt">
<xs:annotation>
<xs:documentation>The maximum number of elements on disk, before they are removed Default: 10000</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="diskPersistent" type="frankBoolean">