-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathTrias_Locations.xsd
251 lines (251 loc) · 11.9 KB
/
Trias_Locations.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
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.vdv.de/trias" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.vdv.de/trias" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:include schemaLocation="Trias_Common.xsd"/>
<xs:include schemaLocation="Trias_LocationSupport.xsd"/>
<xs:include schemaLocation="Trias_RequestSupport.xsd"/>
<xs:annotation>
<xs:documentation>FUNCTION 1: Location Identification</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>FUNCTION 2: Object Information</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>FUNCTION 3: Geographical Context</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>FUNCTION 4: Coordinate to Address</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>All functions integrated into one request / response</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>===================== Request structures ============================================================</xs:documentation>
</xs:annotation>
<xs:element name="LocationInformationRequest" type="LocationInformationRequestStructure"/>
<xs:complexType name="LocationInformationRequestStructure">
<xs:sequence>
<xs:choice>
<xs:annotation>
<xs:documentation>A location information request either consists of an initial request for locations (by name and/or coordinates, with restrictions), or of an follow up request in which a location object is further refined.</xs:documentation>
</xs:annotation>
<xs:element name="InitialInput" type="InitialLocationInputStructure">
<xs:annotation>
<xs:documentation>Initial input for the location information request. This input defines what is originally looked for.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LocationRef" type="LocationRefStructure">
<xs:annotation>
<xs:documentation>Location for further refinement. If a location in a previous response was marked as not "complete" it can be refined by putting it here.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:element name="Restrictions" type="LocationParamStructure" minOccurs="0">
<xs:annotation>
<xs:documentation>E.g. location types (stops, addresses, POIs) or specific location attributes</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Extension" type="xs:anyType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:annotation>
<xs:documentation>====================================================</xs:documentation>
</xs:annotation>
<xs:complexType name="LocationInformationRefineRequestStructure">
<xs:annotation>
<xs:documentation>LocationInformationRefine request structure.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="RefineParams" type="LocationInformationRefineParamStructure" minOccurs="0"/>
<xs:element name="LocationResult" type="LocationResultStructure"/>
<xs:element name="Extension" type="xs:anyType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationInformationRefineParamStructure">
<xs:annotation>
<xs:documentation>Request specific parameters</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:group ref="RefineOptionsGroup"/>
<xs:element name="Extension" type="xs:anyType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:annotation>
<xs:documentation>===================== Response structures ============================================================</xs:documentation>
</xs:annotation>
<xs:element name="LocationInformationResponse" type="LocationInformationResponseStructure"/>
<xs:complexType name="LocationInformationResponseStructure">
<xs:sequence>
<xs:element name="ContinueAt" type="xs:nonNegativeInteger" minOccurs="0">
<xs:annotation>
<xs:documentation>If the response returns less results than expected, the value of skip can be used in a follow-up request to get further results. It tells the server to skip the given number of results in its response.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ErrorMessage" type="ErrorMessageStructure" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="LocationResult" type="LocationResultStructure" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:annotation>
<xs:documentation>====================================================</xs:documentation>
</xs:annotation>
<xs:element name="LocationInformationRefineResponse" type="LocationInformationRefineResponseStructure">
<xs:annotation>
<xs:documentation>LocationInformationRefine response element</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="LocationInformationRefineResponseStructure">
<xs:annotation>
<xs:documentation>LocationInformationRefine response structure</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="ErrorMessage" type="ErrorMessageStructure" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="LocationResult" type="LocationResultStructure" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:annotation>
<xs:documentation>===================================== Additional declarations ======================================================</xs:documentation>
</xs:annotation>
<xs:complexType name="InitialLocationInputStructure">
<xs:sequence>
<xs:element name="LocationName" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>Name of the location object which is looked after. This is usually the user's input. If not given, the name of the resulting location objects is not relevant.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="GeoPosition" type="GeoPositionStructure" minOccurs="0">
<xs:annotation>
<xs:documentation>Coordinate where to look for locations. If given, the result should prefer location objects near to this GeoPosition.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="GeoRestriction" type="GeoRestrictionsStructure" minOccurs="0">
<xs:annotation>
<xs:documentation>Restricts the resulting location objects to the given geographical area.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationParamStructure">
<xs:sequence>
<xs:group ref="LocationDataFilterGroup"/>
<xs:group ref="LocationPolicyGroup"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeoRestrictionsStructure">
<xs:choice>
<xs:element name="Circle" type="GeoCircleStructure"/>
<xs:element name="Rectangle" type="GeoRectangleStructure"/>
<xs:element name="Area" type="GeoAreaStructure">
<xs:annotation>
<xs:documentation>Area is defined by a polyline</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="GeoCircleStructure">
<xs:sequence>
<xs:element name="Center" type="GeoPositionStructure"/>
<xs:element name="Radius" type="DistanceType">
<xs:annotation>
<xs:documentation>Radius in metres.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeoRectangleStructure">
<xs:sequence>
<xs:element name="UpperLeft" type="GeoPositionStructure"/>
<xs:element name="LowerRight" type="GeoPositionStructure"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeoAreaStructure">
<xs:sequence>
<xs:element name="PolylinePoint" type="GeoPositionStructure" minOccurs="3" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="LocationResultStructure">
<xs:sequence>
<xs:element name="Location" type="LocationStructure"/>
<xs:element name="Complete" type="xs:boolean">
<xs:annotation>
<xs:documentation>States whether the included location is complete or needs further refinement. Only complete locations are fully resolved and can be used in e.g. trip requests. Incomplete locations have to be refined entering them once again into a LocationInformationRequest.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Probability" minOccurs="0">
<xs:annotation>
<xs:documentation>Probability, that this result is the one meant by the user's input. Value should be between 0 and 1.</xs:documentation>
</xs:annotation>
<xs:simpleType>
<xs:restriction base="xs:float">
<xs:minInclusive value="0"/>
<xs:maxInclusive value="1"/>
</xs:restriction>
</xs:simpleType>
</xs:element>
<xs:element name="Mode" type="ModeStructure" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:group name="LocationPolicyGroup">
<xs:sequence>
<xs:element name="NumberOfResults" type="xs:positiveInteger" minOccurs="0"/>
<xs:element name="ContinueAt" type="xs:nonNegativeInteger" minOccurs="0">
<xs:annotation>
<xs:documentation>Tells the server to skip the mentioned number of results in its response. Can be used in a follow-up request to get further results. The value is usually taken from the previous response.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="IncludePtModes" type="xs:boolean" default="false" minOccurs="0">
<xs:annotation>
<xs:documentation>Tells the service to include the available public transport modes at returned stops.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:group>
<xs:group name="LocationDataFilterGroup">
<xs:sequence>
<xs:element name="Type" type="LocationTypeEnumeration" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Allowed location object types. If none is given, all types are allowed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Usage" type="LocationUsageEnumeration" minOccurs="0">
<xs:annotation>
<xs:documentation>Defines, whether location objects for origin, via, or destination are searched.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PtModes" type="PtModeFilterStructure" minOccurs="0">
<xs:annotation>
<xs:documentation>Allowed public transport modes. Defines, which public transport modes must be available at the returned location objects. Applies only to stops.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="OperatorFilter" type="OperatorFilterStructure" minOccurs="0">
<xs:annotation>
<xs:documentation>Filter for locations that are operated by certain organisations.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="LocalityRef" type="LocalityRefStructure" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>If at least one is set, only location objects within the given localities are allowed.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="PointOfInterestFilter" type="PointOfInterestFilterStructure" minOccurs="0">
<xs:annotation>
<xs:documentation>Filter to narrow down POI searches.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:group>
<xs:simpleType name="LocationTypeEnumeration">
<xs:restriction base="xs:string">
<xs:enumeration value="stop"/>
<xs:enumeration value="address"/>
<xs:enumeration value="poi"/>
<xs:enumeration value="coord"/>
<xs:enumeration value="locality"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="LocationUsageEnumeration">
<xs:restriction base="xs:string">
<xs:enumeration value="origin"/>
<xs:enumeration value="via"/>
<xs:enumeration value="destination"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>