Index: tests.xml
===================================================================
--- tests.xml	(Revision 12016)
+++ tests.xml	(Arbeitskopie)
@@ -21,8 +21,10 @@
     <maplint:garmin short="NOKEY" icon="Navaid, Red"/>
 
     <maplint:check data="any" type="application/xsl+xml">
-        <xsl:if test="tag[@k='']">
-            <maplint:result>Value=<xsl:value-of select="tag[@k='']/@v"/></maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:empty-tag-key') and @v='ignore'])">
+            <xsl:if test="tag[@k='']">
+                <maplint:result>Value=<xsl:value-of select="tag[@k='']/@v"/></maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
@@ -36,8 +38,10 @@
     <maplint:garmin short="NOVAL" icon="Navaid, Red"/>
 
     <maplint:check data="any" type="application/xsl+xml">
-        <xsl:if test="tag[@v='']">
-            <maplint:result>Key=<xsl:value-of select="tag[@v='']/@k"/></maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:empty-tag-value') and @v='ignore'])">
+            <xsl:if test="tag[@v='']">
+                <maplint:result>Key=<xsl:value-of select="tag[@v='']/@k"/></maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
@@ -80,8 +84,10 @@
     </maplint:desc>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="not(tag[@k != 'created_by'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:untagged-way') and @v='ignore'])">
+            <xsl:if test="not(tag[@k != 'created_by'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
@@ -94,8 +100,10 @@
     </maplint:desc>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="(tag[(@k='bridge' or @k='tunnel') and @v='true']) and not(tag[@k='layer'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:bridge-or-tunnel-without-layer') and @v='ignore'])">
+            <xsl:if test="(tag[(@k='bridge' or @k='tunnel') and @v='true']) and not(tag[@k='layer'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
@@ -109,8 +117,10 @@
     <maplint:garmin short="DEPTAG" icon="Shipwreck"/>
 
     <maplint:check data="any" type="application/xsl+xml">
-        <xsl:if test="tag/@k='class'">
-            <maplint:result>class</maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:deprecated-tags') and @v='ignore'])">
+            <xsl:if test="tag/@k='class'">
+                <maplint:result>class</maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
@@ -124,9 +134,11 @@
     <maplint:garmin short="MOTNOREF" icon="Navaid, White"/>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="tag[@k='highway' and @v='motorway']">
-            <xsl:if test="not(tag[@k='ref'])">
-                <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:motorway-without-ref') and @v='ignore'])">
+            <xsl:if test="tag[@k='highway' and @v='motorway']">
+                <xsl:if test="not(tag[@k='ref'])">
+                    <maplint:result/>
+                </xsl:if>
             </xsl:if>
         </xsl:if>
     </maplint:check>
@@ -141,8 +153,10 @@
     <maplint:garmin short="PWNOREL" icon="Navaid, White"/>
 
     <maplint:check data="node" type="application/xsl+xml">
-        <xsl:if test="(tag[@k='amenity' and @v='place_of_worship']) and not(tag[@k='religion'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:place-of-worship-without-religion') and @v='ignore'])">
+            <xsl:if test="(tag[@k='amenity' and @v='place_of_worship']) and not(tag[@k='religion'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
@@ -156,11 +170,13 @@
     <maplint:garmin short="POINONAME" icon="Navaid, White"/>
 
     <maplint:check data="node" type="application/xsl+xml">
-        <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'])">
-            <maplint:result>
-                <xsl:text>amenity=</xsl:text>
-                <xsl:value-of select="tag[@k='amenity']/@v"/>
-            </maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:poi-without-name') and @v='ignore'])">
+            <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'])">
+                <maplint:result>
+                    <xsl:text>amenity=</xsl:text>
+                    <xsl:value-of select="tag[@k='amenity']/@v"/>
+                </maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
@@ -174,8 +190,10 @@
     <maplint:garmin short="RESNONAME" icon="Navaid, White"/>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="(tag[@k='highway' and @v='residential']) and not(tag[@k='name'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:residential-without-name') and @v='ignore'])">
+            <xsl:if test="(tag[@k='highway' and @v='residential']) and not(tag[@k='name'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/main/residential-without-name.xml
===================================================================
--- tests/main/residential-without-name.xml	(Revision 12016)
+++ tests/main/residential-without-name.xml	(Arbeitskopie)
@@ -10,8 +10,10 @@
     <maplint:garmin short="RESNONAME" icon="Navaid, White"/>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="(tag[@k='highway' and @v='residential']) and not(tag[@k='name'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:residential-without-name') and @v='ignore'])">
+            <xsl:if test="(tag[@k='highway' and @v='residential']) and not(tag[@k='name'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/main/place-of-worship-without-religion.xml
===================================================================
--- tests/main/place-of-worship-without-religion.xml	(Revision 12016)
+++ tests/main/place-of-worship-without-religion.xml	(Arbeitskopie)
@@ -10,8 +10,10 @@
     <maplint:garmin short="PWNOREL" icon="Navaid, White"/>
 
     <maplint:check data="node" type="application/xsl+xml">
