Plannamenvalidierungsregeln aktualisieren: Unterschied zwischen den Versionen
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
| − | Für die Validierung der Plannamen werden Regex ausgeführt, wenn diese als Validierungsregeln hinterlegt aus. Regex sehen beispielsweise aus wie folgt und können je Planart individuell festgelegt werden:[[Datei:ImagePlannamenvalidierungXML.png|zentriert|rahmenlos | + | Für die Validierung der Plannamen werden Regex ausgeführt, wenn diese als Validierungsregeln hinterlegt aus. Regex sehen beispielsweise aus wie folgt und können je Planart individuell festgelegt werden: |
| + | [[Datei:ImagePlannamenvalidierungXML.png|zentriert|rahmenlos]] | ||
| + | Erläuterung der Regex aus dem Beispiel, die pro Planart vergeben werden können: | ||
*"[A-Z]{1}" = Ein Großbuchstabe (Eckige Klammern enthalten das, worum es geht; geschweifte Klammern geben an, wie viel.) | *"[A-Z]{1}" = Ein Großbuchstabe (Eckige Klammern enthalten das, worum es geht; geschweifte Klammern geben an, wie viel.) | ||
*"[a-z&&[^öüäß ]]" = direkt anschließend Kleinbuchstaben mit Ausnahme von Umlauten, "ß" und Leerzeichen | *"[a-z&&[^öüäß ]]" = direkt anschließend Kleinbuchstaben mit Ausnahme von Umlauten, "ß" und Leerzeichen | ||
Aktuelle Version vom 4. Dezember 2025, 11:03 Uhr
Für die Validierung der Plannamen werden Regex ausgeführt, wenn diese als Validierungsregeln hinterlegt aus. Regex sehen beispielsweise aus wie folgt und können je Planart individuell festgelegt werden:
Erläuterung der Regex aus dem Beispiel, die pro Planart vergeben werden können:
- "[A-Z]{1}" = Ein Großbuchstabe (Eckige Klammern enthalten das, worum es geht; geschweifte Klammern geben an, wie viel.)
- "[a-z&&[^öüäß ]]" = direkt anschließend Kleinbuchstaben mit Ausnahme von Umlauten, "ß" und Leerzeichen
- "+" = Kombination mehrerer Vorgaben in eckigen Klammern "[beliebiger Inhalt]"
- "[0-9]{1,3}" = direkt anschließend 1 bis 3 Zahlen
- "[-]{1}" = Bindestrich bzw. Minus z.B. zur Verbindung mehrerer ORT-Angaben
Zur Vertiefung[Bearbeiten | Quelltext bearbeiten]
Generelles[Bearbeiten | Quelltext bearbeiten]
Folgende Zeichen sind unkritisch und im Plannamen verwendbar:
- Groß- und Kleinbuchstaben
- Zahlen
Zusätzlich Sonderzeichen, die im EfA DiPlanCockpit nun möglich sind:
- Umlaute als Groß- und Kleinbuchstaben wie "Öäß"
- Weitere Zeichen: ",:§" und Römische Ziffern
Zeichen mit besonderer Bedeutung in Regex:
- .()^*/
- Diese Zeichen müssen mit einen vorangestellten \ maskiert werden, um sie von ihrer Sonderrolle zu entbinden.
Details zur Konfiguration des Plannamenvalidators[Bearbeiten | Quelltext bearbeiten]
Die Default-Konfiguration beinhaltet keine Validatorregeln, d.h. der Planname wird in diesem Fall nicht validiert.
<?xml version="1.0" encoding="UTF-8"?>
<plannamenValidatorKonfiguration>
<!--Definition der plannameSyntaxRegel(n)-->
</plannamenValidatorKonfiguration>
Enthält die XML-Konfigurationsdatei Validatorregeln, muss das zu prüfende Verfahren mindestens einer Validatorregel entsprechen, andernfalls wird der Planname als ungültig abgelehnt.
Die Validatorkonfiguration wird in XML beschrieben und basiert auf einem XML-Schema:
Innerhalb der XML-Datei können mehrere Validatoren konfiguriert werden. Ein Validator wird durch eine Planname-Syntax-Regel beschrieben. Dieses Element besteht aus 1-n Bedingungen und 1-n regulären Ausdrücken (Regex). Die Bedingungen beziehen sich auf Verfahrenseigenschaften und dienen dazu, den gültigen Validator für den Plannamen eines Verfahrens zu ermitteln. Folgende Verfahrenseigenschaften lassen sich in den Bedingungen abbilden:
- planart ** Planart des Verfahrens ** Datentyp: string
- hatBeschlussBuergerschaftSenatssitzungFnp ** optionale Zusatzprüfung für FNP-Verfahren: *** Sitzung "senatssitzung" hat stattgefunden UND politisches Sitzungsergebnis ist zugestimmt *** Sitzung "beschlussBuergerschaft" hat stattgefunden UND politisches Sitzungsergebnis ist zugestimmt ** Datentyp: boolean
- hatBeschlussBuergerschaftLapro ** optionale Zusatzprüfung für LaPro-Verfahren: *** Sitzung "beschlussBuergerschaft" hat stattgefunden UND politisches Sitzungsergebnis ist zugestimmt ** Datentyp: boolean
Die einzelnen Bedingungen einer Planname-Syntax-Regel sind ODER-verknüpft, d.h. bezogen auf das Verfahren muss mindestens eine Bedingung erfüllt sein, um den entsprechenden Validator anzuwenden. Der Planname wird dann anhand der regulären Ausdrücke geprüft. Diese regulären Ausdrücke sind ebenfalls ODER-verknüpft, d.h. der Planname ist valide, wenn seine Syntax mindestens einem regulären Ausdruck entspricht.
Beispiel:
<plannameSyntaxRegel>
<bedingung>
<planart>Baustufenplan</planart>
</bedingung>
<regex>[B]{1}[S]{1}[A-Z]{1}[a-z&&[^öüäß ]]+</regex>
<regex>[B]{1}[S]{1}[A-Z]{1}[a-z&&[^öüäß ]]+[-]{1}[A-Z]{1}[a-z&&[^öüäß ]]+</regex>
</plannameSyntaxRegel>
<plannameSyntaxRegel>
<bedingung>
<planart>EinfacherBebauungsplan</planart>
</bedingung>
<bedingung>
<planart>QualifizierterBebauungsplan</planart>
</bedingung>
<regex>[A-Z]{1}[a-z&&[^öüäß ]]+[0-9]{1,3}</regex>
<regex>[A-Z]{1}[a-z&&[^öüäß ]]+[-]{1}[A-Z]{1}[a-z&&[^öüäß ]]+[0-9]{1,3}</regex>
<regex>[A-Z]{1}[a-z&&[^öüäß ]]+[0-9]{1,3}[-]{1}[A-Z]{1}[a-z&&[^öüäß ]]+[0-9]{1,3}</regex>
<regex>[A-Z]{1}[a-z&&[^öüäß ]]+[-]{1}[A-Z]{1}[a-z&&[^öüäß ]]+[0-9]{1,3}[-]{1}[A-Z]{1}[a-zA-Z&&[^öüäß]]+[0-9]{1,3}</regex>
<regex>[A-Z]{1}[a-z&&[^öüäß ]]+[A-Z]{1}[a-z&&[^öüäß ]]+[0-9]{1,2}</regex>
</plannameSyntaxRegel>