claeis / ilivalidator

INTERLIS validator
14 stars 20 forks source link

Prüf- resp. Parse-Verhalten mit metaConfig / config #419

Open edigonzales opened 2 weeks ago

edigonzales commented 2 weeks ago

Ich möchte ilivalidator / die Prüfung so steuern, dass nur ein spezielles Modell geprüft werden kann. Das funktioniert mit "--models" oder mit einer MetaConfig-Datei mit Inhalt:


[ch.ehi.ilivalidator]
models="DMAV_HoheitsgrenzenAV_V1_0"

Wenn ich nun den offiziellen Testdatensatz verwende (mit allen Modellen drin), erscheint folgende Fehlermeldung:


Info: ilifile </Users/stefan/.ilicache/models.geo.admin.ch/V_D/DMAV_HoheitsgrenzenAV_V1_0.ili>
Info: validate data...
Info: assume unknown external objects
Info: first validation pass...
Error: Unknown topic <{http://www.interlis.ch/xtf/2.4/DMAV_Gebaeudeadressen_V1_0}Gebaeudeadressen>
Info: ...validation failed
Info: End date 2024-08-29 10:37 validation took 00h:00m:00s.0000ms

Wenn ich im MetaConfig-Ini noch auf eine Config-Ini verweise, bricht die Validierung erst nach der Prüfung der Gebäudeadressen ab:

[ch.ehi.ilivalidator]
models="DMAV_HoheitsgrenzenAV_V1_0"
config=ilidata:DMAV_V1_0_Validierung
Info: validate data...
Info: assume unknown external objects
Info: first validation pass...
Info: DMAVTYM_Alles_V1_0.xtf: DMAV_Gebaeudeadressen_V1_0.Gebaeudeadressen BID=716e91e8-aadf-4a1d-a6b3-3806c707688d
Info:      20 objects in CLASS DMAV_Gebaeudeadressen_V1_0.Gebaeudeadressen.GANachfuehrung
Info:     925 objects in CLASS DMAV_Gebaeudeadressen_V1_0.Gebaeudeadressen.Gebaeudeeingang
Info:      85 objects in CLASS DMAV_Gebaeudeadressen_V1_0.Gebaeudeadressen.Lokalisation
Error: Unknown topic <{http://www.interlis.ch/xtf/2.4/DMAV_DauerndeBodenverschiebungen_V1_0}DauerndeBodenverschiebungen>
Info: ...validation failed
Info: End date 2024-08-29 10:39 validation took 00h:00m:00s.0000ms

Die Gebäudeadressen erscheinen als erstes im XTF.

edigonzales commented 2 weeks ago

Ah, im Config-Ini mache ich für die Gebäudeadressen ein Downgrade zu Warnungen. Wahrscheinlich kennt ilivalidator deswegen die Gebäudeadressen:

["PARAMETER"]
additionalModels="DMAV_V1_0_Validierung"

["DMAV_V1_0_Validierung.Gebaeudeadressen_Validierung.v_Gebaeudeeingang.CH193851"]
check="warning"

["DMAV_V1_0_Validierung.Gebaeudeadressen_Validierung.v_Gebaeudeeingang.CH194451"]
check="warning"
claeis commented 2 weeks ago

Um eine 2.4 Datei zu lesen, muss das Programm alle Modelle zu denen es Baskets in der Datei hat, kennen (ausser wir bauen eine neue Option/Funktion ein, dass man bestimmte Baskets überspringen kann).

Um in einer Datei nur bestimmte Baskets zuzulassen, braucht es eine neue Option/Funktion.

edigonzales commented 2 weeks ago

Aber ich verstehe das Verhalten nicht. Ich prüfe das gleiche File mit unterschiedlichen Optionen.

a) java -jar ilivalidator-1.14.3.jar --models DMAV_HoheitsgrenzenAV_V1_0 DMAVTYM_Alles_V1_0.xtf -> Es meldet Fehler wegen Gebäudeadressen unbekannt.

b) java -jar /Users/stefan/apps/ilivalidator-1.14.3/ilivalidator-1.14.3.jar --metaConfig ilidata:DMAV_HoheitsgrenzenAV_V1_0-meta DMAVTYM_Alles_V1_0.xtf -> Es erkennt und parst die Gebäudeadressen und meldet Fehler wegen unbekannten Bodenverschiebungen.

https://geo.so.ch/models/AGI/DMAV_HoheitsgrenzenAV_V1_0-meta.ini

Wenn ich config=ilidata:DMAV_V1_0_Validierung auskommentiere, funktioniert es wieder wie im Fall a).

config-ili: https://geo.so.ch/models/AGI/DMAV_V1_0_Validierung.ini Validierungs-ili: https://geo.so.ch/models/AGI/DMAV_V1_0_Validierung.ili

Und ich möchte das Verhalten von Fall a).