-        <xsl:if test="(tag[@k='amenity' and @v='place_of_worship']) and not(tag[@k='religion'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:place-of-worship-without-religion') and @v='ignore'])">
+            <xsl:if test="(tag[@k='amenity' and @v='place_of_worship']) and not(tag[@k='religion'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/main/poi-without-name.xml
===================================================================
--- tests/main/poi-without-name.xml	(Revision 12016)
+++ tests/main/poi-without-name.xml	(Arbeitskopie)
@@ -10,11 +10,13 @@
     <maplint:garmin short="POINONAME" icon="Navaid, White"/>
 
     <maplint:check data="node" type="application/xsl+xml">
-        <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'])">
-            <maplint:result>
-                <xsl:text>amenity=</xsl:text>
-                <xsl:value-of select="tag[@k='amenity']/@v"/>
-            </maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:poi-without-name') and @v='ignore'])">
+            <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'])">
+                <maplint:result>
+                    <xsl:text>amenity=</xsl:text>
+                    <xsl:value-of select="tag[@k='amenity']/@v"/>
+                </maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/main/bridge-or-tunnel-without-layer.xml
===================================================================
--- tests/main/bridge-or-tunnel-without-layer.xml	(Revision 12016)
+++ tests/main/bridge-or-tunnel-without-layer.xml	(Arbeitskopie)
@@ -9,8 +9,10 @@
     </maplint:desc>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="(tag[(@k='bridge' or @k='tunnel') and @v='true']) and not(tag[@k='layer'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:bridge-or-tunnel-without-layer') and @v='ignore'])">
+            <xsl:if test="(tag[(@k='bridge' or @k='tunnel') and @v='true']) and not(tag[@k='layer'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/main/deprecated-tags.xml
===================================================================
--- tests/main/deprecated-tags.xml	(Revision 12016)
+++ tests/main/deprecated-tags.xml	(Arbeitskopie)
@@ -10,8 +10,10 @@
     <maplint:garmin short="DEPTAG" icon="Shipwreck"/>
 
     <maplint:check data="any" type="application/xsl+xml">
-        <xsl:if test="tag/@k='class'">
-            <maplint:result>class</maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:deprecated-tags') and @v='ignore'])">
+            <xsl:if test="tag/@k='class'">
+                <maplint:result>class</maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/main/motorway-without-ref.xml
===================================================================
--- tests/main/motorway-without-ref.xml	(Revision 12016)
+++ tests/main/motorway-without-ref.xml	(Arbeitskopie)
@@ -10,9 +10,11 @@
     <maplint:garmin short="MOTNOREF" icon="Navaid, White"/>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="tag[@k='highway' and @v='motorway']">
-            <xsl:if test="not(tag[@k='ref'])">
-                <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:motorway-without-ref') and @v='ignore'])">
+            <xsl:if test="tag[@k='highway' and @v='motorway']">
+                <xsl:if test="not(tag[@k='ref'])">
+                    <maplint:result/>
+                </xsl:if>
             </xsl:if>
         </xsl:if>
     </maplint:check>
Index: tests/base/empty-tag-value.xml
===================================================================
--- tests/base/empty-tag-value.xml	(Revision 12016)
+++ tests/base/empty-tag-value.xml	(Arbeitskopie)
@@ -10,8 +10,10 @@
     <maplint:garmin short="NOVAL" icon="Navaid, Red"/>
 
     <maplint:check data="any" type="application/xsl+xml">
-        <xsl:if test="tag[@v='']">
-            <maplint:result>Key=<xsl:value-of select="tag[@v='']/@k"/></maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:empty-tag-value') and @v='ignore'])">
+            <xsl:if test="tag[@v='']">
+                <maplint:result>Key=<xsl:value-of select="tag[@v='']/@k"/></maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/base/untagged-way.xml
===================================================================
--- tests/base/untagged-way.xml	(Revision 12016)
+++ tests/base/untagged-way.xml	(Arbeitskopie)
@@ -8,8 +8,10 @@
     </maplint:desc>
 
     <maplint:check data="way" type="application/xsl+xml">
-        <xsl:if test="not(tag[@k != 'created_by'])">
-            <maplint:result/>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:untagged-way') and @v='ignore'])">
+            <xsl:if test="not(tag[@k != 'created_by'])">
+                <maplint:result/>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests/base/empty-tag-key.xml
===================================================================
--- tests/base/empty-tag-key.xml	(Revision 12016)
+++ tests/base/empty-tag-key.xml	(Arbeitskopie)
@@ -14,8 +14,10 @@
     <maplint:garmin short="NOKEY" icon="Navaid, Red"/>
 
     <maplint:check data="any" type="application/xsl+xml">
