forked from OpendataCH/Transport
-
Notifications
You must be signed in to change notification settings - Fork 0
/
hafasXMLInterface.xsd
2684 lines (2684 loc) · 123 KB
/
hafasXMLInterface.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="iso-8859-1"?>
<!-- Mit XMLSpy v2016 rel. 2 (http://www.altova.com) von rhu (HaCon Ingenieurgesellschaft mbH) bearbeitet -->
<!-- edited with XMLSpy v2010 rel. 3 sp1 (x64) (http://www.altova.com) by HaCon (HaCon Ingenieurgesellschaft mbH) -->
<!-- ======================================================================= -->
<!-- location validation request/result -->
<!-- connection request/result -->
<!-- connection scroll request/result -->
<!-- -->
<!-- Version history: ver. 1.0 initial version - Sascha Heinze 26.04.05 -->
<!-- ver. 1.1 added annotations - Sascha Heinze, 17.05.05 -->
<!-- ver. 1.2 added attribute output to the element ReqLoc -->
<!-- ver. 1.3 polylines added for special versions -->
<!-- ver. 1.5 SBB pretest version -->
<!-- ver 1.6 SBB attribute type in element I is now optional with default value 0 -->
<!-- ver 1.7 attribute RTState has got 2 extra values NO_RT_INFO and HAS_DELAYINFO -->
<!-- ver 1.8 added capacity values at StopPrognosis -->
<!-- ver 1.9 I element attribute dep and arr are now of type xs:string -->
<!-- ver 2.0 rtState attribute does not exist anymore. Instead RtStateList with possible RtState are written out -->
<!-- ver 2.1 IList is now also written out in JourneyRes -->
<!-- ver 2.2 new values for lang - FR, DK, IT, DK -->
<!-- ver 2.3 . New XMLHandle Element is defined. -->
<!-- ver 2.4 new attributes in serviceDays - from and to -->
<!-- ver 2.5 Added handicapped data -->
<!-- ver 2.6 Added emissiondata request/response (rhu: 05.10.2010)-->
<!-- ver 2.7 ConIntervallReq added (rhu: 29.11.2010) -->
<!-- ver 2.8 DirectTrainReq added (rhu: 09.12.2010) -->
<!-- ver 2.9 firstConDiffersFromReqDate Attribut in ConRes attribute group added (tpae: 18.01.2011) -->
<!-- ver 3.0 Added description of attribute symbol of I element (ad: 2011-02-02) -->
<!-- ver 3.0.1 UMC: Documentation of element productclass completed (rhu: 2011-02-10) -->
<!-- ver 3.0.2 Added JHandle to STBJourney (ad: 2011-02-10) -->
<!-- ver 3.0.3 Comment of element RTState modified (rhu: 2011-02-21) -->
<!-- ver 3.0.4 Added minChTime, maxChTime, unsharp search and attribute filter (tpae: 2011-06-22) -->
<!-- ver 3.0.5 Added Attribute needServiceBitfield to element ConReq (rhu: 2011-07-11) -->
<!-- ver 3.0.6 attlist.RFlags removed from xsd; Parameter "unsharp" added to attlist.BasicRFlags; attlist.RFlags exchanged against attlist.BasicRFlags in element RFlags; Parameter "b" and "f" added to element RFlags (rhu: 2011-08-05) -->
<!-- ver 3.0.7 Attribute bike removed from attlist.Prod, because bike search is realized via attribute search (rhu: 2011-08-12) -->
<!-- ver 3.0.8 Added attribute type EXT_ID for attlist.Attribute (dsc: 2013-07-24) -->
<!-- ver 3.0.9 Description of element ConReqAttrFilter corrected (rhu: 2013-10-29 -->
<!-- ver 3.1 Added LINE attribute, description for ADMINISTRATION and three NAMEFORMATA/B/C attributes for the new 5.20.39 timetable data (jf: 2014-01-15) -->
<!-- ver 3.2 Added request and response for TrainSearch (mschu: 2014-01-31) ; element JHandle extended-->
<!-- ver 3.2.1 Updated status of handicappedAccess values, changed attributes NAMEFORMATA/B/C to NAMEFORMATTED(jf: 2014-03-05) -->
<!-- ver 3.2.2 Removed Time element from the StopType element used for the TrainSearch result. The server doesn't return a time for a trainsearch result. (mschu 2014-04-16) -->
<!-- ver 3.2.3 Added maxResults parameter to the TrainSearch request and added example error code values for the errorCode attribute in the trainsearch result. (mschu 2014-04-22) -->
<!-- ver 3.2.4 Added request aparametr for Bfr search (HandicapProfile) (jf: 2014-07-16) -->
<!-- ver 3.2.5 Added possible values of StopPrognosis->Status (ad: 2014-07-17) -->
<!-- ver 3.2.6 Added ctxRecon for the connection reconstruction request data (jf: 2014-08-14) -->
<!-- ver 3.2.7 Added Childelement Date to JourneyRes describing the departure time of the journey (rhu: 2014-09-11) -->
<!-- ver 3.2.8 Added new request ConReconstructionReq for connection reconstruction (jf: 2014-09-23) -->
<!-- ver 3.2.9 Added maxStops parameter to the StationBoardRequest request (ad: 2014-09-25) -->
<!-- ver 3.3.0 Added new values REDIRECTION_NEW and REDIRECTION_PASSAGE of JStatus (ad: 2014-10-13) -->
<!-- ver 3.3.1 Added new value REDIRECTION_PASSAGENEW of JStatus (ad: 2014-10-24) -->
<!-- ver 3.3.2 Added attribute stationName for TrainSearch request (mschu: 2014-01-13) -->
<!-- ver 3.3.3 Added simple XML structure of train formations SFormation (jf: 2015-04-15) -->
<!-- ver 3.3.4 FPLU-624: Added DELAY value back to JStatus element and added Coord element to LocValReq element (mschu: 2016-01-29), -->
<!-- FPLU-630: Added two new values "F" and "L" to the sMode attribute in the attlist.RFlags field to specify searching for the first or last connection on the request date. (mschu: 02.02.2016) -->
<!-- ver 3.3.5 FPLU-632: Added request and response for the TimeTableInfo service to retrieve various information about the current timetable data pools as well as version numbers for client and server (mschu: 16.03.2016) -->
<!-- ver 3.3.6 FPLU-631: Element readOutText added as part of a connection (rhu: 25.04.2016) -->
<!-- ======================================================================= -->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="ReqC">
<xs:annotation>
<xs:documentation>The element ReqC is the root element for requests to the HAFAS system. It must contain either a location vlidation request, a connection request or a connection scroll request. (See the corresponding elements for more details).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element ref="STBReq"/>
<xs:element ref="LocValReq" maxOccurs="unbounded"/>
<xs:element ref="ConReq"/>
<xs:element ref="ConIntervalReq"/>
<xs:element ref="TimeTableInfoReq">
<xs:annotation>
<xs:documentation> TimeTableInfoReq speicifies a TimeTable info request. At the moment the element is empty. The result is in TimeTableInfoRes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="ConScrReq"/>
<xs:element ref="ConReconstructionReq">
<xs:annotation>
<xs:documentation>ConReconstructionReq takes external train data for a connection. The server then performs a reconstruction of this connection and returns a standard connection result, that can be used like normal calculated results.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="JourneyReq"/>
<xs:element ref="DirectTrainReq"/>
<xs:element ref="TrainSearchReq">
<xs:annotation>
<xs:documentation>TrainSearch request. Request information about a train number or stations.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:attributeGroup ref="attlist.ReqCResC"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ReqCResC">
<xs:attribute name="ver" type="xs:string" use="required" fixed="3.3.5">
<xs:annotation>
<xs:documentation>Current version of the Interface. The version given in the result must match the version specified in the request.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="prod" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>Free form string identifying the application that produced the xml.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="lang" use="required">
<xs:annotation>
<xs:documentation>Specifies the language for the request. Possible values depend on the languages contained in the actual Hafas system. Almost all versions will contain german (DE) and english (EN). Other possible values include FR, IT, DK, PL.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="DE"/>
<xs:enumeration value="EN"/>
<xs:enumeration value="FR"/>
<xs:enumeration value="DK"/>
<xs:enumeration value="IT"/>
<xs:enumeration value="PL"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="accessId" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The id may contain any string for identification of the user</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="LocValReq">
<xs:annotation>
<xs:documentation>The element LocValReq specifies the current task to be a location validation request. The response to this request will be a result container with a sequence of location validation results (LocValRes)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:choice>
<xs:element ref="ReqLoc"/>
<xs:element ref="Coord"/>
</xs:choice>
<xs:attributeGroup ref="attlist.LocValReq"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.LocValReq">
<xs:attribute name="id" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>An identifier for the current request. The id will be repeated in the corresponding LocValRes, So if there are multiple LocValReq elements in the request, this id can be used to find the corresponding result.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="maxNr">
<xs:simpleType>
<xs:annotation>
<xs:documentation>Maximum number of matched locations to return in the LocValRes, if the input can not be matched exactly. Currently, this number must be in the range of 1 to 50.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="50"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="sMode" default="1">
<xs:annotation>
<xs:documentation>searchMode describes the methods that hafas shall use to perform location validation. At the moment, possible values are 1=Hafas internal, 2=Euspirit, 4 = Delfi. Combinations of the values are alloewd: 1+4=5=search Hafas pools and Delfi together. Searches for Euspirit and Combinations of Euspirit and Delfi, or Euspirit and Hafas internal will not work at the moment.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="1"/>
<xs:maxInclusive value="7"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="ReqLoc">
<xs:annotation>
<xs:documentation>A request location contains, within some other informations, the string to match. For stations, the validation will be a one step process. For Adresses and Pois, the validation can be a two step process. (See elementlocValRes for further informations)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="attlist.ReqLoc"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ReqLoc">
<xs:attribute name="type" use="required">
<xs:annotation>
<xs:documentation>The attribute type specifies the type of locations to be returned. Valid values are ST (station), ADR (address), POI (point of interest) or ALLTYPE, in which case the returned locations can be of any of the types specified above.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="ST"/>
<xs:enumeration value="ADR"/>
<xs:enumeration value="POI"/>
<xs:enumeration value="ALLTYPE"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="stFlag" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The attribute stFlag restricts the search to locations containing this special flag. This is an optional attribute. In most cases there will be no need to fill in this attribute. (To be continued: specify the values that are valid for this flag)</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="refine" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The attribute refine must be filled, if a refinement of the returned location is nessessary. (For addresses or pois). If a refinement is nessessary, the LocValReq will contain ReqLoc elements with the refinement attribute set to whatever is nessessary to perform the refinement step. These ReqLoc elements can be taken as input for subsequent LocValReq steps. This attribute is optional.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="match" type="xs:string" use="optional">
<xs:annotation>
<xs:documentation>The attribute match takes the userinput to be matched with the Hafas ngramm search algorithm. This is an optional attribute. In a request location either match, or refinement should be set, but not both at the same time.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="output" type="xs:string">
<xs:annotation>
<xs:documentation>The element output will be ignored in requests. if an element ReqLoc is returned in a LocValRes, the attribute output is filled with the output name of the meta location. This enables the requesting application to present the user a name for the location to be refined.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="LocValRes">
<xs:annotation>
<xs:documentation>The LocValRes takes matched locations, returned by Hafas as a response to a LocValReq. In case of Address, Poi or Station, these Locations can ectly be taken as part of a subsequent connectionrequest (ConReq). If the returned element is a ReqLoc, this location may not be inserted into a ConReq, but must be refined. This means that another LocValReq step must be performed, if the user selects this location. The ReqLoc therefore must be inserted as is into this subsequent LocValReq. (The ReqLoc will have filled the attribute refine instead of match, telling Hafas to perform a refinement step instead of the initial request.) A single LocValRes can can contain any type of Location in an arbitrary order.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Err" minOccurs="0" maxOccurs="unbounded"/>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:choice>
<xs:element ref="Address"/>
<xs:element ref="Poi"/>
<xs:element ref="Station"/>
</xs:choice>
<xs:element ref="ReqLoc"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="attlist.LocValRes"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.LocValRes">
<xs:attribute name="id" type="xs:ID" use="required">
<xs:annotation>
<xs:documentation>The attribute id ist the id supplied in the corresponding LocValReq.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="flag" use="required">
<xs:annotation>
<xs:documentation>The attribute flag indicates, whether the contained locations are ready to perform a subsequent ConReq (FINAL), if a refinement step has to be performed (META) or if both possibilites occur within the result (MIXED)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="META"/>
<xs:enumeration value="FINAL"/>
<xs:enumeration value="MIXED"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="Err">
<xs:annotation>
<xs:documentation>If an error occurs, the element Err indicates the type of the error and a descriptive text. This text is meant to be used for logging purposes or other internal use. Normally this message should not be presented to the user.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="attlist.Err"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="IndividualTransportParameters">
<xs:attribute name="type">
<xs:annotation>
<xs:documentation>The attribute type specifies the type of individual transport to use for pre/post trip. Possible values are FOOT, BIKE, TAXI, PARKANDRIDE (only stations with P+R parking areas are searched, currently not used) , CAR</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="FOOT"/>
<xs:enumeration value="BIKE"/>
<xs:enumeration value="TAXI"/>
<xs:enumeration value="PARKANDRIDE"/>
<xs:enumeration value="CAR"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="minDist" use="required">
<xs:annotation>
<xs:documentation>The minimum distance in meters. For different means of transport, different minimum distances can be set. For foot this should usually be set to 0, for cars a higher distance should be used</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="maxDist" use="required">
<xs:annotation>
<xs:documentation>The maximum distance in meters. With minDist and maxDist, you can specify a range, valid for the current means of transportation, so for foot a range of 0 to 2000 meters could be set, for bike a range of 1000 to 5000 and for car/taxi a range of 3000-10000. According to the distance between the starting point and the stations found, the appropriate means of transport will be chosen. </xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="max_duration" use="optional">
<xs:annotation>
<xs:documentation>The maximum duration in minutes.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="cost" use="optional">
<xs:annotation>
<xs:documentation>Cost per kilometer in EURO cents.(currently not used)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="speed" use="optional">
<xs:annotation>
<xs:documentation>Speed in km/h (currently not used)</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:attributeGroup name="attlist.Err">
<xs:attribute name="code" type="xs:token" use="required">
<xs:annotation>
<xs:documentation>The attribute code contains an identifier for the current error. This code is meant to be used by the application. A list containing possible errorcodes will be available in a separate document.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="text" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The attribute text specifies a human readable description of the current error.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="level" default="E">
<xs:annotation>
<xs:documentation>The attribute level specifies the importance of the current error. Valid values are M for messages, W for warnings, E for errors and F for fatal errors.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="M"/>
<xs:enumeration value="W"/>
<xs:enumeration value="E"/>
<xs:enumeration value="F"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:complexType name="ConBasicReq">
<xs:sequence>
<xs:element ref="Start"/>
<xs:element ref="Dest"/>
<xs:element ref="Via" minOccurs="0" maxOccurs="3"/>
</xs:sequence>
</xs:complexType>
<xs:element name="FilterList">
<xs:annotation>
<xs:documentation>The element FilterList contains one or several possible filters to restrict the connection result.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="ConReqAttrFilter">
<xs:annotation>
<xs:documentation>The element ConReqAttrFilter is an attribute filter, which can be applicated on trains, stations, walks or combined.
Use the following parameters for carriage of bicycles: mode="1" type="EXC" value="VT:VN:aq"
Use the following parameters for group travel: mode="1" type="EXC" value="GN"</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConReqAttrFilter">
<xs:annotation>
<xs:documentation>The element ConReqAttrFilter is an attribute filter, which can be applicated on trains, stations, walks or combined.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="attlist.ConReqAttrFilter"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ConReqAttrFilter">
<xs:attribute name="mode" type="xs:int" use="required">
<xs:annotation>
<xs:documentation>The attribute mode stands for requested attribute mode: 1 - train, 2 - foot, 3 train or foot, 4 - station, 5 - train or station, 6 - foot or station, 7 - train or foot or station. </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" use="required">
<xs:annotation>
<xs:documentation>The attribute type describes an excluded or included attribute.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="INC"/>
<xs:enumeration value="EXC"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>The attribute value contains one or several attribute name to search for. If several attributes are given, they are separated with colon sign ":". For instance:"X1:Y1" </xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="PlanDataReq">
<xs:annotation>
<xs:documentation>The element PlanDataReq specifies request with aid of you get plan data in the form of Locations</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="connectionPoolsOnly" type="xs:boolean" use="required">
<xs:annotation>
<xs:documentation>The attribute connectionPoolsOnly, if set to true, specifies that only connection pools are going to be scanned in th plandata. If the attribute is set to false, all pools are going to be scanned</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="eliminateDoubleStations" type="xs:boolean" use="required">
<xs:annotation>
<xs:documentation>The attribute eliminateDoubleStations, if set to true, specifies that external station numbers occur once. If the attribute is set to false, external station number can occur twice</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="poolNumber" type="xs:int" use="optional">
<xs:annotation>
<xs:documentation>The attribute poolNumber speicifies that given poolNumber is going to be searched for station numbers. In this case information in attribute connectionPoolsOnly is going to be rejected</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="ConReq">
<xs:annotation>
<xs:documentation>The element ConReq specifies an initial connection request (opposed to the element ConScrReq, that specifies a subsequent scroll request based on this initial request).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Start"/>
<xs:element ref="Dest"/>
<xs:element ref="Via" minOccurs="0" maxOccurs="5"/>
<xs:element ref="ReqT"/>
<xs:element ref="RFlags"/>
<xs:element ref="GISParameters" minOccurs="0"/>
<xs:element ref="ECOParameters" minOccurs="0"/>
<xs:element ref="FilterList" minOccurs="0"/>
</xs:sequence>
<xs:attribute name="needReqParamInResult" use="optional" default="0">
<xs:annotation>
<xs:documentation>If this attribute is set to 1, the connection result will contain the ConReq-XML.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="needServiceBitfield" use="optional" default="0">
<xs:annotation>
<xs:documentation>If this attribute is set to 1, the connection result returns the traffic days in a bitfield. Each position represents a traffic day. A 1 represents the information, that the traffic runs at the corresponding day. A 0 represents the information, that the traffic don't run at the corresponding traffix day. The first position in the bitfield represents the first day of the timetable period. The last position the last day in the timetable period.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="HandicapProfile" use="optional" default="0">
<xs:annotation>
<xs:documentation>If this attribute is set, the BfR status will be checked during the connection calculation. Possible values are 1:= "Selbstein-/Ausstieg möglich", 2 := " Ein- und Ausstiegshilfe erfolgt durch das Fahrpersonal" and 3 := " Ein-/Ausstieg mit Voranmeldung möglich".
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
</xs:element>
<xs:element name="GISParameters">
<xs:complexType>
<xs:sequence>
<xs:element ref="Front" minOccurs="0"/>
<xs:element ref="Back" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Front">
<xs:annotation>
<xs:documentation>The means of transport choosen in the front section are used to travel from the starting point to the first station of a journey.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element ref="IndividualTransport" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Back">
<xs:annotation>
<xs:documentation>The means of transport choosen in the Back section are considered when travelling from the last station to the destination address.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element ref="IndividualTransport" maxOccurs="5"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="IndividualTransport">
<xs:complexType>
<xs:attributeGroup ref="IndividualTransportParameters"/>
</xs:complexType>
</xs:element>
<xs:element name="ConScrReq">
<xs:annotation>
<xs:documentation>ConScrReq specifies a connection scroll request based on a previously performed ConReq. It takes a ConResCtxt supplied by the ConRes (as the answer to this previously performed ConReq)</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="ConResCtxt"/>
</xs:sequence>
<xs:attributeGroup ref="attlist.ConScrReq"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ConScrReq">
<xs:attribute name="scrDir" default="F">
<xs:annotation>
<xs:documentation>The attribute scrDir specifies the scroll direction relative to the previously received ConRes. A value of B will retrieve the connections preceeding the connections of this ConRes. A value of F will retrieve the connection following the connections in this ConRes. A value of I will retrieve the same connections once again. The option I is for future use and will not work in this version of the interface. If supplied, an error message will be returned.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="B"/>
<xs:enumeration value="F"/>
<xs:enumeration value="I"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="nrCons" use="required">
<xs:annotation>
<xs:documentation>nrCons specifies the number of connections to be returned in the ConRes containing the answer of the current ConScrReq. Please keep in mind that there can be returned fewer connections (in which case the result will contain an Err element specifying the reason for this behaviour). In some cases the Hafas algorithm will calculate more tan the requested number of connections. This is due to te fact, that the HAFAS algorithm apart from returning the best connections additionally calculates more comfortable connections, which will be returned as well. This is a basic feature of the Hafas algorithm.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="Start" type="StartViaType">
<xs:annotation>
<xs:documentation>The element Start contains the Startlocation for the current connection request. This might either be a Station, Adress or Poi, as returned by a previously obtained location validation result (LocValRes), or a userspecified coordinate (Coord) which does not require a location validation.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Via" type="ViaType">
<xs:annotation>
<xs:documentation>The Via element specifies a Station that has to be passed during the journey. There can be specified up o three Via elements in the request.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Dest" type="RequestLocationType">
<xs:annotation>
<xs:documentation>The element Dest specifies the destination of the journey. As in the Start element there can be supplied Station, and Coord elements.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="ViaType">
<xs:sequence>
<xs:element ref="Station"/>
<xs:element ref="Prod"/>
</xs:sequence>
<xs:attributeGroup ref="attlist.RequestLocationRef"/>
</xs:complexType>
<xs:complexType name="StartViaType">
<xs:complexContent>
<xs:extension base="RequestLocationType">
<xs:sequence>
<xs:element ref="Prod"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="RequestLocationType">
<xs:choice>
<xs:element ref="Address"/>
<xs:element ref="Poi"/>
<xs:element ref="Station"/>
<xs:element ref="Coord"/>
</xs:choice>
<xs:attributeGroup ref="attlist.RequestLocationRef"/>
</xs:complexType>
<xs:attributeGroup name="attlist.RequestLocationRef">
<xs:attribute name="min">
<xs:annotation>
<xs:documentation>The attribute min is given in minutes. For the Start and the Dest, min specifies pre- and post trip times (for example a walk time to the specified location). For the element Via, min specifies the change time (the amount of time a passenger wants to stay at the specified via, before continuing the travel). There is a maximum of 48 hours (2880 minutes) that the change time must not exceed.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="Prod">
<xs:annotation>
<xs:documentation>The element Prod contains the product choice and related things. The element prod is placed within the Start ans the Via elements. The product choice defined in Prod is valid for the section of the Journey, that starts at the current location and ends at the next Via or Dest element.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="attlist.Prod"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.Prod">
<xs:attribute name="prod">
<xs:annotation>
<xs:documentation>The attribute prod contains a product filter. Each means of transportation belongs to a product category. The product category of a means of transport is dependent on the data used with the current Hafas system. The concrete definements are placed in the file zugart of the Hafas raw data. There is a maximum of 16 product categories (0 - 15) in the Hafas system. The element prod contains a bitfield for these product categories. The first byte represents category 0, the second category 1, and so on. A 1 means that the category is selected for the search, a 0 means deselected. For example prod="1111000000000000" selects the categories 0 to 3 and deselects all other categories.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="[01]{16}"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="direct" default="0">
<xs:annotation>
<xs:documentation>Valid values are 0 and 1. if direct is set to 1, this means, that on the current section of the journey only direct connections are allowed. A value of 0 allows changes in this section.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="sleeper" default="0">
<xs:annotation>
<xs:documentation>If set to 1, on this section only night trains containing beds are allowed. In this case, the direct flag will be set to one implicitly. The default is 0 to allow for searches of all sorts of trains.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="couchette" default="0">
<xs:annotation>
<xs:documentation>If set to 1, in this section only night trains containing couchettes are allowed. In this case the direct flag is set to 1 implicitly. The default is 0 to allow searches for all sorts of trains.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="ReqT">
<xs:annotation>
<xs:documentation>ReqT contains the request time for the current request.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attributeGroup ref="attlist.ReqT"/>
</xs:complexType>
</xs:element>
<xs:complexType name="ReqTType">
<xs:annotation>
<xs:documentation>ReqTType contains the request time for the current
request.</xs:documentation>
</xs:annotation>
<xs:attributeGroup ref="attlist.ReqT"/>
</xs:complexType>
<xs:element name="ReqIT">
<xs:annotation>
<xs:documentation>ReqInterval is a time interval (a departure time interval if a=0 or an arrival time interval if a=1). For further explanation on the limits of intervals see annotations on attribute iDuration.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:complexContent>
<xs:extension base="ReqTType">
<xs:attribute name="iDuration" use="required">
<xs:annotation>
<xs:documentation>ReqTimeInterval will be considered to be a time interval with a length according to iDuration in minutes. Depending on a-attribute the interval will be from (date,time) forwards to (date,time+iDuration) for a=0 (departure time interval) - or from (date,time) backwards to (date,time-iDuration) for a=1 (arrival time interval). The limitation is 1440 minutes.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ReqT">
<xs:attribute name="time" use="required">
<xs:annotation>
<xs:documentation>The attribute time contains the request time. The format is: hh:mm</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="[0-9][0-9][:][0-9][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="date" use="required">
<xs:annotation>
<xs:documentation>The attribute date contains the request date. The format is: yyyymmdd</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:pattern value="[2][0-9][0-9][0-9][0-1][0-9][0-3][0-9]"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="a" default="0">
<xs:annotation>
<xs:documentation>The attribute a specifies the current request time to be an arrival time (if set to 1) or a departure time (if set to 0). Default is 0.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="RFlags">
<xs:annotation>
<xs:documentation>RFlags specifies some essential request flags passed to the Hafas kernel.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="b">
<xs:annotation>
<xs:documentation>The attribute b specifies the number of connections to find in searchdirection backward. This means connections starting/ending (depends on the value of the attribute a) before the time specified in ReqT. The number must not be below zero and must not exceed 6.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="f">
<xs:annotation>
<xs:documentation>The attribute f specifies the number of connections to find in searchdirection forward. This means connections starting/ending (depends on the value of the attribute a) after the time specified in ReqT. The number must not be below zero and must not exceed 6.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attributeGroup ref="attlist.BasicRFlags"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.BasicRFlags">
<xs:attribute name="nrChanges">
<xs:annotation>
<xs:documentation>Number of changes. If this optional attribute is given, it restricts the number of changes for the current request. Possible values are from 0 (only direct connections) to 6. If the attribute is not given, the number of changes is not restricted.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="6"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="chExtension" use="optional" default="0">
<xs:annotation>
<xs:documentation>The attribute chExtension offers a percentual extension of the changetime. Valid values are from 0 (no extension) to 400 (changeTime*5). It is not possible to decrease change times.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="400"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="minChTime" use="optional" default="0">
<xs:annotation>
<xs:documentation>The attribute minChTime can be used to specify a minimal change time.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="400"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="maxChTime" use="optional" default="0">
<xs:annotation>
<xs:documentation>The attribute maxChTime can be used to specify a maximal change time.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:integer">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="400"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="sMode" use="optional" default="N">
<xs:annotation>
<xs:documentation>The attribute sMode specifies a search mode. Valid values are N for normal search, P for economic search, F for searching the first connection on the operating day and L for searching the last connection on the operating day. The default is N.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="N"/>
<xs:enumeration value="P"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="unsharp" type="xs:token" use="optional" default="0">
<xs:annotation>
<xs:documentation>If set to 1, also alternative stations near the departure/arrival station are taken into account.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="RIFlags">
<xs:annotation>
<xs:documentation>RIFlags specifies some essential request flags passed to the HAFAS kernel in case of a ConIntervalReq.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="maxCons" use="optional" default="0">
<xs:annotation>
<xs:documentation>The attribute maxCons specifies the number of connections to find in case of an interval-based connection search. The number must not be below zero and must not exceed 127. Effectively this represents an additional termination criteria: the connection search will terminate either if the interval end is reached or if maxCons connections are found. Default is "0" (no termination based on number of connections found).</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:int">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="127"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attributeGroup ref="attlist.BasicRFlags"/>
</xs:complexType>
</xs:element>
<xs:element name="ResC">
<xs:annotation>
<xs:documentation>ResC is the container for any type of results, calculated by the Hafas server.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Err" minOccurs="0" maxOccurs="unbounded"/>
<xs:choice>
<xs:element ref="ConRes"/>
<xs:element ref="LocValRes" maxOccurs="unbounded"/>
<xs:element ref="TimeTableInfoRes"/>
<xs:element ref="STBRes"/>
<xs:element ref="JourneyRes"/>
<xs:element ref="TrainSearchRes"/>
</xs:choice>
</xs:sequence>
<xs:attributeGroup ref="attlist.ReqCResC"/>
</xs:complexType>
</xs:element>
<xs:element name="ConRes">
<xs:annotation>
<xs:documentation>A ConRes is the connection result. This Type of result is returned as a resonse to a connection request (ConReq) or a connection scroll request (ConScrReq).</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Err" minOccurs="0" maxOccurs="unbounded"/>
<xs:element ref="ConResCtxt" minOccurs="0"/>
<xs:element ref="ConnectionList" minOccurs="0" maxOccurs="2"/>
<xs:element name="ReqParam" minOccurs="0">
<xs:annotation>
<xs:documentation>If requested, this element will contain the XML from the connection request as xml encoded text.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:attributeGroup ref="attlist.ConRes"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ConRes">
<xs:attribute name="dir" use="required">
<xs:annotation>
<xs:documentation>dir represents the direction that the result represents. O means outward connections, R means retuen connections. Currently only outward connections are calculated, so this value will be set to O.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="O"/>
<xs:enumeration value="R"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="firstConDiffersFromReqDate" type="xs:boolean" use="optional">
<xs:annotation>
<xs:documentation>This flag indicates that the departure date of the first connection in the result differs from the requested date of the connection.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="ConnectionList">
<xs:annotation>
<xs:documentation>The ConnectionList element is the container for all connections calculated by the Hafas server.</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="Err" minOccurs="0"/>
<xs:element ref="Connection" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attributeGroup ref="attlist.ConnectionList"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ConnectionList">
<xs:attribute name="type" use="optional">
<xs:annotation>
<xs:documentation>OEV public transport, IV individual transport</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="OEV"/>
<xs:enumeration value="IV"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="ConResCtxt">
<xs:annotation>
<xs:documentation>The element ConResCtxt is part of a ConRes. For a subsequent ConScrReq, the ConResCtxt must be supplied as a part of the request..</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true">
<xs:attributeGroup ref="attlist.ConResCtxt"/>
</xs:complexType>
</xs:element>
<xs:attributeGroup name="attlist.ConResCtxt">
<xs:annotation>
<xs:documentation>The attribute b specifies, whether backward scrolling is possible (1=yes, 0=no), the attribute f specifies whether forward scrolling is possible (1=yes, 0=no)</xs:documentation>
</xs:annotation>
<xs:attribute name="b" default="1">
<xs:annotation>
<xs:documentation>The element ConResCtxt contains informations about the session used. The ConResCtxt must be inserted in sbsequent connection scroll requests. Based on this information, the data needed to perform such a request will be read from the corresponding spoolfile.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
<xs:attribute name="f" default="1">
<xs:simpleType>
<xs:restriction base="xs:token">
<xs:enumeration value="0"/>
<xs:enumeration value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="ctxRecon" type="xs:string">
<xs:annotation>
<xs:documentation>The element ctxRecon is part of a Connection. It contains the string for a connection reconstruction request.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Date" type="xs:string">
<xs:annotation>
<xs:documentation>The element date contains the base date for a connection. The base date is the date at which the conection starts. All time elements refer to the base date.
In requests (DirectTrainReq) the format must be: yyyymmdd.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="TimeType">
<xs:sequence>
<xs:element ref="Time" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Time">
<xs:annotation>
<xs:documentation>The format of the Time element is [dd:]hh:mm. dd represents a day offset. All offsets are relative to the base date of the connection. For example a time 01:12:30 means 12:30 at the first day following the day specified as the base date in the Date element in the Overview section of the connection.</xs:documentation>
</xs:annotation>
<xs:complexType mixed="true"/>
</xs:element>
<xs:attributeGroup name="attlist.Time">
<xs:attribute name="delay">
<xs:annotation>
<xs:documentation>This attribute is not used at the moment.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="Coord" type="LocationType">
<xs:annotation>
<xs:documentation>The Coord element represents a coordinate. In connection requests, the Coord element can be used to describe the start and the destination of a request. Coord elements can not be obtained via a LocValReq, instead the user is responsible to create valid Coord elements. the format is WGS84 multiplied with 1000000 </xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="LocationType">
<xs:attributeGroup ref="attlist.Location"/>
</xs:complexType>
<xs:attributeGroup name="attlist.Location">
<xs:attribute name="name" type="xs:string">
<xs:annotation>
<xs:documentation>The attribute name contains the output name of a location.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="x" type="xs:integer">
<xs:annotation>
<xs:documentation>The x-coordinate of the location.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="y" type="xs:integer">
<xs:annotation>
<xs:documentation>The y-coordinate of the location.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="z" type="xs:integer">
<xs:annotation>
<xs:documentation>The z-coordinate is currently not used.</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="type" default="WGS84">
<xs:annotation>
<xs:documentation>currently WGS84 only</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:annotation>
<xs:documentation>The attribute type specifies the format of the coordinate. WGS84 is the default and the preferred format.</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:token">
<xs:enumeration value="HAFAS_GEO"/>
<xs:enumeration value="HAFAS_HANNOVER"/>
<xs:enumeration value="WGS84"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:attributeGroup>
<xs:complexType name="StationType">
<xs:complexContent>
<xs:extension base="LocationType">
<xs:attributeGroup ref="attlist.StationType"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:element name="Station" type="StationType">
<xs:annotation>
<xs:documentation>A station</xs:documentation>
</xs:annotation>
</xs:element>
<xs:attributeGroup name="attlist.StationType">
<xs:attribute name="distance">
<xs:annotation>
<xs:documentation> The attribute distance contains the distance in meters to given station. </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="duration">
<xs:annotation>
<xs:documentation> The attribute duration contains the duration of walk in seconds to given station. </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="externalId">
<xs:annotation>
<xs:documentation>The externalId contains an identifier for the current station/Address/POI. This identifier can only be used for subsequent XML-Requests. </xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="externalStationNr">
<xs:annotation>
<xs:documentation>The attribute externalStationNr contains the EVA-ID for the current station. This attribute will not be present for Adresses, POIs and stations found in the delfi context. If nessessary, this id can be used in subsequent HTML-based requests.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:attributeGroup>
<xs:element name="Address" type="StationType">