Validierungsregeln

Die Validierungsregeln liegen in den jeweiligen Profilen und werden über eine Validierungsdatei gesteuert. Im Beispiel des Service-Profils, liegen die Validierungsregeln im Verzeichnis src/Plugins/WhereGroup/ServiceProfileBundle/Resources/config/validation.json (für die LVermGeo spezifischen Profile lautet der Pfad anders).

Für jeden Eintrag im Formular werden über reguläre Ausdrücke Regeln definiert und - bei einer Verletzung der Regel - die dazugehörige Meldung spezifiziert. Diese wird als Popup-Mitteilung dargestellt.

Das folgende Beispiel zeigt eine einfache Validierungsregel am Beispiel des Titels.

"p_title": [
    {
        "regex": "^.+$",
        "message": "Eingabe darf nicht leer sein!"
    }
],
  • regex: Der reguläre Ausdruck prüft, ob das jeweilige Feld mit einem beliebigen Inhalt gefüllt ist.
  • message: Die Rückgabemeldung, falls die Validierung nicht erfolgreich war.
Validierungsnachricht an der Oberfläche

Validierungsnachricht an der Oberfläche

Das nächste Beispiel zeigt die Validierungsregel für URLs:

"p_browsergraphic": [
    {
        "regex": "^((https?:\/\/)?([\\da-z\\.-]+)\\.([a-z\\.]{2,6})([\/\\w \\.-]*)*\/?|)$",
        "message": "Eingabe ist keine gültige URL"
    }
],
  • regex: Der reguläre Ausdruck prüft, ob die eingabe eine URL ist.
  • message. Die Rückgabemeldung für diesem Fall.
Validierung einer URL

Validierung einer URL

Validierung: Zeitbezug Erstellung, Veröffentlichung, Aktualisierung

In der Angabe des Raumbezugs, ist mindestens eine Angabe von

  • Erstellung
  • Veröffentichung oder
  • Validierung

verpflichtend. Es muss aber mindestens ein Feld ausgefüllt sein.

Validierung Zeitbezug

Validierung Zeitbezug

Die Validierung geschieht durch die oneIsMandatory Regel. In den siblings werden die anderen entsprechenden Objekte angegeben.

"p_creationdate": [
        {
            "assert": "oneIsMandatory",
            "message": "Mindestens eine Angabe verpflichtend!",
            "parent": "-js-validation-area",
            "siblings": [
                "p_publicationdate", "p_revisiondate"
            ]
        }
    ],
    "p_publicationdate": [
        {
            "assert": "oneIsMandatory",
            "message": "Mindestens eine Angabe verpflichtend!",
            "parent": "-js-validation-area",
            "siblings": [
                "p_creationdate", "p_revisiondate"
            ]
        }
    ],
    "p_revisiondate": [
        {
            "assert": "oneIsMandatory",
            "message": "Mindestens eine Angabe verpflichtend!",
            "parent": "-js-validation-area",
            "siblings": [
                "p_publicationdate", "p_creationdate"
            ]
        }
    ],

Validierung Raumbezug: Maßstabszahl (mz), Bodenauflösung

Die Validierung im Raumbezug erlaubt nur die Eingabe eines der Felder von

  • Maßstabszahl oder
  • Bodenauflösung.

Eines der Felder muss jedoch ausgefüllt werden.

Validierung Raumbezug

Validierung Raumbezug

Die Validierung geschieht durch die onlyOne Regel. In den siblings wird das jeweils entsprechende Objekt angegeben.

"p_spatialresolutiondenominator": [
    {
        "assert": "onlyOne",
        "message": "Alle Felder ausfüllen oder alle Felder leer lassen!",
        "parent": "-js-validation-area",
        "siblings": [
            "p_spatialresolutiondistance"
        ]
    }
],
"p_spatialresolutiondistance": [
    {
        "assert": "onlyOne",
        "message": "Alle Felder ausfüllen oder alle Felder leer lassen!",
        "parent": "-js-validation-area",
        "siblings": [
            "p_spatialresolutiondenominator"
        ]
    }
],

Validierung Dateneigenschaften: Bezug zu anderen Datenbeständen

Die Validierung des Bezugs der Datenbestände muss entweder mit den Feldern

  • Ressourcen-Identifier des anderen Datenbestandes,
  • Bezugsart zum anderen Datenbestand

geschehen, oder wird überhaupt nicht ausgefüllt.

Validierung Bezug Datenbestände

Validierung Bezug Datenbestände

Die Validierung geschieht durch die allOrNothing Regel. In den Siblings wird das jeweils andere Feld angegeben.

"p_aggregationinfo_code": [
        {
            "assert": "allOrNothing",
            "message": "Alle Felder ausfüllen oder alle Felder leer lassen!",
            "parent": "-js-set-fields-parent",
            "siblings": [
                "p_aggregationinfo_associationtype"
            ]
        }
    ],
    "p_aggregationinfo_associationtype": [
        {
            "assert": "allOrNothing",
            "message": "Alle Felder ausfüllen oder alle Felder leer lassen!",
            "parent": "-js-set-fields-parent",
            "siblings": [
                "p_aggregationinfo_code"
            ]
        }
    ],

Validierung Adressen: URL und URL Beschreibung

In den Adressen der Herstellungsinformation muss

  • die URL des Kontakts ausgefüllt sein, wenn
  • die URL Beschreibung ausgefüllt ist.
Validierung Kontakt URL

Validierung Kontakt URL

Dies geschieht durch die mandatoryIfSiblingNotEmpty Regel. Die Siblings sind ein Array aus den jeweils verbundenen Objekten.

"p_contact_url": [
        {
            "assert": "mandatoryIfSiblingNotEmpty",
            "message": "Muss ausgefüllt werden sobald eine Beshreibung eingegeben wurde!",
            "parent": "-js-validation-area",
            "siblings": ["p_contact_urldescription"]
        }
    ],
    "p_contact_urldescription": [
        {
            "assert": "testSiblings",
            "parent": "-js-validation-area",
            "message": "",
            "siblings": ["p_contact_url"]
        }
    ]