-        <xsl:if test="tag[@k='']">
-            <maplint:result>Value=<xsl:value-of select="tag[@k='']/@v"/></maplint:result>
+        <xsl:if test=" not (tag[(@k='validate' or @k='validate:empty-tag-key') and @v='ignore'])">
+            <xsl:if test="tag[@k='']">
+                <maplint:result>Value=<xsl:value-of select="tag[@k='']/@v"/></maplint:result>
+            </xsl:if>
         </xsl:if>
     </maplint:check>
 
Index: tests.xsl
===================================================================
--- tests.xsl	(Revision 12016)
+++ tests.xsl	(Arbeitskopie)
@@ -46,18 +46,24 @@
     <xslout:call-template name="test-relations-member-missing-relation"/>
   </xslout:template>
   <xslout:template name="test-base-empty-tag-key-any">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="tag[@k='']">
-            <maplint:result ref="empty-tag-key">Value=<xsl:value-of select="tag[@k='']/@v"/></maplint:result>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:empty-tag-key') and @v='ignore'])">
+            <xsl:if test="tag[@k='']">
+                <maplint:result ref="empty-tag-key">Value=<xsl:value-of select="tag[@k='']/@v"/></maplint:result>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-base-empty-tag-value-any">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="tag[@v='']">
-            <maplint:result ref="empty-tag-value">Key=<xsl:value-of select="tag[@v='']/@k"/></maplint:result>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:empty-tag-value') and @v='ignore'])">
+            <xsl:if test="tag[@v='']">
+                <maplint:result ref="empty-tag-value">Key=<xsl:value-of select="tag[@v='']/@k"/></maplint:result>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-main-deprecated-tags-any">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="tag/@k='class'">
-            <maplint:result ref="deprecated-tags">class</maplint:result>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:deprecated-tags') and @v='ignore'])">
+            <xsl:if test="tag/@k='class'">
+                <maplint:result ref="deprecated-tags">class</maplint:result>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-base-nodes-on-same-spot-node">
@@ -76,16 +82,20 @@
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-main-place-of-worship-without-religion-node">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="(tag[@k='amenity' and @v='place_of_worship']) and not(tag[@k='religion'])">
-            <maplint:result ref="place-of-worship-without-religion"/>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:place-of-worship-without-religion') and @v='ignore'])">
+            <xsl:if test="(tag[@k='amenity' and @v='place_of_worship']) and not(tag[@k='religion'])">
+                <maplint:result ref="place-of-worship-without-religion"/>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-main-poi-without-name-node">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 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'])">
-            <maplint:result ref="poi-without-name">
-                <xsl:text>amenity=</xsl:text>
-                <xsl:value-of select="tag[@k='amenity']/@v"/>
-            </maplint:result>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:poi-without-name') and @v='ignore'])">
+            <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'])">
+                <maplint:result ref="poi-without-name">
+                    <xsl:text>amenity=</xsl:text>
+                    <xsl:value-of select="tag[@k='amenity']/@v"/>
+                </maplint:result>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-strict-not-in-map_features-node">
@@ -682,25 +692,33 @@
 </xsl:for-each>
 </xslout:template>
   <xslout:template name="test-base-untagged-way-way">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="not(tag[@k != 'created_by'])">
-            <maplint:result ref="untagged-way"/>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:untagged-way') and @v='ignore'])">
+            <xsl:if test="not(tag[@k != 'created_by'])">
+                <maplint:result ref="untagged-way"/>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-main-bridge-or-tunnel-without-layer-way">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="(tag[(@k='bridge' or @k='tunnel') and @v='true']) and not(tag[@k='layer'])">
-            <maplint:result ref="bridge-or-tunnel-without-layer"/>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:bridge-or-tunnel-without-layer') and @v='ignore'])">
+            <xsl:if test="(tag[(@k='bridge' or @k='tunnel') and @v='true']) and not(tag[@k='layer'])">
+                <maplint:result ref="bridge-or-tunnel-without-layer"/>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-main-motorway-without-ref-way">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="tag[@k='highway' and @v='motorway']">
-            <xsl:if test="not(tag[@k='ref'])">
-                <maplint:result ref="motorway-without-ref"/>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:motorway-without-ref') and @v='ignore'])">
+            <xsl:if test="tag[@k='highway' and @v='motorway']">
+                <xsl:if test="not(tag[@k='ref'])">
+                    <maplint:result ref="motorway-without-ref"/>
+                </xsl:if>
             </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-main-residential-without-name-way">
-        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test="(tag[@k='highway' and @v='residential']) and not(tag[@k='name'])">
-            <maplint:result ref="residential-without-name"/>
+        <xsl:if xmlns:xsl="http://www.w3.org/1999/XSL/Transform" test=" not (tag[(@k='validate' or @k='validate:residential-without-name') and @v='ignore'])">
+            <xsl:if test="(tag[@k='highway' and @v='residential']) and not(tag[@k='name'])">
+                <maplint:result ref="residential-without-name"/>
+            </xsl:if>
         </xsl:if>
     </xslout:template>
   <xslout:template name="test-strict-not-in-map_features-way">
