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.
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: 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.
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.
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.
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.
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"]
}
]