Plannamenvalidierungsregeln aktualisieren: Unterschied zwischen den Versionen

Aus DiPlanung

(Die Seite wurde neu angelegt: „Für die Validierung der Plannamen werden Regex ausgeführt, wenn diese als Validierungsregeln hinterlegt aus. Regex sehen beispielsweise aus wie folgt und kö…“)
 
 
(3 dazwischenliegende Versionen desselben Benutzers werden 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 vergeben 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
Zeile 5: Zeile 7:
 
*"[0-9]{1,3}" = direkt anschließend 1 bis 3 Zahlen
 
*"[0-9]{1,3}" = direkt anschließend 1 bis 3 Zahlen
 
*"[-]{1}" = Bindestrich bzw. Minus z.B. zur Verbindung mehrerer ORT-Angaben
 
*"[-]{1}" = Bindestrich bzw. Minus z.B. zur Verbindung mehrerer ORT-Angaben
===Zur Vertiefung===
+
==Zur Vertiefung==
====Generelles====
+
===Generelles===
 
Folgende Zeichen sind unkritisch und im Plannamen verwendbar:
 
Folgende Zeichen sind unkritisch und im Plannamen verwendbar:
 
*Groß- und Kleinbuchstaben
 
*Groß- und Kleinbuchstaben
Zeile 16: Zeile 18:
 
*.()^*/
 
*.()^*/
 
*Diese Zeichen müssen mit einen vorangestellten \ maskiert werden, um sie von ihrer Sonderrolle zu entbinden.
 
*Diese Zeichen müssen mit einen vorangestellten \ maskiert werden, um sie von ihrer Sonderrolle zu entbinden.
====Details zur Konfiguration des Plannamenvalidators====
+
===Details zur Konfiguration des Plannamenvalidators===
 
Die Default-Konfiguration beinhaltet keine Validatorregeln, d.h. der Planname wird in diesem Fall nicht validiert.
 
Die Default-Konfiguration beinhaltet keine Validatorregeln, d.h. der Planname wird in diesem Fall nicht validiert.
 
  <code><nowiki><?xml version="1.0" encoding="UTF-8"?>
 
  <code><nowiki><?xml version="1.0" encoding="UTF-8"?>

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>