source: subversion/applications/utils/maplint/tests.xsl @ 34621

Last change on this file since 34621 was 17267, checked in by bobkare, 10 years ago

New update of not-in-map_features, using the new and much improved upcoming Geo::OSM::MapFeatures? version

File size: 99.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xslout:stylesheet xmlns:maplint="http://maplint.openstreetmap.org/xml/1.0" xmlns:xslout="http://www.w3.org/1999/XSL/Transform" version="1.0">
3  <!--
4   DO NOT EDIT THIS FILE !
5   This file has been autogenerated from the files in the "tests"
6   subdirectories, please apply any changes there.
7-->
8  <xsl:key xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="nodesbycoordinates" match="/osm/node" use="concat(@lon,' ', @lat)"/>
9  <xsl:key xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="nodeId" match="/osm/node" use="@id"/>
10  <xsl:key xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="wayId" match="/osm/way" use="@id"/>
11  <xsl:key xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="relId" match="/osm/relation" use="@id"/>
12  <xslout:template name="all-tests">
13    <maplint:test agent="xsltests" group="base" id="empty-tag-key" version="1" severity="error"/>
14    <maplint:test agent="xsltests" group="base" id="empty-tag-value" version="1" severity="warning"/>
15    <maplint:test agent="xsltests" group="base" id="nodes-on-same-spot" version="1" severity="error"/>
16    <maplint:test agent="xsltests" group="base" id="untagged-way" version="1" severity="warning"/>
17    <maplint:test agent="xsltests" group="main" id="bridge-or-tunnel-without-layer" version="1" severity="warning"/>
18    <maplint:test agent="xsltests" group="main" id="deprecated-tags" version="1" severity="error"/>
19    <maplint:test agent="xsltests" group="main" id="motorway-without-ref" version="1" severity="error"/>
20    <maplint:test agent="xsltests" group="main" id="place-of-worship-without-religion" version="1" severity="warning"/>
21    <maplint:test agent="xsltests" group="main" id="poi-without-name" version="1" severity="warning"/>
22    <maplint:test agent="xsltests" group="main" id="rare-speedlimit" version="1" severity="warning"/>
23    <maplint:test agent="xsltests" group="main" id="residential-without-name" version="1" severity="warning"/>
24    <maplint:test agent="xsltests" group="main" id="unreviewed_tiger" version="1" severity="notice"/>
25    <maplint:test agent="xsltests" group="relations" id="member-missing" version="1" severity="error"/>
26    <maplint:test agent="xsltests" group="strict" id="not-in-map_features" version="2" severity="notice"/>
27  </xslout:template>
28  <xslout:template name="call-tests-any">
29    <xslout:call-template name="test-base-empty-tag-key-any"/>
30    <xslout:call-template name="test-base-empty-tag-value-any"/>
31    <xslout:call-template name="test-main-deprecated-tags-any"/>
32    <xslout:call-template name="test-main-unreviewed_tiger-any"/>
33  </xslout:template>
34  <xslout:template name="call-tests-node">
35    <xslout:call-template name="test-base-nodes-on-same-spot-node"/>
36    <xslout:call-template name="test-main-place-of-worship-without-religion-node"/>
37    <xslout:call-template name="test-main-poi-without-name-node"/>
38    <xslout:call-template name="test-strict-not-in-map_features-node"/>
39  </xslout:template>
40  <xslout:template name="call-tests-segment"/>
41  <xslout:template name="call-tests-way">
42    <xslout:call-template name="test-base-untagged-way-way"/>
43    <xslout:call-template name="test-main-bridge-or-tunnel-without-layer-way"/>
44    <xslout:call-template name="test-main-motorway-without-ref-way"/>
45    <xslout:call-template name="test-main-rare-speedlimit-way"/>
46    <xslout:call-template name="test-main-residential-without-name-way"/>
47    <xslout:call-template name="test-strict-not-in-map_features-way"/>
48  </xslout:template>
49  <xslout:template name="call-tests-relation">
50    <xslout:call-template name="test-relations-member-missing-relation"/>
51  </xslout:template>
52  <xslout:template name="test-base-empty-tag-key-any">
53        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="tag[@k='']">
54            <maplint:result ref="empty-tag-key">Value=<xsl:value-of select="tag[@k='']/@v"/></maplint:result>
55        </xsl:if>
56    </xslout:template>
57  <xslout:template name="test-base-empty-tag-value-any">
58        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:empty-tag-value' and @v='ignore'])">
59            <xsl:if test="tag[@v='']">
60                <maplint:result ref="empty-tag-value">Key=<xsl:value-of select="tag[@v='']/@k"/></maplint:result>
61            </xsl:if>
62        </xsl:if>
63    </xslout:template>
64  <xslout:template name="test-main-deprecated-tags-any">
65        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="tag/@k='class'">
66            <maplint:result ref="deprecated-tags">class</maplint:result>
67        </xsl:if>
68    </xslout:template>
69  <xslout:template name="test-main-unreviewed_tiger-any">
70        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:unreviewed-tiger' and @v='ignore'])">
71            <xsl:if test="(tag[@k='tiger:reviewed' and @v='no'])">
72                <maplint:result ref="unreviewed_tiger"/>
73            </xsl:if>
74        </xsl:if>
75    </xslout:template>
76  <xslout:template name="test-base-nodes-on-same-spot-node">
77        <xsl:variable xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="nodes" select="key('nodesbycoordinates', concat(@lon, ' ', @lat))"/>
78        <xsl:variable xmlns:xsl="http://www.w3.org/1999/XSL/Transform" name="nid" select="@id"/>
79
80        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="count($nodes) != 1">
81            <maplint:result ref="nodes-on-same-spot">
82                <xsl:text>Nodes:</xsl:text>
83                <xsl:for-each select="$nodes">
84                    <xsl:if test="@id != $nid">
85                        <xsl:value-of select="concat(' ', @id)"/>
86                    </xsl:if>
87                </xsl:for-each>
88            </maplint:result>
89        </xsl:if>
90    </xslout:template>
91  <xslout:template name="test-main-place-of-worship-without-religion-node">
92        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:place-of-worship-without-religion' and @v='ignore'])">
93            <xsl:if test="(tag[@k='amenity' and @v='place_of_worship']) and not(tag[@k='religion'])">
94                <maplint:result ref="place-of-worship-without-religion"/>
95            </xsl:if>
96        </xsl:if>
97    </xslout:template>
98  <xslout:template name="test-main-poi-without-name-node">
99        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:poi-without-name' and @v='ignore']) and not (tag[@k='noname' and @v='yes'])">
100            <xsl:if test="(tag[@k='amenity' and (@v='place_of_worship' or @v='cinema' or @v='pharmacy' or @v='pub' or @v='restaurant' or @v='school' or @v='university' or @v='hospital' or @v='library' or @v='theatre' or @v='courthouse' or @v='bank')]) and not(tag[@k='name'])">
101                <maplint:result ref="poi-without-name">
102                    <xsl:text>amenity=</xsl:text>
103                    <xsl:value-of select="tag[@k='amenity']/@v"/>
104                </maplint:result>
105            </xsl:if>
106        </xsl:if>
107    </xslout:template>
108  <xslout:template name="test-strict-not-in-map_features-node">
109<xsl:for-each xmlns:xsl="http://www.w3.org/1999/XSL/Transform" select="tag">
110<xsl:choose>
111<xsl:when test="starts-with(@k, 'tiger:')">
112</xsl:when>
113<xsl:when test="starts-with(@k, 'AND_')">
114</xsl:when>
115<xsl:when test="starts-with(@k, 'AND:')">
116</xsl:when>
117<xsl:when test="starts-with(@k, 'gns:')">
118</xsl:when>
119<xsl:when test="starts-with(@k, 'massgis:')">
120</xsl:when>
121<xsl:when test="starts-with(@k, 'openGeoDB:')">
122</xsl:when>
123<xsl:when test="starts-with(@k, 'opengeodb:')">
124</xsl:when>
125<xsl:when test="@k='TMC:LocationCode'">
126<xsl:choose>
127<xsl:when test="@v='see description'"/>
128<xsl:otherwise>
129<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
130</xsl:otherwise>
131</xsl:choose>
132</xsl:when>
133<xsl:when test="@k='addr:city'">
134
135</xsl:when>
136<xsl:when test="@k='addr:country'">
137
138</xsl:when>
139<xsl:when test="@k='addr:housename'">
140
141</xsl:when>
142<xsl:when test="@k='addr:housenumber'">
143
144</xsl:when>
145<xsl:when test="@k='addr:postcode'">
146
147</xsl:when>
148<xsl:when test="@k='addr:street'">
149
150</xsl:when>
151<xsl:when test="@k='aerialway'">
152<xsl:choose>
153<xsl:when test="@v='station'"/>
154
155</xsl:choose>
156</xsl:when>
157<xsl:when test="@k='aeroway'">
158<xsl:choose>
159<xsl:when test="@v='aerodrome'"/>
160<xsl:when test="@v='gate'"/>
161<xsl:when test="@v='helipad'"/>
162<xsl:when test="@v='terminal'"/>
163<xsl:when test="@v='windsock'"/>
164
165</xsl:choose>
166</xsl:when>
167<xsl:when test="@k='alt_name'">
168
169</xsl:when>
170<xsl:when test="@k='amenity'">
171<xsl:choose>
172<xsl:when test="@v='arts_centre'"/>
173<xsl:when test="@v='atm'"/>
174<xsl:when test="@v='baby_hatch'"/>
175<xsl:when test="@v='bank'"/>
176<xsl:when test="@v='bbq'"/>
177<xsl:when test="@v='bench'"/>
178<xsl:when test="@v='bicycle_parking'"/>
179<xsl:when test="@v='bicycle_rental'"/>
180<xsl:when test="@v='biergarten'"/>
181<xsl:when test="@v='brothel'"/>
182<xsl:when test="@v='bureau_de_change'"/>
183<xsl:when test="@v='bus_station'"/>
184<xsl:when test="@v='cafe'"/>
185<xsl:when test="@v='car_rental'"/>
186<xsl:when test="@v='car_sharing'"/>
187<xsl:when test="@v='cinema'"/>
188<xsl:when test="@v='college'"/>
189<xsl:when test="@v='courthouse'"/>
190<xsl:when test="@v='crematorium'"/>
191<xsl:when test="@v='dentist'"/>
192<xsl:when test="@v='doctors'"/>
193<xsl:when test="@v='drinking_water'"/>
194<xsl:when test="@v='embassy'"/>
195<xsl:when test="@v='emergency_phone'"/>
196<xsl:when test="@v='fast_food'"/>
197<xsl:when test="@v='ferry_terminal'"/>
198<xsl:when test="@v='fire_station'"/>
199<xsl:when test="@v='food_court'"/>
200<xsl:when test="@v='fountain'"/>
201<xsl:when test="@v='fuel'"/>
202<xsl:when test="@v='grave_yard'"/>
203<xsl:when test="@v='grit_bin'"/>
204<xsl:when test="@v='hospital'"/>
205<xsl:when test="@v='hunting_stand'"/>
206<xsl:when test="@v='kindergarten'"/>
207<xsl:when test="@v='library'"/>
208<xsl:when test="@v='nightclub'"/>
209<xsl:when test="@v='parking'"/>
210<xsl:when test="@v='pharmacy'"/>
211<xsl:when test="@v='place_of_worship'"/>
212<xsl:when test="@v='police'"/>
213<xsl:when test="@v='post_box'"/>
214<xsl:when test="@v='post_office'"/>
215<xsl:when test="@v='prison'"/>
216<xsl:when test="@v='pub'"/>
217<xsl:when test="@v='public_building'"/>
218<xsl:when test="@v='recycling'"/>
219<xsl:when test="@v='restaurant'"/>
220<xsl:when test="@v='school'"/>
221<xsl:when test="@v='shelter'"/>
222<xsl:when test="@v='stripclub'"/>
223<xsl:when test="@v='studio'"/>
224<xsl:when test="@v='taxi'"/>
225<xsl:when test="@v='telephone'"/>
226<xsl:when test="@v='theatre'"/>
227<xsl:when test="@v='toilets'"/>
228<xsl:when test="@v='townhall'"/>
229<xsl:when test="@v='university'"/>
230<xsl:when test="@v='vending_machine'"/>
231<xsl:when test="@v='veterinary'"/>
232<xsl:when test="@v='waste_basket'"/>
233<xsl:when test="@v='waste_disposal'"/>
234
235</xsl:choose>
236</xsl:when>
237<xsl:when test="@k='attribution'">
238
239</xsl:when>
240<xsl:when test="@k='barrier'">
241<xsl:choose>
242<xsl:when test="@v='bollard'"/>
243<xsl:when test="@v='cattle_grid'"/>
244<xsl:when test="@v='cycle_barrier'"/>
245<xsl:when test="@v='entrance'"/>
246<xsl:when test="@v='gate'"/>
247<xsl:when test="@v='sally_port'"/>
248<xsl:when test="@v='stile'"/>
249<xsl:when test="@v='toll_booth'"/>
250<xsl:otherwise>
251<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
252</xsl:otherwise>
253</xsl:choose>
254</xsl:when>
255<xsl:when test="@k='bridge'">
256<xsl:choose>
257<xsl:when test="@v='aqueduct'"/>
258<xsl:when test="@v='swing'"/>
259<xsl:when test="@v='viaduct'"/>
260<xsl:when test="@v='yes'"/>
261
262</xsl:choose>
263</xsl:when>
264<xsl:when test="@k='charge'">
265<xsl:choose>
266<xsl:when test="string(number(@v)) != 'NaN'"/>
267<xsl:otherwise>
268<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
269</xsl:otherwise>
270</xsl:choose>
271</xsl:when>
272<xsl:when test="contains(@k, 'name:')">
273
274</xsl:when>
275<xsl:when test="@k='created_by'">
276
277</xsl:when>
278<xsl:when test="@k='crossing'">
279<xsl:choose>
280<xsl:when test="@v='no'"/>
281<xsl:when test="@v='traffic_signals'"/>
282<xsl:when test="@v='uncontrolled'"/>
283<xsl:otherwise>
284<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
285</xsl:otherwise>
286</xsl:choose>
287</xsl:when>
288<xsl:when test="@k='description'">
289
290</xsl:when>
291<xsl:when test="@k='disused'">
292<xsl:choose>
293<xsl:when test="@v='yes'"/>
294<xsl:when test="@v='yes'"/>
295<xsl:otherwise>
296<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
297</xsl:otherwise>
298</xsl:choose>
299</xsl:when>
300<xsl:when test="@k='ele'">
301<xsl:choose>
302<xsl:when test="string(number(@v)) != 'NaN'"/>
303<xsl:otherwise>
304<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
305</xsl:otherwise>
306</xsl:choose>
307</xsl:when>
308<xsl:when test="@k='fixme'">
309
310</xsl:when>
311<xsl:when test="@k='highway'">
312<xsl:choose>
313<xsl:when test="@v='bus_stop'"/>
314<xsl:when test="@v='crossing'"/>
315<xsl:when test="@v='emergency_access_point'"/>
316<xsl:when test="@v='ford'"/>
317<xsl:when test="@v='incline'"/>
318<xsl:when test="@v='incline_steep'"/>
319<xsl:when test="@v='mini_roundabout'"/>
320<xsl:when test="@v='motorway_junction'"/>
321<xsl:when test="@v='passing_place'"/>
322<xsl:when test="@v='services'"/>
323<xsl:when test="@v='speed_camera'"/>
324<xsl:when test="@v='stop'"/>
325<xsl:when test="@v='traffic_signals'"/>
326<xsl:when test="@v='turning_circle'"/>
327
328</xsl:choose>
329</xsl:when>
330<xsl:when test="@k='historic'">
331<xsl:choose>
332<xsl:when test="@v='archaeological_site'"/>
333<xsl:when test="@v='battlefield'"/>
334<xsl:when test="@v='castle'"/>
335<xsl:when test="@v='memorial'"/>
336<xsl:when test="@v='monument'"/>
337<xsl:when test="@v='ruins'"/>
338<xsl:when test="@v='wreck'"/>
339<xsl:when test="@v='yes'"/>
340
341</xsl:choose>
342</xsl:when>
343<xsl:when test="@k='history'">
344
345</xsl:when>
346<xsl:when test="@k='iata'">
347
348</xsl:when>
349<xsl:when test="@k='icao'">
350
351</xsl:when>
352<xsl:when test="@k='image'">
353<xsl:choose>
354<xsl:when test="@v='URL'"/>
355<xsl:otherwise>
356<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
357</xsl:otherwise>
358</xsl:choose>
359</xsl:when>
360<xsl:when test="@k='incline'">
361<xsl:choose>
362<xsl:when test="@v='Number%'"/>
363<xsl:otherwise>
364<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
365</xsl:otherwise>
366</xsl:choose>
367</xsl:when>
368<xsl:when test="@k='int_name'">
369
370</xsl:when>
371<xsl:when test="@k='int_ref'">
372
373</xsl:when>
374<xsl:when test="@k='internet_access'">
375<xsl:choose>
376<xsl:when test="@v='public'"/>
377<xsl:when test="@v='service'"/>
378<xsl:when test="@v='terminal'"/>
379<xsl:when test="@v='wired'"/>
380<xsl:when test="@v='wlan'"/>
381<xsl:otherwise>
382<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
383</xsl:otherwise>
384</xsl:choose>
385</xsl:when>
386<xsl:when test="@k='is_in'">
387
388</xsl:when>
389<xsl:when test="@k='landuse'">
390<xsl:choose>
391<xsl:when test="@v='allotments'"/>
392<xsl:when test="@v='basin'"/>
393<xsl:when test="@v='brownfield'"/>
394<xsl:when test="@v='commercial'"/>
395<xsl:when test="@v='construction'"/>
396<xsl:when test="@v='forest'"/>
397<xsl:when test="@v='greenfield'"/>
398<xsl:when test="@v='industrial'"/>
399<xsl:when test="@v='landfill'"/>
400<xsl:when test="@v='meadow'"/>
401<xsl:when test="@v='military'"/>
402<xsl:when test="@v='quarry'"/>
403<xsl:when test="@v='recreation_ground'"/>
404<xsl:when test="@v='reservoir'"/>
405<xsl:when test="@v='residential'"/>
406<xsl:when test="@v='retail'"/>
407<xsl:when test="@v='village_green'"/>
408<xsl:when test="@v='vineyard'"/>
409<xsl:when test="@v='wood'"/>
410
411</xsl:choose>
412</xsl:when>
413<xsl:when test="@k='leisure'">
414<xsl:choose>
415<xsl:when test="@v='common'"/>
416<xsl:when test="@v='fishing'"/>
417<xsl:when test="@v='garden'"/>
418<xsl:when test="@v='golf_course'"/>
419<xsl:when test="@v='ice_rink'"/>
420<xsl:when test="@v='marina'"/>
421<xsl:when test="@v='miniature_golf'"/>
422<xsl:when test="@v='nature_reserve'"/>
423<xsl:when test="@v='park'"/>
424<xsl:when test="@v='pitch'"/>
425<xsl:when test="@v='playground'"/>
426<xsl:when test="@v='slipway'"/>
427<xsl:when test="@v='sports_centre'"/>
428<xsl:when test="@v='stadium'"/>
429<xsl:when test="@v='track'"/>
430<xsl:when test="@v='water_park'"/>
431
432</xsl:choose>
433</xsl:when>
434<xsl:when test="@k='loc_name'">
435
436</xsl:when>
437<xsl:when test="@k='loc_ref'">
438
439</xsl:when>
440<xsl:when test="@k='lock'">
441<xsl:choose>
442<xsl:when test="@v='yes'"/>
443<xsl:otherwise>
444<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
445</xsl:otherwise>
446</xsl:choose>
447</xsl:when>
448<xsl:when test="@k='man_made'">
449<xsl:choose>
450<xsl:when test="@v='beacon'"/>
451<xsl:when test="@v='crane'"/>
452<xsl:when test="@v='gasometer'"/>
453<xsl:when test="@v='lighthouse'"/>
454<xsl:when test="@v='reservoir_covered'"/>
455<xsl:when test="@v='surveillance'"/>
456<xsl:when test="@v='survey_point'"/>
457<xsl:when test="@v='tower'"/>
458<xsl:when test="@v='wastewater_plant'"/>
459<xsl:when test="@v='water_tower'"/>
460<xsl:when test="@v='water_works'"/>
461<xsl:when test="@v='watermill'"/>
462<xsl:when test="@v='windmill'"/>
463<xsl:when test="@v='works'"/>
464
465</xsl:choose>
466</xsl:when>
467<xsl:when test="@k='military'">
468<xsl:choose>
469<xsl:when test="@v='airfield'"/>
470<xsl:when test="@v='barracks'"/>
471<xsl:when test="@v='bunker'"/>
472<xsl:when test="@v='danger_area'"/>
473<xsl:when test="@v='naval_base'"/>
474<xsl:when test="@v='range'"/>
475
476</xsl:choose>
477</xsl:when>
478<xsl:when test="@k='motorroad'">
479<xsl:choose>
480<xsl:when test="@v='no'"/>
481<xsl:when test="@v='yes'"/>
482<xsl:otherwise>
483<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
484</xsl:otherwise>
485</xsl:choose>
486</xsl:when>
487<xsl:when test="@k='mountain_pass'">
488<xsl:choose>
489<xsl:when test="@v='yes'"/>
490<xsl:otherwise>
491<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
492</xsl:otherwise>
493</xsl:choose>
494</xsl:when>
495<xsl:when test="@k='name'">
496
497</xsl:when>
498<xsl:when test="@k='nat_name'">
499
500</xsl:when>
501<xsl:when test="@k='nat_ref'">
502
503</xsl:when>
504<xsl:when test="@k='natural'">
505<xsl:choose>
506<xsl:when test="@v='bay'"/>
507<xsl:when test="@v='beach'"/>
508<xsl:when test="@v='cave_entrance'"/>
509<xsl:when test="@v='cliff'"/>
510<xsl:when test="@v='coastline'"/>
511<xsl:when test="@v='fell'"/>
512<xsl:when test="@v='glacier'"/>
513<xsl:when test="@v='heath'"/>
514<xsl:when test="@v='land'"/>
515<xsl:when test="@v='marsh'"/>
516<xsl:when test="@v='mud'"/>
517<xsl:when test="@v='peak'"/>
518<xsl:when test="@v='scree'"/>
519<xsl:when test="@v='scrub'"/>
520<xsl:when test="@v='spring'"/>
521<xsl:when test="@v='tree'"/>
522<xsl:when test="@v='volcano'"/>
523<xsl:when test="@v='water'"/>
524<xsl:when test="@v='wetland'"/>
525<xsl:when test="@v='wood'"/>
526
527</xsl:choose>
528</xsl:when>
529<xsl:when test="@k='noname'">
530<xsl:choose>
531<xsl:when test="@v='yes'"/>
532<xsl:otherwise>
533<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
534</xsl:otherwise>
535</xsl:choose>
536</xsl:when>
537<xsl:when test="@k='note'">
538
539</xsl:when>
540<xsl:when test="@k='old_name'">
541
542</xsl:when>
543<xsl:when test="@k='old_ref'">
544
545</xsl:when>
546<xsl:when test="@k='opening_hours'">
547<xsl:choose>
548<xsl:when test="@v='24/7'"/>
549<xsl:when test="@v='mo md hh:mm-hh:mm. (read described syntax)'"/>
550<xsl:otherwise>
551<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
552</xsl:otherwise>
553</xsl:choose>
554</xsl:when>
555<xsl:when test="@k='operator'">
556
557</xsl:when>
558<xsl:when test="@k='osmarender:render'">
559<xsl:choose>
560<xsl:when test="@v='no'"/>
561<xsl:otherwise>
562<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
563</xsl:otherwise>
564</xsl:choose>
565</xsl:when>
566<xsl:when test="@k='osmarender:renderName'">
567<xsl:choose>
568<xsl:when test="@v='no'"/>
569<xsl:otherwise>
570<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
571</xsl:otherwise>
572</xsl:choose>
573</xsl:when>
574<xsl:when test="@k='osmarender:renderRef'">
575<xsl:choose>
576<xsl:when test="@v='no'"/>
577<xsl:otherwise>
578<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
579</xsl:otherwise>
580</xsl:choose>
581</xsl:when>
582<xsl:when test="@k='place'">
583<xsl:choose>
584<xsl:when test="@v='city'"/>
585<xsl:when test="@v='continent'"/>
586<xsl:when test="@v='country'"/>
587<xsl:when test="@v='county'"/>
588<xsl:when test="@v='hamlet'"/>
589<xsl:when test="@v='island'"/>
590<xsl:when test="@v='locality'"/>
591<xsl:when test="@v='region'"/>
592<xsl:when test="@v='state'"/>
593<xsl:when test="@v='suburb'"/>
594<xsl:when test="@v='town'"/>
595<xsl:when test="@v='village'"/>
596<xsl:otherwise>
597<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
598</xsl:otherwise>
599</xsl:choose>
600</xsl:when>
601<xsl:when test="@k='place_numbers'">
602
603</xsl:when>
604<xsl:when test="@k='population'">
605<xsl:choose>
606<xsl:when test="string(number(@v)) != 'NaN'"/>
607<xsl:otherwise>
608<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
609</xsl:otherwise>
610</xsl:choose>
611</xsl:when>
612<xsl:when test="@k='postal_code'">
613
614</xsl:when>
615<xsl:when test="@k='power'">
616<xsl:choose>
617<xsl:when test="@v='generator'"/>
618<xsl:when test="@v='station'"/>
619<xsl:when test="@v='sub_station'"/>
620<xsl:when test="@v='tower'"/>
621<xsl:otherwise>
622<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
623</xsl:otherwise>
624</xsl:choose>
625</xsl:when>
626<xsl:when test="@k='railway'">
627<xsl:choose>
628<xsl:when test="@v='buffer_stop'"/>
629<xsl:when test="@v='crossing'"/>
630<xsl:when test="@v='halt'"/>
631<xsl:when test="@v='level_crossing'"/>
632<xsl:when test="@v='station'"/>
633<xsl:when test="@v='subway_entrance'"/>
634<xsl:when test="@v='tram_stop'"/>
635<xsl:when test="@v='turntable'"/>
636
637</xsl:choose>
638</xsl:when>
639<xsl:when test="@k='ref'">
640
641</xsl:when>
642<xsl:when test="@k='reg_name'">
643
644</xsl:when>
645<xsl:when test="@k='reg_ref'">
646
647</xsl:when>
648<xsl:when test="@k='route'">
649
650</xsl:when>
651<xsl:when test="@k='shop'">
652<xsl:choose>
653<xsl:when test="@v='alcohol'"/>
654<xsl:when test="@v='bakery'"/>
655<xsl:when test="@v='beverages'"/>
656<xsl:when test="@v='bicycle'"/>
657<xsl:when test="@v='books'"/>
658<xsl:when test="@v='butcher'"/>
659<xsl:when test="@v='car'"/>
660<xsl:when test="@v='car_repair'"/>
661<xsl:when test="@v='chemist'"/>
662<xsl:when test="@v='clothes'"/>
663<xsl:when test="@v='computer'"/>
664<xsl:when test="@v='confectionery'"/>
665<xsl:when test="@v='convenience'"/>
666<xsl:when test="@v='department_store'"/>
667<xsl:when test="@v='doityourself'"/>
668<xsl:when test="@v='dry_cleaning'"/>
669<xsl:when test="@v='electronics'"/>
670<xsl:when test="@v='farm'"/>
671<xsl:when test="@v='florist'"/>
672<xsl:when test="@v='funeral_directors'"/>
673<xsl:when test="@v='furniture'"/>
674<xsl:when test="@v='garden_centre'"/>
675<xsl:when test="@v='gift'"/>
676<xsl:when test="@v='greengrocer'"/>
677<xsl:when test="@v='hairdresser'"/>
678<xsl:when test="@v='hardware'"/>
679<xsl:when test="@v='hifi'"/>
680<xsl:when test="@v='kiosk'"/>
681<xsl:when test="@v='laundry'"/>
682<xsl:when test="@v='mall'"/>
683<xsl:when test="@v='motorcycle'"/>
684<xsl:when test="@v='newsagent'"/>
685<xsl:when test="@v='optician'"/>
686<xsl:when test="@v='organic'"/>
687<xsl:when test="@v='outdoor'"/>
688<xsl:when test="@v='shoes'"/>
689<xsl:when test="@v='sports'"/>
690<xsl:when test="@v='stationery'"/>
691<xsl:when test="@v='supermarket'"/>
692<xsl:when test="@v='toys'"/>
693<xsl:when test="@v='travel_agency'"/>
694<xsl:when test="@v='video'"/>
695
696</xsl:choose>
697</xsl:when>
698<xsl:when test="@k='source'">
699<xsl:choose>
700<xsl:when test="@v='extrapolation'"/>
701<xsl:when test="@v='historical'"/>
702<xsl:when test="@v='image'"/>
703<xsl:when test="@v='knowledge'"/>
704<xsl:when test="@v='survey'"/>
705<xsl:when test="@v='voice'"/>
706
707</xsl:choose>
708</xsl:when>
709<xsl:when test="@k='source:name'">
710
711</xsl:when>
712<xsl:when test="@k='source:ref'">
713
714</xsl:when>
715<xsl:when test="@k='source_ref'">
716
717</xsl:when>
718<xsl:when test="@k='sport'">
719<xsl:choose>
720<xsl:when test="@v='10pin'"/>
721<xsl:when test="@v='9pin'"/>
722<xsl:when test="@v='archery'"/>
723<xsl:when test="@v='athletics'"/>
724<xsl:when test="@v='australian_football'"/>
725<xsl:when test="@v='baseball'"/>
726<xsl:when test="@v='basketball'"/>
727<xsl:when test="@v='beachvolleyball'"/>
728<xsl:when test="@v='boules'"/>
729<xsl:when test="@v='bowls'"/>
730<xsl:when test="@v='canoe'"/>
731<xsl:when test="@v='chess'"/>
732<xsl:when test="@v='climbing'"/>
733<xsl:when test="@v='cricket'"/>
734<xsl:when test="@v='cricket_nets'"/>
735<xsl:when test="@v='croquet'"/>
736<xsl:when test="@v='cycling'"/>
737<xsl:when test="@v='diving'"/>
738<xsl:when test="@v='dog_racing'"/>
739<xsl:when test="@v='equestrian'"/>
740<xsl:when test="@v='football'"/>
741<xsl:when test="@v='golf'"/>
742<xsl:when test="@v='gymnastics'"/>
743<xsl:when test="@v='hockey'"/>
744<xsl:when test="@v='horse_racing'"/>
745<xsl:when test="@v='korfball'"/>
746<xsl:when test="@v='motor'"/>
747<xsl:when test="@v='multi'"/>
748<xsl:when test="@v='orienteering'"/>
749<xsl:when test="@v='paddle_tennis'"/>
750<xsl:when test="@v='paragliding'"/>
751<xsl:when test="@v='pelota'"/>
752<xsl:when test="@v='racquet'"/>
753<xsl:when test="@v='rowing'"/>
754<xsl:when test="@v='rugby'"/>
755<xsl:when test="@v='shooting'"/>
756<xsl:when test="@v='skateboard'"/>
757<xsl:when test="@v='skating'"/>
758<xsl:when test="@v='skiing'"/>
759<xsl:when test="@v='soccer'"/>
760<xsl:when test="@v='swimming'"/>
761<xsl:when test="@v='table_tennis'"/>
762<xsl:when test="@v='team_handball'"/>
763<xsl:when test="@v='tennis'"/>
764<xsl:when test="@v='volleyball'"/>
765<xsl:otherwise>
766<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
767</xsl:otherwise>
768</xsl:choose>
769</xsl:when>
770<xsl:when test="@k='toll'">
771<xsl:choose>
772<xsl:when test="@v='yes'"/>
773<xsl:otherwise>
774<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
775</xsl:otherwise>
776</xsl:choose>
777</xsl:when>
778<xsl:when test="@k='tourism'">
779<xsl:choose>
780<xsl:when test="@v='alpine_hut'"/>
781<xsl:when test="@v='artwork'"/>
782<xsl:when test="@v='attraction'"/>
783<xsl:when test="@v='camp_site'"/>
784<xsl:when test="@v='caravan_site'"/>
785<xsl:when test="@v='chalet'"/>
786<xsl:when test="@v='guest_house'"/>
787<xsl:when test="@v='hostel'"/>
788<xsl:when test="@v='hotel'"/>
789<xsl:when test="@v='information'"/>
790<xsl:when test="@v='motel'"/>
791<xsl:when test="@v='museum'"/>
792<xsl:when test="@v='picnic_site'"/>
793<xsl:when test="@v='theme_park'"/>
794<xsl:when test="@v='viewpoint'"/>
795<xsl:when test="@v='yes'"/>
796<xsl:when test="@v='zoo'"/>
797
798</xsl:choose>
799</xsl:when>
800<xsl:when test="@k='traffic_calming'">
801<xsl:choose>
802<xsl:when test="@v='Other Values'"/>
803<xsl:when test="@v='bump'"/>
804<xsl:when test="@v='chicane'"/>
805<xsl:when test="@v='choker'"/>
806<xsl:when test="@v='cushion'"/>
807<xsl:when test="@v='hump'"/>
808<xsl:when test="@v='rumble_strip'"/>
809<xsl:when test="@v='table'"/>
810<xsl:when test="@v='yes'"/>
811<xsl:otherwise>
812<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
813</xsl:otherwise>
814</xsl:choose>
815</xsl:when>
816<xsl:when test="@k='traffic_sign'">
817<xsl:choose>
818<xsl:when test="@v='city_limit'"/>
819<xsl:otherwise>
820<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
821</xsl:otherwise>
822</xsl:choose>
823</xsl:when>
824<xsl:when test="@k='url'">
825<xsl:choose>
826<xsl:when test="@v='URL'"/>
827<xsl:otherwise>
828<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
829</xsl:otherwise>
830</xsl:choose>
831</xsl:when>
832<xsl:when test="@k='validate:empty-tag-value'">
833<xsl:choose>
834<xsl:when test="@v='ignore'"/>
835<xsl:otherwise>
836<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
837</xsl:otherwise>
838</xsl:choose>
839</xsl:when>
840<xsl:when test="@k='validate:place-of-worship-without-religion'">
841<xsl:choose>
842<xsl:when test="@v='ignore'"/>
843<xsl:otherwise>
844<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
845</xsl:otherwise>
846</xsl:choose>
847</xsl:when>
848<xsl:when test="@k='validate:poi-without-name'">
849<xsl:choose>
850<xsl:when test="@v='ignore'"/>
851<xsl:otherwise>
852<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
853</xsl:otherwise>
854</xsl:choose>
855</xsl:when>
856<xsl:when test="@k='waterway'">
857<xsl:choose>
858<xsl:when test="@v='boatyard'"/>
859<xsl:when test="@v='dock'"/>
860<xsl:when test="@v='lock_gate'"/>
861<xsl:when test="@v='turning_point'"/>
862<xsl:when test="@v='weir'"/>
863
864</xsl:choose>
865</xsl:when>
866<xsl:when test="@k='website'">
867<xsl:choose>
868<xsl:when test="@v='URL'"/>
869<xsl:otherwise>
870<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
871</xsl:otherwise>
872</xsl:choose>
873</xsl:when>
874<xsl:when test="@k='wheelchair'">
875<xsl:choose>
876<xsl:when test="@v='limited'"/>
877<xsl:when test="@v='no'"/>
878<xsl:when test="@v='yes'"/>
879<xsl:otherwise>
880<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
881</xsl:otherwise>
882</xsl:choose>
883</xsl:when>
884<xsl:when test="@k='wikipedia'">
885<xsl:choose>
886<xsl:when test="@v='URL'"/>
887<xsl:otherwise>
888<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
889</xsl:otherwise>
890</xsl:choose>
891</xsl:when>
892<xsl:when test="@k='wood'">
893<xsl:choose>
894<xsl:when test="@v='coniferous'"/>
895<xsl:when test="@v='deciduous'"/>
896<xsl:when test="@v='mixed'"/>
897<xsl:otherwise>
898<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
899</xsl:otherwise>
900</xsl:choose>
901</xsl:when>
902<xsl:otherwise>
903<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Unknown key: ', @k, '=', @v)"/></maplint:result>
904</xsl:otherwise>
905</xsl:choose>
906</xsl:for-each>
907</xslout:template>
908  <xslout:template name="test-base-untagged-way-way">
909        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not(tag[@k != 'created_by'])">
910            <maplint:result ref="untagged-way"/>
911        </xsl:if>
912    </xslout:template>
913  <xslout:template name="test-main-bridge-or-tunnel-without-layer-way">
914        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:bridge-or-tunnel-without-layer' and @v='ignore'])">
915            <xsl:if test="(tag[(@k='bridge' or @k='tunnel') and @v='true']) and not(tag[@k='layer'])">
916                <maplint:result ref="bridge-or-tunnel-without-layer"/>
917            </xsl:if>
918        </xsl:if>
919    </xslout:template>
920  <xslout:template name="test-main-motorway-without-ref-way">
921        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:motorway-without-ref' and @v='ignore'])">
922            <xsl:if test="tag[@k='highway' and @v='motorway']">
923                <xsl:if test="not(tag[@k='ref'])">
924                    <maplint:result ref="motorway-without-ref"/>
925                </xsl:if>
926            </xsl:if>
927        </xsl:if>
928    </xslout:template>
929  <xslout:template name="test-main-rare-speedlimit-way">
930        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:rare-speedlimit' and @v='ignore'])">
931            <xsl:choose>
932                <xsl:when test="tag[@k='maxspeed' and @v='walk']"/>
933                <xsl:when test="tag[@k='maxspeed' and @v='5kmh']"/>
934                <xsl:when test="tag[@k='maxspeed' and @v='5']"/>
935                <xsl:when test="tag[@k='maxspeed' and @v='7kmh']"/>
936                <xsl:when test="tag[@k='maxspeed' and @v='7']"/>
937                <xsl:when test="tag[@k='maxspeed' and @v='10kmh']"/>
938                <xsl:when test="tag[@k='maxspeed' and @v='10']"/>
939                <xsl:when test="tag[@k='maxspeed' and @v='15mph']"/>
940                <xsl:when test="tag[@k='maxspeed' and @v='20kmh']"/>
941                <xsl:when test="tag[@k='maxspeed' and @v='20mph']"/>
942                <xsl:when test="tag[@k='maxspeed' and @v='20']"/>
943                <xsl:when test="tag[@k='maxspeed' and @v='24kmh']"/>
944                <xsl:when test="tag[@k='maxspeed' and @v='24']"/>
945                <xsl:when test="tag[@k='maxspeed' and @v='25mph']"/>
946                <xsl:when test="tag[@k='maxspeed' and @v='30kmh']"/>
947                <xsl:when test="tag[@k='maxspeed' and @v='30mph']"/>
948                <xsl:when test="tag[@k='maxspeed' and @v='30']"/>
949                <xsl:when test="tag[@k='maxspeed' and @v='32kmh']"/>
950                <xsl:when test="tag[@k='maxspeed' and @v='32']"/>
951                <xsl:when test="tag[@k='maxspeed' and @v='35mph']"/>
952                <xsl:when test="tag[@k='maxspeed' and @v='40kmh']"/>
953                <xsl:when test="tag[@k='maxspeed' and @v='40mph']"/>
954                <xsl:when test="tag[@k='maxspeed' and @v='40']"/>
955                <xsl:when test="tag[@k='maxspeed' and @v='45mph']"/>
956                <xsl:when test="tag[@k='maxspeed' and @v='48kmh']"/>
957                <xsl:when test="tag[@k='maxspeed' and @v='48']"/>
958                <xsl:when test="tag[@k='maxspeed' and @v='50kmh']"/>
959                <xsl:when test="tag[@k='maxspeed' and @v='50mph']"/>
960                <xsl:when test="tag[@k='maxspeed' and @v='50']"/>
961                <xsl:when test="tag[@k='maxspeed' and @v='55mph']"/>
962                <xsl:when test="tag[@k='maxspeed' and @v='56kmh']"/>
963                <xsl:when test="tag[@k='maxspeed' and @v='56']"/>
964                <xsl:when test="tag[@k='maxspeed' and @v='60kmh']"/>
965                <xsl:when test="tag[@k='maxspeed' and @v='60mph']"/>
966                <xsl:when test="tag[@k='maxspeed' and @v='60']"/>
967                <xsl:when test="tag[@k='maxspeed' and @v='64kmh']"/>
968                <xsl:when test="tag[@k='maxspeed' and @v='64']"/>
969                <xsl:when test="tag[@k='maxspeed' and @v='65mph']"/>
970                <xsl:when test="tag[@k='maxspeed' and @v='70kmh']"/>
971                <xsl:when test="tag[@k='maxspeed' and @v='70mph']"/>
972                <xsl:when test="tag[@k='maxspeed' and @v='70']"/>
973                <xsl:when test="tag[@k='maxspeed' and @v='72kmh']"/>
974                <xsl:when test="tag[@k='maxspeed' and @v='72']"/>
975                <xsl:when test="tag[@k='maxspeed' and @v='75mph']"/>
976                <xsl:when test="tag[@k='maxspeed' and @v='80kmh']"/>
977                <xsl:when test="tag[@k='maxspeed' and @v='80mph']"/>
978                <xsl:when test="tag[@k='maxspeed' and @v='80']"/>
979                <xsl:when test="tag[@k='maxspeed' and @v='88kmh']"/>
980                <xsl:when test="tag[@k='maxspeed' and @v='88']"/>
981                <xsl:when test="tag[@k='maxspeed' and @v='90kmh']"/>
982                <xsl:when test="tag[@k='maxspeed' and @v='90']"/>
983                <xsl:when test="tag[@k='maxspeed' and @v='96kmh']"/>
984                <xsl:when test="tag[@k='maxspeed' and @v='96']"/>
985                <xsl:when test="tag[@k='maxspeed' and @v='100kmh']"/>
986                <xsl:when test="tag[@k='maxspeed' and @v='100']"/>
987                <xsl:when test="tag[@k='maxspeed' and @v='104kmh']"/>
988                <xsl:when test="tag[@k='maxspeed' and @v='104']"/>
989                <xsl:when test="tag[@k='maxspeed' and @v='110kmh']"/>
990                <xsl:when test="tag[@k='maxspeed' and @v='110']"/>
991                <xsl:when test="tag[@k='maxspeed' and @v='112kmh']"/>
992                <xsl:when test="tag[@k='maxspeed' and @v='112']"/>
993                <xsl:when test="tag[@k='maxspeed' and @v='120kmh']"/>
994                <xsl:when test="tag[@k='maxspeed' and @v='120']"/>
995                <xsl:when test="tag[@k='maxspeed' and @v='128kmh']"/>
996                <xsl:when test="tag[@k='maxspeed' and @v='128']"/>
997                <xsl:when test="tag[@k='maxspeed' and @v='130kmh']"/>
998                <xsl:when test="tag[@k='maxspeed' and @v='130']"/>
999                <xsl:when test="tag[@k='maxspeed' and @v='none']"/>
1000                <xsl:when test="tag[@k='maxspeed']">
1001                    <maplint:result ref="rare-speedlimit"/>
1002                </xsl:when>
1003            </xsl:choose>
1004            <xsl:choose>
1005                <xsl:when test="tag[@k='maxspeed:mph' and @v='walk']"/>
1006                <xsl:when test="tag[@k='maxspeed:mph' and @v='15mph']"/>
1007                <xsl:when test="tag[@k='maxspeed:mph' and @v='15']"/>
1008                <xsl:when test="tag[@k='maxspeed:mph' and @v='20mph']"/>
1009                <xsl:when test="tag[@k='maxspeed:mph' and @v='20']"/>
1010                <xsl:when test="tag[@k='maxspeed:mph' and @v='25mph']"/>
1011                <xsl:when test="tag[@k='maxspeed:mph' and @v='25']"/>
1012                <xsl:when test="tag[@k='maxspeed:mph' and @v='30mph']"/>
1013                <xsl:when test="tag[@k='maxspeed:mph' and @v='30']"/>
1014                <xsl:when test="tag[@k='maxspeed:mph' and @v='35mph']"/>
1015                <xsl:when test="tag[@k='maxspeed:mph' and @v='35']"/>
1016                <xsl:when test="tag[@k='maxspeed:mph' and @v='40mph']"/>
1017                <xsl:when test="tag[@k='maxspeed:mph' and @v='40']"/>
1018                <xsl:when test="tag[@k='maxspeed:mph' and @v='45mph']"/>
1019                <xsl:when test="tag[@k='maxspeed:mph' and @v='45']"/>
1020                <xsl:when test="tag[@k='maxspeed:mph' and @v='50mph']"/>
1021                <xsl:when test="tag[@k='maxspeed:mph' and @v='50']"/>
1022                <xsl:when test="tag[@k='maxspeed:mph' and @v='55mph']"/>
1023                <xsl:when test="tag[@k='maxspeed:mph' and @v='55']"/>
1024                <xsl:when test="tag[@k='maxspeed:mph' and @v='60mph']"/>
1025                <xsl:when test="tag[@k='maxspeed:mph' and @v='60']"/>
1026                <xsl:when test="tag[@k='maxspeed:mph' and @v='65mph']"/>
1027                <xsl:when test="tag[@k='maxspeed:mph' and @v='65']"/>
1028                <xsl:when test="tag[@k='maxspeed:mph' and @v='70mph']"/>
1029                <xsl:when test="tag[@k='maxspeed:mph' and @v='70']"/>
1030                <xsl:when test="tag[@k='maxspeed:mph' and @v='75mph']"/>
1031                <xsl:when test="tag[@k='maxspeed:mph' and @v='75']"/>
1032                <xsl:when test="tag[@k='maxspeed:mph' and @v='80mph']"/>
1033                <xsl:when test="tag[@k='maxspeed:mph' and @v='80']"/>
1034                <xsl:when test="tag[@k='maxspeed:mph' and @v='none']"/>
1035                <xsl:when test="tag[@k='maxspeed:mph']">
1036                    <maplint:result ref="rare-speedlimit"/>
1037                </xsl:when>
1038            </xsl:choose>
1039            <xsl:choose>
1040                <xsl:when test="tag[@k='maxspeed:kmh' and @v='walk']"/>
1041                <xsl:when test="tag[@k='maxspeed:kmh' and @v='5kmh']"/>
1042                <xsl:when test="tag[@k='maxspeed:kmh' and @v='5']"/>
1043                <xsl:when test="tag[@k='maxspeed:kmh' and @v='7kmh']"/>
1044                <xsl:when test="tag[@k='maxspeed:kmh' and @v='7']"/>
1045                <xsl:when test="tag[@k='maxspeed:kmh' and @v='10kmh']"/>
1046                <xsl:when test="tag[@k='maxspeed:kmh' and @v='10']"/>
1047                <xsl:when test="tag[@k='maxspeed:kmh' and @v='20kmh']"/>
1048                <xsl:when test="tag[@k='maxspeed:kmh' and @v='20']"/>
1049                <xsl:when test="tag[@k='maxspeed:kmh' and @v='24kmh']"/>
1050                <xsl:when test="tag[@k='maxspeed:kmh' and @v='24']"/>
1051                <xsl:when test="tag[@k='maxspeed:kmh' and @v='30kmh']"/>
1052                <xsl:when test="tag[@k='maxspeed:kmh' and @v='30']"/>
1053                <xsl:when test="tag[@k='maxspeed:kmh' and @v='32kmh']"/>
1054                <xsl:when test="tag[@k='maxspeed:kmh' and @v='32']"/>
1055                <xsl:when test="tag[@k='maxspeed:kmh' and @v='40kmh']"/>
1056                <xsl:when test="tag[@k='maxspeed:kmh' and @v='40']"/>
1057                <xsl:when test="tag[@k='maxspeed:kmh' and @v='48kmh']"/>
1058                <xsl:when test="tag[@k='maxspeed:kmh' and @v='48']"/>
1059                <xsl:when test="tag[@k='maxspeed:kmh' and @v='50kmh']"/>
1060                <xsl:when test="tag[@k='maxspeed:kmh' and @v='50']"/>
1061                <xsl:when test="tag[@k='maxspeed:kmh' and @v='56kmh']"/>
1062                <xsl:when test="tag[@k='maxspeed:kmh' and @v='56']"/>
1063                <xsl:when test="tag[@k='maxspeed:kmh' and @v='60kmh']"/>
1064                <xsl:when test="tag[@k='maxspeed:kmh' and @v='60']"/>
1065                <xsl:when test="tag[@k='maxspeed:kmh' and @v='64kmh']"/>
1066                <xsl:when test="tag[@k='maxspeed:kmh' and @v='64']"/>
1067                <xsl:when test="tag[@k='maxspeed:kmh' and @v='70kmh']"/>
1068                <xsl:when test="tag[@k='maxspeed:kmh' and @v='70']"/>
1069                <xsl:when test="tag[@k='maxspeed:kmh' and @v='72kmh']"/>
1070                <xsl:when test="tag[@k='maxspeed:kmh' and @v='72']"/>
1071                <xsl:when test="tag[@k='maxspeed:kmh' and @v='80kmh']"/>
1072                <xsl:when test="tag[@k='maxspeed:kmh' and @v='80']"/>
1073                <xsl:when test="tag[@k='maxspeed:kmh' and @v='88kmh']"/>
1074                <xsl:when test="tag[@k='maxspeed:kmh' and @v='88']"/>
1075                <xsl:when test="tag[@k='maxspeed:kmh' and @v='90kmh']"/>
1076                <xsl:when test="tag[@k='maxspeed:kmh' and @v='90']"/>
1077                <xsl:when test="tag[@k='maxspeed:kmh' and @v='96kmh']"/>
1078                <xsl:when test="tag[@k='maxspeed:kmh' and @v='96']"/>
1079                <xsl:when test="tag[@k='maxspeed:kmh' and @v='100kmh']"/>
1080                <xsl:when test="tag[@k='maxspeed:kmh' and @v='100']"/>
1081                <xsl:when test="tag[@k='maxspeed:kmh' and @v='104kmh']"/>
1082                <xsl:when test="tag[@k='maxspeed:kmh' and @v='104']"/>
1083                <xsl:when test="tag[@k='maxspeed:kmh' and @v='110kmh']"/>
1084                <xsl:when test="tag[@k='maxspeed:kmh' and @v='110']"/>
1085                <xsl:when test="tag[@k='maxspeed:kmh' and @v='112kmh']"/>
1086                <xsl:when test="tag[@k='maxspeed:kmh' and @v='112']"/>
1087                <xsl:when test="tag[@k='maxspeed:kmh' and @v='120kmh']"/>
1088                <xsl:when test="tag[@k='maxspeed:kmh' and @v='120']"/>
1089                <xsl:when test="tag[@k='maxspeed:kmh' and @v='128kmh']"/>
1090                <xsl:when test="tag[@k='maxspeed:kmh' and @v='128']"/>
1091                <xsl:when test="tag[@k='maxspeed:kmh' and @v='130kmh']"/>
1092                <xsl:when test="tag[@k='maxspeed:kmh' and @v='130']"/>
1093                <xsl:when test="tag[@k='maxspeed:kmh' and @v='none']"/>
1094                <xsl:when test="tag[@k='maxspeed:kmh']">
1095                    <maplint:result ref="rare-speedlimit"/>
1096                </xsl:when>
1097            </xsl:choose>
1098        </xsl:if>
1099    </xslout:template>
1100  <xslout:template name="test-main-residential-without-name-way">
1101        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not (tag[@k='validate:residential-without-name' and @v='ignore']) and not (tag[@k='noname' and @v='yes'])">
1102            <xsl:if test="(tag[@k='highway' and @v='residential']) and not(tag[@k='name'])">
1103                <maplint:result ref="residential-without-name"/>
1104            </xsl:if>
1105        </xsl:if>
1106    </xslout:template>
1107  <xslout:template name="test-strict-not-in-map_features-way">
1108<xsl:for-each xmlns:xsl="http://www.w3.org/1999/XSL/Transform" select="tag">
1109<xsl:choose>
1110<xsl:when test="starts-with(@k, 'tiger:')">
1111</xsl:when>
1112<xsl:when test="starts-with(@k, 'AND_')">
1113</xsl:when>
1114<xsl:when test="starts-with(@k, 'AND:')">
1115</xsl:when>
1116<xsl:when test="starts-with(@k, 'gns:')">
1117</xsl:when>
1118<xsl:when test="starts-with(@k, 'massgis:')">
1119</xsl:when>
1120<xsl:when test="starts-with(@k, 'openGeoDB:')">
1121</xsl:when>
1122<xsl:when test="starts-with(@k, 'opengeodb:')">
1123</xsl:when>
1124<xsl:when test="@k='TMC:LocationCode'">
1125<xsl:choose>
1126<xsl:when test="@v='see description'"/>
1127<xsl:otherwise>
1128<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1129</xsl:otherwise>
1130</xsl:choose>
1131</xsl:when>
1132<xsl:when test="@k='abutters'">
1133<xsl:choose>
1134<xsl:when test="@v='commercial'"/>
1135<xsl:when test="@v='industrial'"/>
1136<xsl:when test="@v='mixed'"/>
1137<xsl:when test="@v='residential'"/>
1138<xsl:when test="@v='retail'"/>
1139<xsl:otherwise>
1140<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1141</xsl:otherwise>
1142</xsl:choose>
1143</xsl:when>
1144<xsl:when test="@k='access'">
1145<xsl:choose>
1146<xsl:when test="@v='agricultural'"/>
1147<xsl:when test="@v='delivery'"/>
1148<xsl:when test="@v='designated'"/>
1149<xsl:when test="@v='destination'"/>
1150<xsl:when test="@v='forestry'"/>
1151<xsl:when test="@v='no'"/>
1152<xsl:when test="@v='official'"/>
1153<xsl:when test="@v='permissive'"/>
1154<xsl:when test="@v='private'"/>
1155<xsl:when test="@v='unknown'"/>
1156<xsl:when test="@v='yes'"/>
1157<xsl:otherwise>
1158<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1159</xsl:otherwise>
1160</xsl:choose>
1161</xsl:when>
1162<xsl:when test="@k='addr:city'">
1163
1164</xsl:when>
1165<xsl:when test="@k='addr:country'">
1166
1167</xsl:when>
1168<xsl:when test="@k='addr:housename'">
1169
1170</xsl:when>
1171<xsl:when test="@k='addr:housenumber'">
1172
1173</xsl:when>
1174<xsl:when test="@k='addr:interpolation'">
1175<xsl:choose>
1176<xsl:when test="@v='all'"/>
1177<xsl:when test="@v='alphabetic'"/>
1178<xsl:when test="@v='even'"/>
1179<xsl:when test="@v='odd'"/>
1180<xsl:otherwise>
1181<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1182</xsl:otherwise>
1183</xsl:choose>
1184</xsl:when>
1185<xsl:when test="@k='addr:postcode'">
1186
1187</xsl:when>
1188<xsl:when test="@k='addr:street'">
1189
1190</xsl:when>
1191<xsl:when test="@k='admin_level'">
1192<xsl:choose>
1193<xsl:when test="string(number(@v)) != 'NaN'"/>
1194<xsl:otherwise>
1195<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1196</xsl:otherwise>
1197</xsl:choose>
1198</xsl:when>
1199<xsl:when test="@k='aerialway'">
1200<xsl:choose>
1201<xsl:when test="@v='cable_car'"/>
1202<xsl:when test="@v='chair_lift'"/>
1203<xsl:when test="@v='drag_lift'"/>
1204<xsl:when test="@v='gondola'"/>
1205<xsl:when test="@v='station'"/>
1206
1207</xsl:choose>
1208</xsl:when>
1209<xsl:when test="@k='aeroway'">
1210<xsl:choose>
1211<xsl:when test="@v='aerodrome'"/>
1212<xsl:when test="@v='apron'"/>
1213<xsl:when test="@v='helipad'"/>
1214<xsl:when test="@v='runway'"/>
1215<xsl:when test="@v='taxiway'"/>
1216<xsl:when test="@v='terminal'"/>
1217
1218</xsl:choose>
1219</xsl:when>
1220<xsl:when test="@k='agricultural'">
1221<xsl:choose>
1222<xsl:when test="@v='agricultural'"/>
1223<xsl:when test="@v='delivery'"/>
1224<xsl:when test="@v='designated'"/>
1225<xsl:when test="@v='destination'"/>
1226<xsl:when test="@v='forestry'"/>
1227<xsl:when test="@v='no'"/>
1228<xsl:when test="@v='permissive'"/>
1229<xsl:when test="@v='private'"/>
1230<xsl:when test="@v='unknown'"/>
1231<xsl:when test="@v='yes'"/>
1232<xsl:otherwise>
1233<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1234</xsl:otherwise>
1235</xsl:choose>
1236</xsl:when>
1237<xsl:when test="@k='alt_name'">
1238
1239</xsl:when>
1240<xsl:when test="@k='amenity'">
1241<xsl:choose>
1242<xsl:when test="@v='arts_centre'"/>
1243<xsl:when test="@v='baby_hatch'"/>
1244<xsl:when test="@v='bank'"/>
1245<xsl:when test="@v='bicycle_parking'"/>
1246<xsl:when test="@v='bicycle_rental'"/>
1247<xsl:when test="@v='biergarten'"/>
1248<xsl:when test="@v='brothel'"/>
1249<xsl:when test="@v='bus_station'"/>
1250<xsl:when test="@v='cafe'"/>
1251<xsl:when test="@v='car_rental'"/>
1252<xsl:when test="@v='car_sharing'"/>
1253<xsl:when test="@v='cinema'"/>
1254<xsl:when test="@v='college'"/>
1255<xsl:when test="@v='courthouse'"/>
1256<xsl:when test="@v='crematorium'"/>
1257<xsl:when test="@v='dentist'"/>
1258<xsl:when test="@v='doctors'"/>
1259<xsl:when test="@v='embassy'"/>
1260<xsl:when test="@v='fast_food'"/>
1261<xsl:when test="@v='ferry_terminal'"/>
1262<xsl:when test="@v='fire_station'"/>
1263<xsl:when test="@v='food_court'"/>
1264<xsl:when test="@v='fountain'"/>
1265<xsl:when test="@v='fuel'"/>
1266<xsl:when test="@v='grave_yard'"/>
1267<xsl:when test="@v='hospital'"/>
1268<xsl:when test="@v='hunting_stand'"/>
1269<xsl:when test="@v='kindergarten'"/>
1270<xsl:when test="@v='library'"/>
1271<xsl:when test="@v='marketplace'"/>
1272<xsl:when test="@v='nightclub'"/>
1273<xsl:when test="@v='parking'"/>
1274<xsl:when test="@v='pharmacy'"/>
1275<xsl:when test="@v='place_of_worship'"/>
1276<xsl:when test="@v='police'"/>
1277<xsl:when test="@v='post_office'"/>
1278<xsl:when test="@v='prison'"/>
1279<xsl:when test="@v='pub'"/>
1280<xsl:when test="@v='public_building'"/>
1281<xsl:when test="@v='recycling'"/>
1282<xsl:when test="@v='restaurant'"/>
1283<xsl:when test="@v='school'"/>
1284<xsl:when test="@v='shelter'"/>
1285<xsl:when test="@v='studio'"/>
1286<xsl:when test="@v='taxi'"/>
1287<xsl:when test="@v='theatre'"/>
1288<xsl:when test="@v='townhall'"/>
1289<xsl:when test="@v='university'"/>
1290<xsl:when test="@v='veterinary'"/>
1291
1292</xsl:choose>
1293</xsl:when>
1294<xsl:when test="@k='area'">
1295<xsl:choose>
1296<xsl:when test="@v='yes'"/>
1297<xsl:otherwise>
1298<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1299</xsl:otherwise>
1300</xsl:choose>
1301</xsl:when>
1302<xsl:when test="@k='attribution'">
1303
1304</xsl:when>
1305<xsl:when test="@k='barrier'">
1306<xsl:choose>
1307<xsl:when test="@v='bollard'"/>
1308<xsl:when test="@v='city_wall'"/>
1309<xsl:when test="@v='ditch'"/>
1310<xsl:when test="@v='fence'"/>
1311<xsl:when test="@v='hedge'"/>
1312<xsl:when test="@v='retaining_wall'"/>
1313<xsl:when test="@v='wall'"/>
1314<xsl:otherwise>
1315<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1316</xsl:otherwise>
1317</xsl:choose>
1318</xsl:when>
1319<xsl:when test="@k='bicycle'">
1320<xsl:choose>
1321<xsl:when test="@v='agricultural'"/>
1322<xsl:when test="@v='delivery'"/>
1323<xsl:when test="@v='designated'"/>
1324<xsl:when test="@v='destination'"/>
1325<xsl:when test="@v='dismount'"/>
1326<xsl:when test="@v='forestry'"/>
1327<xsl:when test="@v='no'"/>
1328<xsl:when test="@v='official'"/>
1329<xsl:when test="@v='permissive'"/>
1330<xsl:when test="@v='private'"/>
1331<xsl:when test="@v='unknown'"/>
1332<xsl:when test="@v='yes'"/>
1333<xsl:otherwise>
1334<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1335</xsl:otherwise>
1336</xsl:choose>
1337</xsl:when>
1338<xsl:when test="@k='boat'">
1339<xsl:choose>
1340<xsl:when test="@v='agricultural'"/>
1341<xsl:when test="@v='delivery'"/>
1342<xsl:when test="@v='designated'"/>
1343<xsl:when test="@v='destination'"/>
1344<xsl:when test="@v='forestry'"/>
1345<xsl:when test="@v='no'"/>
1346<xsl:when test="@v='permissive'"/>
1347<xsl:when test="@v='private'"/>
1348<xsl:when test="@v='unknown'"/>
1349<xsl:when test="@v='yes'"/>
1350<xsl:otherwise>
1351<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1352</xsl:otherwise>
1353</xsl:choose>
1354</xsl:when>
1355<xsl:when test="@k='boundary'">
1356<xsl:choose>
1357<xsl:when test="@v='administrative'"/>
1358<xsl:when test="@v='civil'"/>
1359<xsl:when test="@v='maritime'"/>
1360<xsl:when test="@v='national_park'"/>
1361<xsl:when test="@v='political'"/>
1362<xsl:otherwise>
1363<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1364</xsl:otherwise>
1365</xsl:choose>
1366</xsl:when>
1367<xsl:when test="@k='bridge'">
1368<xsl:choose>
1369<xsl:when test="@v='aqueduct'"/>
1370<xsl:when test="@v='swing'"/>
1371<xsl:when test="@v='viaduct'"/>
1372<xsl:when test="@v='yes'"/>
1373<xsl:when test="@v='yes'"/>
1374
1375</xsl:choose>
1376</xsl:when>
1377<xsl:when test="@k='building'">
1378<xsl:choose>
1379<xsl:when test="@v='yes'"/>
1380
1381</xsl:choose>
1382</xsl:when>
1383<xsl:when test="@k='cables'">
1384<xsl:choose>
1385<xsl:when test="@v='... 3, 4, 6, 8, 9, 12, 15, 18 ...'"/>
1386<xsl:otherwise>
1387<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1388</xsl:otherwise>
1389</xsl:choose>
1390</xsl:when>
1391<xsl:when test="@k='construction'">
1392<xsl:choose>
1393<xsl:when test="@v='*'"/>
1394<xsl:otherwise>
1395<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1396</xsl:otherwise>
1397</xsl:choose>
1398</xsl:when>
1399<xsl:when test="contains(@k, 'name:')">
1400
1401</xsl:when>
1402<xsl:when test="@k='created_by'">
1403
1404</xsl:when>
1405<xsl:when test="@k='cutting'">
1406<xsl:choose>
1407<xsl:when test="@v='yes'"/>
1408<xsl:when test="@v='yes'"/>
1409<xsl:otherwise>
1410<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1411</xsl:otherwise>
1412</xsl:choose>
1413</xsl:when>
1414<xsl:when test="@k='cycleway'">
1415<xsl:choose>
1416<xsl:when test="@v='lane'"/>
1417<xsl:when test="@v='opposite'"/>
1418<xsl:when test="@v='opposite_lane'"/>
1419<xsl:when test="@v='opposite_track'"/>
1420<xsl:when test="@v='track'"/>
1421
1422</xsl:choose>
1423</xsl:when>
1424<xsl:when test="@k='date_off'">
1425
1426</xsl:when>
1427<xsl:when test="@k='date_on'">
1428
1429</xsl:when>
1430<xsl:when test="@k='day_off'">
1431<xsl:choose>
1432<xsl:when test="@v='monday'"/>
1433<xsl:when test="@v='mon'"/>
1434<xsl:when test="@v='tuesday'"/>
1435<xsl:when test="@v='tue'"/>
1436<xsl:when test="@v='wednesday'"/>
1437<xsl:when test="@v='wed'"/>
1438<xsl:when test="@v='thursday'"/>
1439<xsl:when test="@v='thu'"/>
1440<xsl:when test="@v='friday'"/>
1441<xsl:when test="@v='fri'"/>
1442<xsl:when test="@v='saturday'"/>
1443<xsl:when test="@v='sat'"/>
1444<xsl:when test="@v='sunday'"/>
1445<xsl:when test="@v='sun'"/>
1446<xsl:otherwise>
1447<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1448</xsl:otherwise>
1449</xsl:choose>
1450</xsl:when>
1451<xsl:when test="@k='day_on'">
1452<xsl:choose>
1453<xsl:when test="@v='monday'"/>
1454<xsl:when test="@v='mon'"/>
1455<xsl:when test="@v='tuesday'"/>
1456<xsl:when test="@v='tue'"/>
1457<xsl:when test="@v='wednesday'"/>
1458<xsl:when test="@v='wed'"/>
1459<xsl:when test="@v='thursday'"/>
1460<xsl:when test="@v='thu'"/>
1461<xsl:when test="@v='friday'"/>
1462<xsl:when test="@v='fri'"/>
1463<xsl:when test="@v='saturday'"/>
1464<xsl:when test="@v='sat'"/>
1465<xsl:when test="@v='sunday'"/>
1466<xsl:when test="@v='sun'"/>
1467<xsl:otherwise>
1468<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1469</xsl:otherwise>
1470</xsl:choose>
1471</xsl:when>
1472<xsl:when test="@k='description'">
1473
1474</xsl:when>
1475<xsl:when test="@k='disused'">
1476<xsl:choose>
1477<xsl:when test="@v='yes'"/>
1478<xsl:when test="@v='yes'"/>
1479<xsl:otherwise>
1480<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1481</xsl:otherwise>
1482</xsl:choose>
1483</xsl:when>
1484<xsl:when test="@k='ele'">
1485<xsl:choose>
1486<xsl:when test="string(number(@v)) != 'NaN'"/>
1487<xsl:otherwise>
1488<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1489</xsl:otherwise>
1490</xsl:choose>
1491</xsl:when>
1492<xsl:when test="@k='electrified'">
1493<xsl:choose>
1494<xsl:when test="@v='contact_line'"/>
1495<xsl:when test="@v='no'"/>
1496<xsl:when test="@v='rail'"/>
1497<xsl:when test="@v='yes'"/>
1498<xsl:otherwise>
1499<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1500</xsl:otherwise>
1501</xsl:choose>
1502</xsl:when>
1503<xsl:when test="@k='embankment'">
1504<xsl:choose>
1505<xsl:when test="@v='yes'"/>
1506<xsl:when test="@v='yes'"/>
1507<xsl:otherwise>
1508<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1509</xsl:otherwise>
1510</xsl:choose>
1511</xsl:when>
1512<xsl:when test="@k='end_date'">
1513
1514</xsl:when>
1515<xsl:when test="@k='est_width'">
1516<xsl:choose>
1517<xsl:when test="string(number(@v)) != 'NaN'"/>
1518<xsl:otherwise>
1519<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1520</xsl:otherwise>
1521</xsl:choose>
1522</xsl:when>
1523<xsl:when test="@k='fenced'">
1524<xsl:choose>
1525<xsl:when test="@v='no'"/>
1526<xsl:when test="@v='yes'"/>
1527<xsl:otherwise>
1528<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1529</xsl:otherwise>
1530</xsl:choose>
1531</xsl:when>
1532<xsl:when test="@k='fixme'">
1533
1534</xsl:when>
1535<xsl:when test="@k='foot'">
1536<xsl:choose>
1537<xsl:when test="@v='agricultural'"/>
1538<xsl:when test="@v='delivery'"/>
1539<xsl:when test="@v='designated'"/>
1540<xsl:when test="@v='destination'"/>
1541<xsl:when test="@v='forestry'"/>
1542<xsl:when test="@v='no'"/>
1543<xsl:when test="@v='official'"/>
1544<xsl:when test="@v='permissive'"/>
1545<xsl:when test="@v='private'"/>
1546<xsl:when test="@v='unknown'"/>
1547<xsl:when test="@v='yes'"/>
1548<xsl:otherwise>
1549<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1550</xsl:otherwise>
1551</xsl:choose>
1552</xsl:when>
1553<xsl:when test="@k='frequency'">
1554
1555</xsl:when>
1556<xsl:when test="@k='goods'">
1557<xsl:choose>
1558<xsl:when test="@v='agricultural'"/>
1559<xsl:when test="@v='delivery'"/>
1560<xsl:when test="@v='designated'"/>
1561<xsl:when test="@v='destination'"/>
1562<xsl:when test="@v='forestry'"/>
1563<xsl:when test="@v='no'"/>
1564<xsl:when test="@v='permissive'"/>
1565<xsl:when test="@v='private'"/>
1566<xsl:when test="@v='unknown'"/>
1567<xsl:when test="@v='yes'"/>
1568<xsl:otherwise>
1569<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1570</xsl:otherwise>
1571</xsl:choose>
1572</xsl:when>
1573<xsl:when test="@k='hazmat'">
1574<xsl:choose>
1575<xsl:when test="@v='agricultural'"/>
1576<xsl:when test="@v='delivery'"/>
1577<xsl:when test="@v='designated'"/>
1578<xsl:when test="@v='destination'"/>
1579<xsl:when test="@v='forestry'"/>
1580<xsl:when test="@v='no'"/>
1581<xsl:when test="@v='permissive'"/>
1582<xsl:when test="@v='private'"/>
1583<xsl:when test="@v='unknown'"/>
1584<xsl:when test="@v='yes'"/>
1585<xsl:otherwise>
1586<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1587</xsl:otherwise>
1588</xsl:choose>
1589</xsl:when>
1590<xsl:when test="@k='hgv'">
1591<xsl:choose>
1592<xsl:when test="@v='agricultural'"/>
1593<xsl:when test="@v='delivery'"/>
1594<xsl:when test="@v='designated'"/>
1595<xsl:when test="@v='destination'"/>
1596<xsl:when test="@v='forestry'"/>
1597<xsl:when test="@v='no'"/>
1598<xsl:when test="@v='permissive'"/>
1599<xsl:when test="@v='private'"/>
1600<xsl:when test="@v='unknown'"/>
1601<xsl:when test="@v='yes'"/>
1602<xsl:otherwise>
1603<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1604</xsl:otherwise>
1605</xsl:choose>
1606</xsl:when>
1607<xsl:when test="@k='highway'">
1608<xsl:choose>
1609<xsl:when test="@v='bridleway'"/>
1610<xsl:when test="@v='bus_guideway'"/>
1611<xsl:when test="@v='byway'"/>
1612<xsl:when test="@v='construction'"/>
1613<xsl:when test="@v='cycleway'"/>
1614<xsl:when test="@v='footway'"/>
1615<xsl:when test="@v='ford'"/>
1616<xsl:when test="@v='living_street'"/>
1617<xsl:when test="@v='motorway'"/>
1618<xsl:when test="@v='motorway_link'"/>
1619<xsl:when test="@v='path'"/>
1620<xsl:when test="@v='pedestrian'"/>
1621<xsl:when test="@v='primary'"/>
1622<xsl:when test="@v='primary_link'"/>
1623<xsl:when test="@v='residential'"/>
1624<xsl:when test="@v='road'"/>
1625<xsl:when test="@v='secondary'"/>
1626<xsl:when test="@v='secondary_link'"/>
1627<xsl:when test="@v='service'"/>
1628<xsl:when test="@v='services'"/>
1629<xsl:when test="@v='steps'"/>
1630<xsl:when test="@v='tertiary'"/>
1631<xsl:when test="@v='track'"/>
1632<xsl:when test="@v='trunk'"/>
1633<xsl:when test="@v='trunk_link'"/>
1634<xsl:when test="@v='unclassified'"/>
1635
1636</xsl:choose>
1637</xsl:when>
1638<xsl:when test="@k='historic'">
1639<xsl:choose>
1640<xsl:when test="@v='archaeological_site'"/>
1641<xsl:when test="@v='battlefield'"/>
1642<xsl:when test="@v='castle'"/>
1643<xsl:when test="@v='memorial'"/>
1644<xsl:when test="@v='monument'"/>
1645<xsl:when test="@v='ruins'"/>
1646<xsl:when test="@v='wreck'"/>
1647<xsl:when test="@v='yes'"/>
1648
1649</xsl:choose>
1650</xsl:when>
1651<xsl:when test="@k='history'">
1652
1653</xsl:when>
1654<xsl:when test="@k='horse'">
1655<xsl:choose>
1656<xsl:when test="@v='agricultural'"/>
1657<xsl:when test="@v='delivery'"/>
1658<xsl:when test="@v='designated'"/>
1659<xsl:when test="@v='destination'"/>
1660<xsl:when test="@v='forestry'"/>
1661<xsl:when test="@v='no'"/>
1662<xsl:when test="@v='official'"/>
1663<xsl:when test="@v='permissive'"/>
1664<xsl:when test="@v='private'"/>
1665<xsl:when test="@v='unknown'"/>
1666<xsl:when test="@v='yes'"/>
1667<xsl:otherwise>
1668<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1669</xsl:otherwise>
1670</xsl:choose>
1671</xsl:when>
1672<xsl:when test="@k='hour_off'">
1673
1674</xsl:when>
1675<xsl:when test="@k='hour_on'">
1676
1677</xsl:when>
1678<xsl:when test="@k='iata'">
1679
1680</xsl:when>
1681<xsl:when test="@k='icao'">
1682
1683</xsl:when>
1684<xsl:when test="@k='image'">
1685<xsl:choose>
1686<xsl:when test="@v='URL'"/>
1687<xsl:otherwise>
1688<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1689</xsl:otherwise>
1690</xsl:choose>
1691</xsl:when>
1692<xsl:when test="@k='incline'">
1693<xsl:choose>
1694<xsl:when test="@v='Number%'"/>
1695<xsl:otherwise>
1696<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1697</xsl:otherwise>
1698</xsl:choose>
1699</xsl:when>
1700<xsl:when test="@k='int_name'">
1701
1702</xsl:when>
1703<xsl:when test="@k='int_ref'">
1704
1705</xsl:when>
1706<xsl:when test="@k='is_in'">
1707
1708</xsl:when>
1709<xsl:when test="@k='junction'">
1710<xsl:choose>
1711<xsl:when test="@v='Other Values'"/>
1712<xsl:when test="@v='roundabout'"/>
1713<xsl:otherwise>
1714<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1715</xsl:otherwise>
1716</xsl:choose>
1717</xsl:when>
1718<xsl:when test="@k='landuse'">
1719<xsl:choose>
1720<xsl:when test="@v='allotments'"/>
1721<xsl:when test="@v='basin'"/>
1722<xsl:when test="@v='brownfield'"/>
1723<xsl:when test="@v='cemetery'"/>
1724<xsl:when test="@v='commercial'"/>
1725<xsl:when test="@v='construction'"/>
1726<xsl:when test="@v='farm'"/>
1727<xsl:when test="@v='farmyard'"/>
1728<xsl:when test="@v='forest'"/>
1729<xsl:when test="@v='greenfield'"/>
1730<xsl:when test="@v='industrial'"/>
1731<xsl:when test="@v='landfill'"/>
1732<xsl:when test="@v='meadow'"/>
1733<xsl:when test="@v='military'"/>
1734<xsl:when test="@v='quarry'"/>
1735<xsl:when test="@v='railway'"/>
1736<xsl:when test="@v='railway'"/>
1737<xsl:when test="@v='recreation_ground'"/>
1738<xsl:when test="@v='reservoir'"/>
1739<xsl:when test="@v='residential'"/>
1740<xsl:when test="@v='retail'"/>
1741<xsl:when test="@v='salt_pond'"/>
1742<xsl:when test="@v='village_green'"/>
1743<xsl:when test="@v='vineyard'"/>
1744<xsl:when test="@v='wood'"/>
1745
1746</xsl:choose>
1747</xsl:when>
1748<xsl:when test="@k='lanes'">
1749<xsl:choose>
1750<xsl:when test="string(number(@v)) != 'NaN'"/>
1751<xsl:otherwise>
1752<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1753</xsl:otherwise>
1754</xsl:choose>
1755</xsl:when>
1756<xsl:when test="@k='layer'">
1757<xsl:choose>
1758<xsl:when test="@v &gt; -5 and @v &lt; 5"/>
1759<xsl:otherwise>
1760<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1761</xsl:otherwise>
1762</xsl:choose>
1763</xsl:when>
1764<xsl:when test="@k='lcn_ref'">
1765
1766</xsl:when>
1767<xsl:when test="@k='leisure'">
1768<xsl:choose>
1769<xsl:when test="@v='common'"/>
1770<xsl:when test="@v='fishing'"/>
1771<xsl:when test="@v='garden'"/>
1772<xsl:when test="@v='golf_course'"/>
1773<xsl:when test="@v='ice_rink'"/>
1774<xsl:when test="@v='marina'"/>
1775<xsl:when test="@v='miniature_golf'"/>
1776<xsl:when test="@v='nature_reserve'"/>
1777<xsl:when test="@v='park'"/>
1778<xsl:when test="@v='pitch'"/>
1779<xsl:when test="@v='playground'"/>
1780<xsl:when test="@v='sports_centre'"/>
1781<xsl:when test="@v='stadium'"/>
1782<xsl:when test="@v='track'"/>
1783<xsl:when test="@v='water_park'"/>
1784
1785</xsl:choose>
1786</xsl:when>
1787<xsl:when test="@k='lit'">
1788<xsl:choose>
1789<xsl:when test="@v='no'"/>
1790<xsl:when test="@v='yes'"/>
1791<xsl:otherwise>
1792<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1793</xsl:otherwise>
1794</xsl:choose>
1795</xsl:when>
1796<xsl:when test="@k='loc_name'">
1797
1798</xsl:when>
1799<xsl:when test="@k='loc_ref'">
1800
1801</xsl:when>
1802<xsl:when test="@k='lock'">
1803<xsl:choose>
1804<xsl:when test="@v='yes'"/>
1805<xsl:otherwise>
1806<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1807</xsl:otherwise>
1808</xsl:choose>
1809</xsl:when>
1810<xsl:when test="@k='man_made'">
1811<xsl:choose>
1812<xsl:when test="@v='crane'"/>
1813<xsl:when test="@v='gasometer'"/>
1814<xsl:when test="@v='pier'"/>
1815<xsl:when test="@v='pipeline'"/>
1816<xsl:when test="@v='reservoir_covered'"/>
1817<xsl:when test="@v='surveillance'"/>
1818<xsl:when test="@v='wastewater_plant'"/>
1819<xsl:when test="@v='water_tower'"/>
1820<xsl:when test="@v='water_works'"/>
1821<xsl:when test="@v='watermill'"/>
1822<xsl:when test="@v='windmill'"/>
1823<xsl:when test="@v='works'"/>
1824
1825</xsl:choose>
1826</xsl:when>
1827<xsl:when test="@k='maxheight'">
1828<xsl:choose>
1829<xsl:when test="(contains(@v, &quot;mm&quot;) and string-length( substring-after(@v, &quot;mm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;cm&quot;) and string-length( substring-after(@v, &quot;cm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;cm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;dm&quot;) and string-length( substring-after(@v, &quot;dm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;dm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;m&quot;) and string-length( substring-after(@v, &quot;m&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;m&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;km&quot;) and string-length( substring-after(@v, &quot;km&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;km&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mil&quot;) and string-length( substring-after(@v, &quot;mil&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mil&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;inch&quot;) and string-length( substring-after(@v, &quot;inch&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;inch&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;foot&quot;) and string-length( substring-after(@v, &quot;foot&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;foot&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;yard&quot;) and string-length( substring-after(@v, &quot;yard&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;yard&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mile&quot;) and string-length( substring-after(@v, &quot;mile&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mile&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;nm&quot;) and string-length( substring-after(@v, &quot;nm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;nm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;furlong&quot;) and string-length( substring-after(@v, &quot;furlong&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;furlong&quot;)))) != &quot;NaN&quot;) or ( string(number(@v)) != &quot;NaN&quot; )"/>
1830<xsl:otherwise>
1831<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1832</xsl:otherwise>
1833</xsl:choose>
1834</xsl:when>
1835<xsl:when test="@k='maxlength'">
1836<xsl:choose>
1837<xsl:when test="(contains(@v, &quot;mm&quot;) and string-length( substring-after(@v, &quot;mm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;cm&quot;) and string-length( substring-after(@v, &quot;cm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;cm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;dm&quot;) and string-length( substring-after(@v, &quot;dm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;dm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;m&quot;) and string-length( substring-after(@v, &quot;m&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;m&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;km&quot;) and string-length( substring-after(@v, &quot;km&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;km&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mil&quot;) and string-length( substring-after(@v, &quot;mil&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mil&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;inch&quot;) and string-length( substring-after(@v, &quot;inch&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;inch&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;foot&quot;) and string-length( substring-after(@v, &quot;foot&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;foot&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;yard&quot;) and string-length( substring-after(@v, &quot;yard&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;yard&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mile&quot;) and string-length( substring-after(@v, &quot;mile&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mile&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;nm&quot;) and string-length( substring-after(@v, &quot;nm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;nm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;furlong&quot;) and string-length( substring-after(@v, &quot;furlong&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;furlong&quot;)))) != &quot;NaN&quot;) or ( string(number(@v)) != &quot;NaN&quot; )"/>
1838<xsl:otherwise>
1839<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1840</xsl:otherwise>
1841</xsl:choose>
1842</xsl:when>
1843<xsl:when test="@k='maxspeed'">
1844<xsl:choose>
1845<xsl:when test="(contains(@v, &quot;kph&quot;) and string-length( substring-after(@v, &quot;kph&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;kph&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;km/h&quot;) and string-length( substring-after(@v, &quot;km/h&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;km/h&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mph&quot;) and string-length( substring-after(@v, &quot;mph&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mph&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;knots&quot;) and string-length( substring-after(@v, &quot;knots&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;knots&quot;)))) != &quot;NaN&quot;) or ( string(number(@v)) != &quot;NaN&quot; )"/>
1846<xsl:otherwise>
1847<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1848</xsl:otherwise>
1849</xsl:choose>
1850</xsl:when>
1851<xsl:when test="@k='maxstay'">
1852<xsl:choose>
1853<xsl:when test="string(number(@v)) != 'NaN'"/>
1854<xsl:otherwise>
1855<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1856</xsl:otherwise>
1857</xsl:choose>
1858</xsl:when>
1859<xsl:when test="@k='maxweight'">
1860<xsl:choose>
1861<xsl:when test="string(number(@v)) != 'NaN'"/>
1862<xsl:otherwise>
1863<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1864</xsl:otherwise>
1865</xsl:choose>
1866</xsl:when>
1867<xsl:when test="@k='maxwidth'">
1868<xsl:choose>
1869<xsl:when test="(contains(@v, &quot;mm&quot;) and string-length( substring-after(@v, &quot;mm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;cm&quot;) and string-length( substring-after(@v, &quot;cm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;cm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;dm&quot;) and string-length( substring-after(@v, &quot;dm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;dm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;m&quot;) and string-length( substring-after(@v, &quot;m&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;m&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;km&quot;) and string-length( substring-after(@v, &quot;km&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;km&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mil&quot;) and string-length( substring-after(@v, &quot;mil&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mil&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;inch&quot;) and string-length( substring-after(@v, &quot;inch&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;inch&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;foot&quot;) and string-length( substring-after(@v, &quot;foot&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;foot&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;yard&quot;) and string-length( substring-after(@v, &quot;yard&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;yard&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mile&quot;) and string-length( substring-after(@v, &quot;mile&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mile&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;nm&quot;) and string-length( substring-after(@v, &quot;nm&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;nm&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;furlong&quot;) and string-length( substring-after(@v, &quot;furlong&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;furlong&quot;)))) != &quot;NaN&quot;) or ( string(number(@v)) != &quot;NaN&quot; )"/>
1870<xsl:otherwise>
1871<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1872</xsl:otherwise>
1873</xsl:choose>
1874</xsl:when>
1875<xsl:when test="@k='military'">
1876<xsl:choose>
1877<xsl:when test="@v='airfield'"/>
1878<xsl:when test="@v='barracks'"/>
1879<xsl:when test="@v='bunker'"/>
1880<xsl:when test="@v='danger_area'"/>
1881<xsl:when test="@v='naval_base'"/>
1882<xsl:when test="@v='range'"/>
1883
1884</xsl:choose>
1885</xsl:when>
1886<xsl:when test="@k='minspeed'">
1887<xsl:choose>
1888<xsl:when test="(contains(@v, &quot;kph&quot;) and string-length( substring-after(@v, &quot;kph&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;kph&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;km/h&quot;) and string-length( substring-after(@v, &quot;km/h&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;km/h&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;mph&quot;) and string-length( substring-after(@v, &quot;mph&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;mph&quot;)))) != &quot;NaN&quot;) or (contains(@v, &quot;knots&quot;) and string-length( substring-after(@v, &quot;knots&quot;) ) = 0 and string(number(substring(@v, 0, string-length(@v) - string-length(&quot;knots&quot;)))) != &quot;NaN&quot;) or ( string(number(@v)) != &quot;NaN&quot; )"/>
1889<xsl:otherwise>
1890<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1891</xsl:otherwise>
1892</xsl:choose>
1893</xsl:when>
1894<xsl:when test="@k='mooring'">
1895<xsl:choose>
1896<xsl:when test="@v='no'"/>
1897<xsl:when test="@v='private'"/>
1898<xsl:when test="@v='yes'"/>
1899<xsl:otherwise>
1900<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1901</xsl:otherwise>
1902</xsl:choose>
1903</xsl:when>
1904<xsl:when test="@k='motor_vehicle'">
1905<xsl:choose>
1906<xsl:when test="@v='agricultural'"/>
1907<xsl:when test="@v='delivery'"/>
1908<xsl:when test="@v='designated'"/>
1909<xsl:when test="@v='destination'"/>
1910<xsl:when test="@v='forestry'"/>
1911<xsl:when test="@v='no'"/>
1912<xsl:when test="@v='permissive'"/>
1913<xsl:when test="@v='private'"/>
1914<xsl:when test="@v='unknown'"/>
1915<xsl:when test="@v='yes'"/>
1916<xsl:otherwise>
1917<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1918</xsl:otherwise>
1919</xsl:choose>
1920</xsl:when>
1921<xsl:when test="@k='motorboat'">
1922<xsl:choose>
1923<xsl:when test="@v='agricultural'"/>
1924<xsl:when test="@v='delivery'"/>
1925<xsl:when test="@v='designated'"/>
1926<xsl:when test="@v='destination'"/>
1927<xsl:when test="@v='forestry'"/>
1928<xsl:when test="@v='no'"/>
1929<xsl:when test="@v='permissive'"/>
1930<xsl:when test="@v='private'"/>
1931<xsl:when test="@v='unknown'"/>
1932<xsl:when test="@v='yes'"/>
1933<xsl:otherwise>
1934<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1935</xsl:otherwise>
1936</xsl:choose>
1937</xsl:when>
1938<xsl:when test="@k='motorcar'">
1939<xsl:choose>
1940<xsl:when test="@v='agricultural'"/>
1941<xsl:when test="@v='delivery'"/>
1942<xsl:when test="@v='designated'"/>
1943<xsl:when test="@v='destination'"/>
1944<xsl:when test="@v='forestry'"/>
1945<xsl:when test="@v='no'"/>
1946<xsl:when test="@v='permissive'"/>
1947<xsl:when test="@v='private'"/>
1948<xsl:when test="@v='unknown'"/>
1949<xsl:when test="@v='yes'"/>
1950<xsl:otherwise>
1951<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1952</xsl:otherwise>
1953</xsl:choose>
1954</xsl:when>
1955<xsl:when test="@k='motorcycle'">
1956<xsl:choose>
1957<xsl:when test="@v='agricultural'"/>
1958<xsl:when test="@v='delivery'"/>
1959<xsl:when test="@v='designated'"/>
1960<xsl:when test="@v='destination'"/>
1961<xsl:when test="@v='forestry'"/>
1962<xsl:when test="@v='no'"/>
1963<xsl:when test="@v='permissive'"/>
1964<xsl:when test="@v='private'"/>
1965<xsl:when test="@v='unknown'"/>
1966<xsl:when test="@v='yes'"/>
1967<xsl:otherwise>
1968<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1969</xsl:otherwise>
1970</xsl:choose>
1971</xsl:when>
1972<xsl:when test="@k='motorroad'">
1973<xsl:choose>
1974<xsl:when test="@v='no'"/>
1975<xsl:when test="@v='yes'"/>
1976<xsl:otherwise>
1977<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1978</xsl:otherwise>
1979</xsl:choose>
1980</xsl:when>
1981<xsl:when test="@k='mtb:description'">
1982<xsl:choose>
1983<xsl:when test="@v='Text'"/>
1984<xsl:otherwise>
1985<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1986</xsl:otherwise>
1987</xsl:choose>
1988</xsl:when>
1989<xsl:when test="@k='mtb:scale'">
1990<xsl:choose>
1991<xsl:when test="@v='0-5'"/>
1992<xsl:otherwise>
1993<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
1994</xsl:otherwise>
1995</xsl:choose>
1996</xsl:when>
1997<xsl:when test="@k='mtb:scale:imba'">
1998<xsl:choose>
1999<xsl:when test="@v='0-4'"/>
2000<xsl:otherwise>
2001<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2002</xsl:otherwise>
2003</xsl:choose>
2004</xsl:when>
2005<xsl:when test="@k='mtb:scale:uphill'">
2006<xsl:choose>
2007<xsl:when test="@v='0-5'"/>
2008<xsl:otherwise>
2009<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2010</xsl:otherwise>
2011</xsl:choose>
2012</xsl:when>
2013<xsl:when test="@k='name'">
2014
2015</xsl:when>
2016<xsl:when test="@k='narrow'">
2017<xsl:choose>
2018<xsl:when test="@v='yes'"/>
2019<xsl:otherwise>
2020<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2021</xsl:otherwise>
2022</xsl:choose>
2023</xsl:when>
2024<xsl:when test="@k='nat_name'">
2025
2026</xsl:when>
2027<xsl:when test="@k='nat_ref'">
2028
2029</xsl:when>
2030<xsl:when test="@k='natural'">
2031<xsl:choose>
2032<xsl:when test="@v='bay'"/>
2033<xsl:when test="@v='beach'"/>
2034<xsl:when test="@v='cave_entrance'"/>
2035<xsl:when test="@v='cliff'"/>
2036<xsl:when test="@v='coastline'"/>
2037<xsl:when test="@v='fell'"/>
2038<xsl:when test="@v='glacier'"/>
2039<xsl:when test="@v='heath'"/>
2040<xsl:when test="@v='land'"/>
2041<xsl:when test="@v='marsh'"/>
2042<xsl:when test="@v='mud'"/>
2043<xsl:when test="@v='scree'"/>
2044<xsl:when test="@v='scrub'"/>
2045<xsl:when test="@v='water'"/>
2046<xsl:when test="@v='wetland'"/>
2047<xsl:when test="@v='wood'"/>
2048
2049</xsl:choose>
2050</xsl:when>
2051<xsl:when test="@k='ncn_ref'">
2052
2053</xsl:when>
2054<xsl:when test="@k='noexit'">
2055<xsl:choose>
2056<xsl:when test="@v='yes'"/>
2057<xsl:otherwise>
2058<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2059</xsl:otherwise>
2060</xsl:choose>
2061</xsl:when>
2062<xsl:when test="@k='noname'">
2063<xsl:choose>
2064<xsl:when test="@v='yes'"/>
2065<xsl:otherwise>
2066<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2067</xsl:otherwise>
2068</xsl:choose>
2069</xsl:when>
2070<xsl:when test="@k='note'">
2071
2072</xsl:when>
2073<xsl:when test="@k='old_name'">
2074
2075</xsl:when>
2076<xsl:when test="@k='old_ref'">
2077
2078</xsl:when>
2079<xsl:when test="@k='oneway'">
2080<xsl:choose>
2081<xsl:when test="@v='-1'"/>
2082<xsl:when test="@v='no'"/>
2083<xsl:when test="@v='yes'"/>
2084<xsl:otherwise>
2085<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2086</xsl:otherwise>
2087</xsl:choose>
2088</xsl:when>
2089<xsl:when test="@k='opening_hours'">
2090<xsl:choose>
2091<xsl:when test="@v='24/7'"/>
2092<xsl:when test="@v='mo md hh:mm-hh:mm. (read described syntax)'"/>
2093<xsl:otherwise>
2094<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2095</xsl:otherwise>
2096</xsl:choose>
2097</xsl:when>
2098<xsl:when test="@k='operator'">
2099
2100</xsl:when>
2101<xsl:when test="@k='osmarender:nameDirection'">
2102<xsl:choose>
2103<xsl:when test="@v='-1'"/>
2104<xsl:when test="@v='1'"/>
2105<xsl:otherwise>
2106<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2107</xsl:otherwise>
2108</xsl:choose>
2109</xsl:when>
2110<xsl:when test="@k='osmarender:render'">
2111<xsl:choose>
2112<xsl:when test="@v='no'"/>
2113<xsl:otherwise>
2114<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2115</xsl:otherwise>
2116</xsl:choose>
2117</xsl:when>
2118<xsl:when test="@k='osmarender:renderName'">
2119<xsl:choose>
2120<xsl:when test="@v='no'"/>
2121<xsl:otherwise>
2122<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2123</xsl:otherwise>
2124</xsl:choose>
2125</xsl:when>
2126<xsl:when test="@k='osmarender:renderRef'">
2127<xsl:choose>
2128<xsl:when test="@v='no'"/>
2129<xsl:otherwise>
2130<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2131</xsl:otherwise>
2132</xsl:choose>
2133</xsl:when>
2134<xsl:when test="@k='passing_places'">
2135<xsl:choose>
2136<xsl:when test="@v='yes'"/>
2137<xsl:otherwise>
2138<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2139</xsl:otherwise>
2140</xsl:choose>
2141</xsl:when>
2142<xsl:when test="@k='place'">
2143<xsl:choose>
2144<xsl:when test="@v='city'"/>
2145<xsl:when test="@v='continent'"/>
2146<xsl:when test="@v='county'"/>
2147<xsl:when test="@v='hamlet'"/>
2148<xsl:when test="@v='island'"/>
2149<xsl:when test="@v='locality'"/>
2150<xsl:when test="@v='region'"/>
2151<xsl:when test="@v='state'"/>
2152<xsl:when test="@v='suburb'"/>
2153<xsl:when test="@v='town'"/>
2154<xsl:when test="@v='village'"/>
2155<xsl:otherwise>
2156<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2157</xsl:otherwise>
2158</xsl:choose>
2159</xsl:when>
2160<xsl:when test="@k='place_name'">
2161
2162</xsl:when>
2163<xsl:when test="@k='place_numbers'">
2164
2165</xsl:when>
2166<xsl:when test="@k='population'">
2167<xsl:choose>
2168<xsl:when test="string(number(@v)) != 'NaN'"/>
2169<xsl:otherwise>
2170<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2171</xsl:otherwise>
2172</xsl:choose>
2173</xsl:when>
2174<xsl:when test="@k='postal_code'">
2175
2176</xsl:when>
2177<xsl:when test="@k='power'">
2178<xsl:choose>
2179<xsl:when test="@v='generator'"/>
2180<xsl:when test="@v='line'"/>
2181<xsl:when test="@v='station'"/>
2182<xsl:when test="@v='sub_station'"/>
2183
2184</xsl:choose>
2185</xsl:when>
2186<xsl:when test="@k='psv'">
2187<xsl:choose>
2188<xsl:when test="@v='agricultural'"/>
2189<xsl:when test="@v='delivery'"/>
2190<xsl:when test="@v='designated'"/>
2191<xsl:when test="@v='destination'"/>
2192<xsl:when test="@v='forestry'"/>
2193<xsl:when test="@v='no'"/>
2194<xsl:when test="@v='permissive'"/>
2195<xsl:when test="@v='private'"/>
2196<xsl:when test="@v='unknown'"/>
2197<xsl:when test="@v='yes'"/>
2198<xsl:otherwise>
2199<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2200</xsl:otherwise>
2201</xsl:choose>
2202</xsl:when>
2203<xsl:when test="@k='railway'">
2204<xsl:choose>
2205<xsl:when test="@v='abandoned'"/>
2206<xsl:when test="@v='construction'"/>
2207<xsl:when test="@v='disused'"/>
2208<xsl:when test="@v='funicular'"/>
2209<xsl:when test="@v='light_rail'"/>
2210<xsl:when test="@v='monorail'"/>
2211<xsl:when test="@v='narrow_gauge'"/>
2212<xsl:when test="@v='platform'"/>
2213<xsl:when test="@v='preserved'"/>
2214<xsl:when test="@v='rail'"/>
2215<xsl:when test="@v='station'"/>
2216<xsl:when test="@v='subway'"/>
2217<xsl:when test="@v='tram'"/>
2218<xsl:when test="@v='turntable'"/>
2219
2220</xsl:choose>
2221</xsl:when>
2222<xsl:when test="@k='rcn_ref'">
2223
2224</xsl:when>
2225<xsl:when test="@k='ref'">
2226
2227</xsl:when>
2228<xsl:when test="@k='reg_name'">
2229
2230</xsl:when>
2231<xsl:when test="@k='reg_ref'">
2232
2233</xsl:when>
2234<xsl:when test="@k='route'">
2235<xsl:choose>
2236<xsl:when test="@v='bicycle'"/>
2237<xsl:when test="@v='bus'"/>
2238<xsl:when test="@v='detour'"/>
2239<xsl:when test="@v='ferry'"/>
2240<xsl:when test="@v='flight'"/>
2241<xsl:when test="@v='hiking'"/>
2242<xsl:when test="@v='mtb'"/>
2243<xsl:when test="@v='pub_crawl'"/>
2244<xsl:when test="@v='railway'"/>
2245<xsl:when test="@v='road'"/>
2246<xsl:when test="@v='ski'"/>
2247<xsl:when test="@v='subsea'"/>
2248<xsl:when test="@v='tour'"/>
2249<xsl:when test="@v='train'"/>
2250<xsl:when test="@v='tram'"/>
2251
2252</xsl:choose>
2253</xsl:when>
2254<xsl:when test="@k='rtc_rate'">
2255<xsl:choose>
2256<xsl:when test="@v='A'"/>
2257<xsl:when test="@v='B'"/>
2258<xsl:when test="@v='C'"/>
2259<xsl:when test="@v='D'"/>
2260<xsl:when test="@v='F'"/>
2261<xsl:when test="@v='XX'"/>
2262<xsl:otherwise>
2263<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2264</xsl:otherwise>
2265</xsl:choose>
2266</xsl:when>
2267<xsl:when test="@k='sac_scale'">
2268<xsl:choose>
2269<xsl:when test="@v='alpine_hiking'"/>
2270<xsl:when test="@v='demanding_alpine_hiking'"/>
2271<xsl:when test="@v='demanding_mountain_hiking'"/>
2272<xsl:when test="@v='difficult_alpine_hiking'"/>
2273<xsl:when test="@v='hiking'"/>
2274<xsl:when test="@v='mountain_hiking'"/>
2275<xsl:otherwise>
2276<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2277</xsl:otherwise>
2278</xsl:choose>
2279</xsl:when>
2280<xsl:when test="@k='service'">
2281<xsl:choose>
2282<xsl:when test="@v='Other Values'"/>
2283<xsl:when test="@v='alley'"/>
2284<xsl:when test="@v='driveway'"/>
2285<xsl:when test="@v='parking_aisle'"/>
2286<xsl:when test="@v='siding'"/>
2287<xsl:when test="@v='spur'"/>
2288<xsl:when test="@v='yard'"/>
2289<xsl:otherwise>
2290<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2291</xsl:otherwise>
2292</xsl:choose>
2293</xsl:when>
2294<xsl:when test="@k='shop'">
2295<xsl:choose>
2296<xsl:when test="@v='alcohol'"/>
2297<xsl:when test="@v='bakery'"/>
2298<xsl:when test="@v='beverages'"/>
2299<xsl:when test="@v='bicycle'"/>
2300<xsl:when test="@v='books'"/>
2301<xsl:when test="@v='butcher'"/>
2302<xsl:when test="@v='car'"/>
2303<xsl:when test="@v='car_repair'"/>
2304<xsl:when test="@v='chemist'"/>
2305<xsl:when test="@v='clothes'"/>
2306<xsl:when test="@v='computer'"/>
2307<xsl:when test="@v='confectionery'"/>
2308<xsl:when test="@v='convenience'"/>
2309<xsl:when test="@v='department_store'"/>
2310<xsl:when test="@v='doityourself'"/>
2311<xsl:when test="@v='dry_cleaning'"/>
2312<xsl:when test="@v='electronics'"/>
2313<xsl:when test="@v='farm'"/>
2314<xsl:when test="@v='florist'"/>
2315<xsl:when test="@v='funeral_directors'"/>
2316<xsl:when test="@v='furniture'"/>
2317<xsl:when test="@v='garden_centre'"/>
2318<xsl:when test="@v='gift'"/>
2319<xsl:when test="@v='greengrocer'"/>
2320<xsl:when test="@v='hairdresser'"/>
2321<xsl:when test="@v='hardware'"/>
2322<xsl:when test="@v='hifi'"/>
2323<xsl:when test="@v='kiosk'"/>
2324<xsl:when test="@v='laundry'"/>
2325<xsl:when test="@v='mall'"/>
2326<xsl:when test="@v='motorcycle'"/>
2327<xsl:when test="@v='newsagent'"/>
2328<xsl:when test="@v='optician'"/>
2329<xsl:when test="@v='organic'"/>
2330<xsl:when test="@v='outdoor'"/>
2331<xsl:when test="@v='shoes'"/>
2332<xsl:when test="@v='sports'"/>
2333<xsl:when test="@v='stationery'"/>
2334<xsl:when test="@v='supermarket'"/>
2335<xsl:when test="@v='toys'"/>
2336<xsl:when test="@v='travel_agency'"/>
2337<xsl:when test="@v='video'"/>
2338
2339</xsl:choose>
2340</xsl:when>
2341<xsl:when test="@k='smoothness'">
2342<xsl:choose>
2343<xsl:when test="@v='bad'"/>
2344<xsl:when test="@v='bad'"/>
2345<xsl:when test="@v='excellent'"/>
2346<xsl:when test="@v='excellent'"/>
2347<xsl:when test="@v='good'"/>
2348<xsl:when test="@v='good'"/>
2349<xsl:when test="@v='horrible'"/>
2350<xsl:when test="@v='horrible'"/>
2351<xsl:when test="@v='impassable'"/>
2352<xsl:when test="@v='impassable'"/>
2353<xsl:when test="@v='intermediate'"/>
2354<xsl:when test="@v='intermediate'"/>
2355<xsl:when test="@v='very_bad'"/>
2356<xsl:when test="@v='very_bad'"/>
2357<xsl:when test="@v='very_horrible'"/>
2358<xsl:when test="@v='very_horrible'"/>
2359<xsl:otherwise>
2360<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2361</xsl:otherwise>
2362</xsl:choose>
2363</xsl:when>
2364<xsl:when test="@k='source'">
2365<xsl:choose>
2366<xsl:when test="@v='extrapolation'"/>
2367<xsl:when test="@v='historical'"/>
2368<xsl:when test="@v='image'"/>
2369<xsl:when test="@v='knowledge'"/>
2370<xsl:when test="@v='survey'"/>
2371<xsl:when test="@v='voice'"/>
2372
2373</xsl:choose>
2374</xsl:when>
2375<xsl:when test="@k='source:name'">
2376
2377</xsl:when>
2378<xsl:when test="@k='source:ref'">
2379
2380</xsl:when>
2381<xsl:when test="@k='source_ref'">
2382
2383</xsl:when>
2384<xsl:when test="@k='sport'">
2385<xsl:choose>
2386<xsl:when test="@v='10pin'"/>
2387<xsl:when test="@v='9pin'"/>
2388<xsl:when test="@v='archery'"/>
2389<xsl:when test="@v='athletics'"/>
2390<xsl:when test="@v='australian_football'"/>
2391<xsl:when test="@v='baseball'"/>
2392<xsl:when test="@v='basketball'"/>
2393<xsl:when test="@v='beachvolleyball'"/>
2394<xsl:when test="@v='boules'"/>
2395<xsl:when test="@v='bowls'"/>
2396<xsl:when test="@v='canoe'"/>
2397<xsl:when test="@v='chess'"/>
2398<xsl:when test="@v='climbing'"/>
2399<xsl:when test="@v='cricket'"/>
2400<xsl:when test="@v='cricket_nets'"/>
2401<xsl:when test="@v='croquet'"/>
2402<xsl:when test="@v='cycling'"/>
2403<xsl:when test="@v='diving'"/>
2404<xsl:when test="@v='dog_racing'"/>
2405<xsl:when test="@v='equestrian'"/>
2406<xsl:when test="@v='football'"/>
2407<xsl:when test="@v='golf'"/>
2408<xsl:when test="@v='gymnastics'"/>
2409<xsl:when test="@v='hockey'"/>
2410<xsl:when test="@v='horse_racing'"/>
2411<xsl:when test="@v='korfball'"/>
2412<xsl:when test="@v='motor'"/>
2413<xsl:when test="@v='multi'"/>
2414<xsl:when test="@v='paddle_tennis'"/>
2415<xsl:when test="@v='paragliding'"/>
2416<xsl:when test="@v='pelota'"/>
2417<xsl:when test="@v='racquet'"/>
2418<xsl:when test="@v='rowing'"/>
2419<xsl:when test="@v='rugby'"/>
2420<xsl:when test="@v='shooting'"/>
2421<xsl:when test="@v='skateboard'"/>
2422<xsl:when test="@v='skating'"/>
2423<xsl:when test="@v='skiing'"/>
2424<xsl:when test="@v='soccer'"/>
2425<xsl:when test="@v='swimming'"/>
2426<xsl:when test="@v='table_tennis'"/>
2427<xsl:when test="@v='team_handball'"/>
2428<xsl:when test="@v='tennis'"/>
2429<xsl:when test="@v='volleyball'"/>
2430<xsl:otherwise>
2431<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2432</xsl:otherwise>
2433</xsl:choose>
2434</xsl:when>
2435<xsl:when test="@k='start_date'">
2436
2437</xsl:when>
2438<xsl:when test="@k='surface'">
2439<xsl:choose>
2440<xsl:when test="@v='asphalt'"/>
2441<xsl:when test="@v='cobblestone'"/>
2442<xsl:when test="@v='concrete'"/>
2443<xsl:when test="@v='dirt'"/>
2444<xsl:when test="@v='earth'"/>
2445<xsl:when test="@v='grass'"/>
2446<xsl:when test="@v='grass_paver'"/>
2447<xsl:when test="@v='gravel'"/>
2448<xsl:when test="@v='ground'"/>
2449<xsl:when test="@v='ice_road'"/>
2450<xsl:when test="@v='metal'"/>
2451<xsl:when test="@v='mud'"/>
2452<xsl:when test="@v='paved'"/>
2453<xsl:when test="@v='paving_stones'"/>
2454<xsl:when test="@v='pebblestone'"/>
2455<xsl:when test="@v='sand'"/>
2456<xsl:when test="@v='unpaved'"/>
2457<xsl:when test="@v='wood'"/>
2458<xsl:otherwise>
2459<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2460</xsl:otherwise>
2461</xsl:choose>
2462</xsl:when>
2463<xsl:when test="@k='tourism'">
2464<xsl:choose>
2465<xsl:when test="@v='alpine_hut'"/>
2466<xsl:when test="@v='artwork'"/>
2467<xsl:when test="@v='attraction'"/>
2468<xsl:when test="@v='camp_site'"/>
2469<xsl:when test="@v='caravan_site'"/>
2470<xsl:when test="@v='chalet'"/>
2471<xsl:when test="@v='museum'"/>
2472<xsl:when test="@v='picnic_site'"/>
2473<xsl:when test="@v='theme_park'"/>
2474<xsl:when test="@v='yes'"/>
2475<xsl:when test="@v='zoo'"/>
2476
2477</xsl:choose>
2478</xsl:when>
2479<xsl:when test="@k='tracktype'">
2480<xsl:choose>
2481<xsl:when test="@v='grade1'"/>
2482<xsl:when test="@v='grade2'"/>
2483<xsl:when test="@v='grade3'"/>
2484<xsl:when test="@v='grade4'"/>
2485<xsl:when test="@v='grade5'"/>
2486<xsl:otherwise>
2487<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2488</xsl:otherwise>
2489</xsl:choose>
2490</xsl:when>
2491<xsl:when test="@k='traffic_calming'">
2492<xsl:choose>
2493<xsl:when test="@v='Other Values'"/>
2494<xsl:when test="@v='bump'"/>
2495<xsl:when test="@v='chicane'"/>
2496<xsl:when test="@v='choker'"/>
2497<xsl:when test="@v='cushion'"/>
2498<xsl:when test="@v='hump'"/>
2499<xsl:when test="@v='rumble_strip'"/>
2500<xsl:when test="@v='table'"/>
2501<xsl:when test="@v='yes'"/>
2502<xsl:otherwise>
2503<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2504</xsl:otherwise>
2505</xsl:choose>
2506</xsl:when>
2507<xsl:when test="@k='trail_visibility'">
2508<xsl:choose>
2509<xsl:when test="@v='bad'"/>
2510<xsl:when test="@v='excellent'"/>
2511<xsl:when test="@v='good'"/>
2512<xsl:when test="@v='horrible'"/>
2513<xsl:when test="@v='intermediate'"/>
2514<xsl:when test="@v='no'"/>
2515<xsl:otherwise>
2516<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2517</xsl:otherwise>
2518</xsl:choose>
2519</xsl:when>
2520<xsl:when test="@k='tunnel'">
2521<xsl:choose>
2522<xsl:when test="@v='no'"/>
2523<xsl:when test="@v='yes'"/>
2524<xsl:when test="@v='yes'"/>
2525<xsl:otherwise>
2526<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2527</xsl:otherwise>
2528</xsl:choose>
2529</xsl:when>
2530<xsl:when test="@k='url'">
2531<xsl:choose>
2532<xsl:when test="@v='URL'"/>
2533<xsl:otherwise>
2534<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2535</xsl:otherwise>
2536</xsl:choose>
2537</xsl:when>
2538<xsl:when test="@k='usage'">
2539<xsl:choose>
2540<xsl:when test="@v='branch'"/>
2541<xsl:when test="@v='industrial'"/>
2542<xsl:when test="@v='main'"/>
2543<xsl:when test="@v='military'"/>
2544<xsl:when test="@v='tourism'"/>
2545<xsl:otherwise>
2546<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2547</xsl:otherwise>
2548</xsl:choose>
2549</xsl:when>
2550<xsl:when test="@k='validate:bridge-or-tunnel-without-layer'">
2551<xsl:choose>
2552<xsl:when test="@v='ignore'"/>
2553<xsl:otherwise>
2554<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2555</xsl:otherwise>
2556</xsl:choose>
2557</xsl:when>
2558<xsl:when test="@k='validate:empty-tag-value'">
2559<xsl:choose>
2560<xsl:when test="@v='ignore'"/>
2561<xsl:otherwise>
2562<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2563</xsl:otherwise>
2564</xsl:choose>
2565</xsl:when>
2566<xsl:when test="@k='validate:motorway-without-ref'">
2567<xsl:choose>
2568<xsl:when test="@v='ignore'"/>
2569<xsl:otherwise>
2570<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2571</xsl:otherwise>
2572</xsl:choose>
2573</xsl:when>
2574<xsl:when test="@k='validate:place-of-worship-without-religion'">
2575<xsl:choose>
2576<xsl:when test="@v='ignore'"/>
2577<xsl:otherwise>
2578<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2579</xsl:otherwise>
2580</xsl:choose>
2581</xsl:when>
2582<xsl:when test="@k='validate:poi-without-name'">
2583<xsl:choose>
2584<xsl:when test="@v='ignore'"/>
2585<xsl:otherwise>
2586<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2587</xsl:otherwise>
2588</xsl:choose>
2589</xsl:when>
2590<xsl:when test="@k='validate:residential-without-name'">
2591<xsl:choose>
2592<xsl:when test="@v='ignore'"/>
2593<xsl:otherwise>
2594<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2595</xsl:otherwise>
2596</xsl:choose>
2597</xsl:when>
2598<xsl:when test="@k='vehicle'">
2599<xsl:choose>
2600<xsl:when test="@v='agricultural'"/>
2601<xsl:when test="@v='delivery'"/>
2602<xsl:when test="@v='designated'"/>
2603<xsl:when test="@v='destination'"/>
2604<xsl:when test="@v='forestry'"/>
2605<xsl:when test="@v='no'"/>
2606<xsl:when test="@v='permissive'"/>
2607<xsl:when test="@v='private'"/>
2608<xsl:when test="@v='unknown'"/>
2609<xsl:when test="@v='yes'"/>
2610<xsl:otherwise>
2611<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2612</xsl:otherwise>
2613</xsl:choose>
2614</xsl:when>
2615<xsl:when test="@k='voltage'">
2616<xsl:choose>
2617<xsl:when test="@v='... 110000, 220000, 380000, 400000 ...'"/>
2618
2619</xsl:choose>
2620</xsl:when>
2621<xsl:when test="@k='waterway'">
2622<xsl:choose>
2623<xsl:when test="@v='canal'"/>
2624<xsl:when test="@v='dam'"/>
2625<xsl:when test="@v='dock'"/>
2626<xsl:when test="@v='drain'"/>
2627<xsl:when test="@v='river'"/>
2628<xsl:when test="@v='riverbank'"/>
2629<xsl:when test="@v='stream'"/>
2630<xsl:when test="@v='weir'"/>
2631
2632</xsl:choose>
2633</xsl:when>
2634<xsl:when test="@k='website'">
2635<xsl:choose>
2636<xsl:when test="@v='URL'"/>
2637<xsl:otherwise>
2638<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2639</xsl:otherwise>
2640</xsl:choose>
2641</xsl:when>
2642<xsl:when test="@k='wheelchair'">
2643<xsl:choose>
2644<xsl:when test="@v='limited'"/>
2645<xsl:when test="@v='no'"/>
2646<xsl:when test="@v='yes'"/>
2647<xsl:otherwise>
2648<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2649</xsl:otherwise>
2650</xsl:choose>
2651</xsl:when>
2652<xsl:when test="@k='width'">
2653<xsl:choose>
2654<xsl:when test="string(number(@v)) != 'NaN'"/>
2655<xsl:otherwise>
2656<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2657</xsl:otherwise>
2658</xsl:choose>
2659</xsl:when>
2660<xsl:when test="@k='wikipedia'">
2661<xsl:choose>
2662<xsl:when test="@v='URL'"/>
2663<xsl:otherwise>
2664<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2665</xsl:otherwise>
2666</xsl:choose>
2667</xsl:when>
2668<xsl:when test="@k='wires'">
2669<xsl:choose>
2670<xsl:when test="@v='single, double, triple, quad'"/>
2671<xsl:otherwise>
2672<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2673</xsl:otherwise>
2674</xsl:choose>
2675</xsl:when>
2676<xsl:when test="@k='wood'">
2677<xsl:choose>
2678<xsl:when test="@v='coniferous'"/>
2679<xsl:when test="@v='deciduous'"/>
2680<xsl:when test="@v='mixed'"/>
2681<xsl:otherwise>
2682<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Value not in map features: ', @k, '=', @v)"/></maplint:result>
2683</xsl:otherwise>
2684</xsl:choose>
2685</xsl:when>
2686<xsl:otherwise>
2687<maplint:result ref="not-in-map_features"><xsl:value-of select="concat('Unknown key: ', @k, '=', @v)"/></maplint:result>
2688</xsl:otherwise>
2689</xsl:choose>
2690</xsl:for-each>
2691</xslout:template>
2692  <xslout:template name="test-relations-member-missing-relation">
2693        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="member[(@type='way') and not(key('wayId', @ref))]">
2694            <maplint:result ref="member-missing"/>
2695        </xsl:if>
2696        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="member[(@type='node') and not(key('nodeId', @ref))]">
2697            <maplint:result ref="member-missing"/>
2698        </xsl:if>
2699        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="member[(@type='relation') and not(key('relId', @ref))]">
2700            <maplint:result ref="member-missing"/>
2701        </xsl:if>
2702    </xslout:template>
2703</xslout:stylesheet>
Note: See TracBrowser for help on using the repository browser.