Plannamenvalidierungsregeln aktualisieren: Unterschied zwischen den Versionen

Aus DiPlanung

 
(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|verweis=https://wiki.diplanung.de/index.php%3Ftitle=Datei:ImagePlannamenvalidierungXML.png]]Erläuterung der Regex aus dem Beispiel, die pro Planart vergeben werden können:
+
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:

ImagePlannamenvalidierungXML.png

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:

ImagePlannamenValidatorSchema.png

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&amp;&amp;[^öüäß ]]+</regex>
    <regex>[B]{1}[S]{1}[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[-]{1}[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+</regex>
</plannameSyntaxRegel>
<plannameSyntaxRegel>
    <bedingung>
        <planart>EinfacherBebauungsplan</planart>
    </bedingung>
    <bedingung>
        <planart>QualifizierterBebauungsplan</planart>
    </bedingung>
    <regex>[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[0-9]{1,3}</regex>
    <regex>[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[-]{1}[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[0-9]{1,3}</regex>
    <regex>[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[0-9]{1,3}[-]{1}[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[0-9]{1,3}</regex>
    <regex>[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[-]{1}[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[0-9]{1,3}[-]{1}[A-Z]{1}[a-zA-Z&amp;&amp;[^öüäß]]+[0-9]{1,3}</regex>
    <regex>[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]+[0-9]{1,2}</regex>
</plannameSyntaxRegel>