Search:
Login
Preferences
Help/Guide
About Trac
Register
Forgot your password?
Wiki
Timeline
Changelog
Browse Source
View Tickets
New Ticket
Roadmap
Builds
Sonar
Search
Context Navigation
+0
Start Page
Index
History
Editing Nb:Help/Validator/MapCSSTagChecker
Adjust edit area height:
8
12
16
20
24
28
32
36
40
Edit side-by-side
[[TranslatedPages(revision=41)]] Denne taggkontrollen anses som etterfølgeren til `tagchecker.cfg` og bruker mye av [wikitr:/Help/Styles/MapCSSImplementation MapCSS-implementeringen for stilark]. Den offisielle filendelsen er `*.validator.mapcss`. Vurder å installere [https://marketplace.visualstudio.com/items?itemName=whammo.mapcss-syntax MapCSS Syntax Highlighter] i VS Code for å legge til visuell fremheving for MapCSS-validatorsyntaks. Mer komplekse validatortester, som ikke kan gjøres med denne syntaksen, er implementert som [source:/trunk/src/org/openstreetmap/josm/data/validation/tests Java-tester]. == Eksempler == Se `*.mapcss`-filer i source:/trunk/resources/data/validator/ for kontrollene inkludert i JOSMs kjerne eller [wikitr:/Rules eksterne validatorregler]. {{{ #!mapcss *[barrier=wire_fence] { throwWarning: tr("{0} er foreldet", "{0.tag}"); /* "{0.tag}" evalueres til "barrier=wire_fence" */ fixAdd: "barrier=fence"; /* Du trenger ikke å fjerne barrier-nøkkelen først, den vil bare overskrive med den nye verdien */ fixAdd: "fence_type=chain_link"; assertMatch: "way barrier=wire_fence"; assertNoMatch: "way barrier=fence"; } }}} bruk av klasser: {{{ #!mapcss way[highway=~/^(motorway|trunk|primary|secondary|tertiary)$/] { set major_road; } way.major_road[!ref] { throwOther: tr("highway uten {0}", "{1.key}"); /* klassen ".major:road" er den 0. selektoren og "!ref" er den 1. selektoren. Utdataene er: "highway uten ref" */ assertMatch: "way highway=primary"; assertNoMatch: "way highway=primary ref=123"; } }}} == Noen flere detaljer == === Syntaks === {{{ #!mapcss selector { /* nøyaktig en av */ throwError: "melding"; throwWarning: "melding"; throwOther: "melding"; /* vilkårlig mange av */ fixAdd: "key=val"; fixRemove: "key"; fixChangeKey: "old=>new"; fixDeleteObject: this; /* sletter hele objektet! */ suggestAlternative: "hvilken som helst tekst (f.eks., alternativ nøkkel)"; /* brukerdefinerte argumenter må prefikses med - */ -osmoseItemClassLevel: "1210/1/1"; /* påstander for enhetstester */ assertMatch: "node/way/relation key1=value1 keyN=valueN"; assertNoMatch: "node/way/relation key1=value1 keyN=valueN"; /* påstander med mellomrom, bruk \"...\" rundt verdien */ assertNoMatch: "node amenity=recycling collection_times=\"Mo-Fr 15:00\""; } }}} * Syntaksen for selektorer er spesifisert i [wikitr:/Help/Styles/MapCSSImplementation#Selectors MapCSSImplementation#Selectors] * Validatorregler kan begrenses til spesifikke land, se [wikitr:/Help/Styles/MapCSSImplementation#Territoryselector MapCSSImplementation#Territoryselector]. * Alternativt til strenger på høyre side av disse uttrykkene, evalueres uttrykk (se [wikitr:/Help/Styles/MapCSSImplementation#Evalexpressions liste+syntaks]) * Mest nyttig av alle er [/doc/org/openstreetmap/josm/gui/mappaint/mapcss/Functions.html#tr-org.openstreetmap.josm.gui.mappaint.Environment-java.lang.String...- tr()] for å få disse strengene oversatt (KLARIFISER: hvor oversettelser for ikke-kjernevalideringsregler bør opprettholdes?) * Hvis minst én `fixAdd`/`fixRemove`/`fixChangeKey` er spesifisert, utføres disse endringene for objekter som samsvarer med denne testen når du trykker på reparasjonsknappen i [wikitr:/Help/Dialog/Validator Validator-panelet]. * Hvis `suggestAlternative` er/til stede, vises disse alternativene sammen med testmeldingen * `assertMatch` og `assertNoMatch`: Du kan gi der eksempler som bør (assertMatch) eller ikke bør (assertNoMatch) samsvare med den brukte selektoren. Så dette er en test for å se om selektoren fungerer korrekt for det gitte eksempelet. Normalt er dette bare nyttig for mer komplekse selektorer og mindre for enkle nøkkelverdi-selektorer. Testene utføres i sammenheng med enhetstester og på [/jenkins/job/JOSM]. De utføres også for lokale validatordatafiler hvis den avanserte opsjonen `validator.check_assert_local_rules` er satt til "true" i [wikitr:/Help/Preferences/Advanced avanserte preferanser] (se #10206). Hvis du har aktivert denne opsjonen og testen mislykkes, vil du få en melding i konsollutdataene som kan se slik ut: `ADVARSEL: Forventer at testen '...' skal samsvare med way ...` eller `...ikke samsvare...`. * Lokale validatorregler lastes automatisk på nytt hvis de endres og lagres av et eksternt program. (Automatisk pålasting kan stoppe hvis en syntaksfeil i validatordatafilen produserer et unntak i konsollen. Du må starte JOSM på nytt i dette tilfellet.) ==== Plassholdere ==== * De brukes for å forenkle oversettelsen og gjøre den mindre feilutsatt. * Plassholderne i advarselsmeldingen f.eks. `{3}` er skrevet med stigende tall, starter på 0. Så: 0 1 2 3 4... Dette er id-en til plassholderen. * Etter advarselsmeldingen (atskilt med komma), må du definere innholdet i plassholderne. * Først definerer du innholdet i den første plassholderen (den med id 0). Deretter definerer du innholdet i den andre plassholderen (den med id 1), og så videre. * Du må spesifisere hvilken selektor du vil bruke i plassholderen og om du vil bruke nøkkelen (`{i.key}`), verdien (`{i.value}`) eller hele taggen (`{i.tag}`) til selektoren. Telling starter på 0. Så, `{4.value}` betyr verdien til den 5. selektoren. * Klasser og pseudoklasser teller også. * Du kan også bruke `{i.tag}` for nøkkelbare selektorer. Meldingen vil vise den faktiske verdien av nøkkelen (se #10859). * Du kan bruke regulære uttrykk i selektoren og bruke dette i en plassholder. Meldingen vil ikke vise regexp-koden, men den faktiske nøkkelen/verdien/taggen (se #9782). eksempler: {{{ #!mapcss *[a=b][c=d][e][f=g] { throwWarning: tr("{0} BLA {1} BLUB {2} BLIB {3}", "{1.tag}", "{0.key}", "{2.key}", "{3.value}"); } }}} Dette vil evalueres til `c=d BLA a BLUB e BLIB g` {{{ #!mapcss node:unconnected:in-downloaded-area[highway=turning_circle] { throwWarning: tr("{0} må være koblet til en vei", "{2.tag}"); } }}} Dette vil evalueres til `highway=turning_circle må være koblet til en vei`. (`:unconnected` teller som 0. plassholder og `:in-downloaded-area` teller som 1. plassholder, derfor er `highway=turning_circle` den 2. plassholderen.) ==== Gruppering ==== * Ulike tester kan grupperes i Validator-panelet. Eksempel: {{{ #!mapcss node[oneway], node[bridge], node[sidewalk], node[footway] { throwWarning: tr("{0}", "{0.tag}"); group: tr("tag på en node som bør brukes på en vei"); } }}} resulterer i: [[Image(Help/Validator/MapCSSTagChecker:testgroup.png,link=)]] Den samme grupperings teksten kan brukes på forskjellige regler, se f.eks. [source:/trunk/resources/data/validator/deprecated.mapcss deprecated.mapcss] eller til og med på forskjellige validatordatafiler. == Se også == * [wikitr:/Help/Dialog/Validator Validator-dialog] * [wikitr:/Help/Preferences/Validator Validator-preferanser] og beskrivelse av validatortester * Hovedimplementasjonsbiletten var #9414. ---- Tilbake til [wikitr:/Help Hovedhjelp]
Note:
See
WikiFormatting
and
TracWiki
for help on editing wiki content.
Change information
Your email or username:
E-mail address and name can be saved in the
Preferences
Comment about this change (optional):
Note:
See
TracWiki
for help on using the wiki.