Plannamenvalidierungsregeln aktualisieren: Unterschied zwischen den Versionen

Aus DiPlanung

 
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:
+
Per Default sind im DiPlanCockpit keine Validierungsregeln für Plannamen hinterlegt, so dass keine Überprüfung während des Uploads und Downloads von Planwerken stattfindet. Der Plannamenvalidator ist jedoch per XML konfigurierbar.  
[[Datei:ImagePlannamenvalidierungXML.png|zentriert|rahmenlos]]
+
 
Erläuterung der Regex aus dem Beispiel, die pro Planart vergeben werden können:
+
Der folgende Screenshot zeigt einen Auszug aus einer beispielhaften XML-Datei zur Konfiguration:
*"[A-Z]{1}" = Ein Großbuchstabe (Eckige Klammern enthalten das, worum es geht; geschweifte Klammern geben an, wie viel.)
+
[[Datei:ImagePlannamenvalidierungXML2.png|zentriert|mini|742x742px]]
*"[a-z&&[^öüäß ]]" = direkt anschließend Kleinbuchstaben mit Ausnahme von Umlauten, "ß" und Leerzeichen
+
Die Validierungsregeln werden jeweils pro Kombination aus Planart und Verfahrensart definiert und als Regex formuliert.
*"+" = Kombination mehrerer Vorgaben in eckigen Klammern "[''beliebiger Inhalt'']"
+
 
*"[0-9]{1,3}" = direkt anschließend 1 bis 3 Zahlen
+
Bei Regex gilt, dass in eckigen Klammern steht, um welche Zeichen es geht, und in geschweiften Klammern, wie viele dieser Zeichen genutzt werden dürfen.
*"[-]{1}" = Bindestrich bzw. Minus z.B. zur Verbindung mehrerer ORT-Angaben
+
 
 +
Die erste Regex aus dem Beispiel sieht folgendermaßen aus: [B]{1}[S]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]
 +
 
 +
Das bedeutet: Der Planname muss aus einem "B" bestehen, gefolgt von einem "S", anschließen ein weiterer Großbuchstabe zwischen A und Z und anschließend beliebig viele Kleinbuchstaben, die keine Umlaute, "ß" oder Leerzeichen sein dürfen.
 +
 
 
==Zur Vertiefung==
 
==Zur Vertiefung==
 
===Generelles===
 
===Generelles===
Zeile 12: Zeile 16:
 
*Groß- und Kleinbuchstaben
 
*Groß- und Kleinbuchstaben
 
*Zahlen
 
*Zahlen
Zusätzlich Sonderzeichen, die im EfA DiPlanCockpit nun möglich sind:
+
Zusätzlich Sonderzeichen, die im EfA DiPlanCockpit möglich sind:
 
*Umlaute als Groß- und Kleinbuchstaben wie "Öäß"
 
*Umlaute als Groß- und Kleinbuchstaben wie "Öäß"
 
*Weitere Zeichen: ",:§" und Römische Ziffern
 
*Weitere Zeichen: ",:§" und Römische Ziffern
Zeile 19: Zeile 23:
 
*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 nicht validiert.
 
  <code><nowiki><?xml version="1.0" encoding="UTF-8"?>
 
  <code><nowiki><?xml version="1.0" encoding="UTF-8"?>
 
   <plannamenValidatorKonfiguration>
 
   <plannamenValidatorKonfiguration>
Zeile 26: Zeile 30:
 
Enthält die XML-Konfigurationsdatei Validatorregeln, muss das zu prüfende Verfahren mindestens einer Validatorregel entsprechen, andernfalls wird der Planname als ungültig abgelehnt.
 
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:[[Datei:ImagePlannamenValidatorSchema.png|zentriert|rahmenlos|623x623px|verweis=https://wiki.diplanung.de/index.php%3Ftitle=Datei: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:
+
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
+
* planart
*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
+
** Planart des Verfahrens
*hatBeschlussBuergerschaftLapro ** optionale Zusatzprüfung für LaPro-Verfahren: *** Sitzung "beschlussBuergerschaft" hat stattgefunden UND politisches Sitzungsergebnis ist zugestimmt ** Datentyp: boolean
+
** Datentyp: string
 +
* verfahrensart
 +
** Verfahrensart 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.
 
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:
 
Beispiel:
  <code><plannameSyntaxRegel>
+
  <plannameSyntaxRegel>
 
     <bedingung>
 
     <bedingung>
         <planart>Baustufenplan</planart>
+
         <planart>6_3_EinfacherBPlan</planart>
 +
        <verfahrensart>Baustufenplan_NormalesVerfahren</verfahrensart>
 +
    </bedingung>
 +
    <bedingung>
 +
        <planart>6_3_EinfacherBPlan</planart>
 +
        <verfahrensart>Baustufenplan_VereinfachtesVerfahren</verfahrensart>
 
     </bedingung>
 
     </bedingung>
 
     <!--BSAltenwerder-->
 
     <!--BSAltenwerder-->
 
     <regex>[B]{1}[S]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+</regex>
 
     <regex>[B]{1}[S]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+</regex>
      <!--BSAltenwerder-Moorburg-->
+
    <!--BSAltenwerder-Moorburg-->
 
     <regex>[B]{1}[S]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[-]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+</regex>
 
     <regex>[B]{1}[S]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[-]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+</regex>
 
  </plannameSyntaxRegel>
 
  </plannameSyntaxRegel>
<plannameSyntaxRegel>
 
    <bedingung>
 
        <planart>EinfacherBebauungsplan</planart>
 
    </bedingung>
 
    <bedingung>
 
        <planart>QualifizierterBebauungsplan</planart>
 
    </bedingung>
 
      <!--Hummelsbuettel7-->
 
    <regex>[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[0-9]{1,3}</regex>
 
      <!--Hamburg-Altstadt26-->
 
    <regex>[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[-]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[0-9]{1,3}</regex>
 
      <!--Hamburg-Altstadt34-HafenCity2-->
 
    <regex>[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[0-9]{1,3}[-]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[0-9]{1,3}</regex>
 
      <!--Sonderfall Ort-minus-Ort-zahl-minus-Ort-zahl-->
 
    <regex>[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[-]{1}[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[0-9]{1,3}[-]{1}[A-Z]{1}<nowiki>[a-zA-Z&amp;amp;&amp;amp;[^öüäß]</nowiki>]+[0-9]{1,3}</regex>
 
      <!--Sonderfall „HafenCity“, „HafenCity11“-->
 
    <regex>[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[A-Z]{1}<nowiki>[a-z&amp;amp;&amp;amp;[^öüäß ]</nowiki>]+[0-9]{1,2}</regex>
 
</plannameSyntaxRegel></code>
 

Aktuelle Version vom 20. April 2026, 05:50 Uhr

Per Default sind im DiPlanCockpit keine Validierungsregeln für Plannamen hinterlegt, so dass keine Überprüfung während des Uploads und Downloads von Planwerken stattfindet. Der Plannamenvalidator ist jedoch per XML konfigurierbar.

Der folgende Screenshot zeigt einen Auszug aus einer beispielhaften XML-Datei zur Konfiguration:

ImagePlannamenvalidierungXML2.png

Die Validierungsregeln werden jeweils pro Kombination aus Planart und Verfahrensart definiert und als Regex formuliert.

Bei Regex gilt, dass in eckigen Klammern steht, um welche Zeichen es geht, und in geschweiften Klammern, wie viele dieser Zeichen genutzt werden dürfen.

Die erste Regex aus dem Beispiel sieht folgendermaßen aus: [B]{1}[S]{1}[A-Z]{1}[a-z&amp;&amp;[^öüäß ]]

Das bedeutet: Der Planname muss aus einem "B" bestehen, gefolgt von einem "S", anschließen ein weiterer Großbuchstabe zwischen A und Z und anschließend beliebig viele Kleinbuchstaben, die keine Umlaute, "ß" oder Leerzeichen sein dürfen.

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 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 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.

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
  • verfahrensart
    • Verfahrensart 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>6_3_EinfacherBPlan</planart>
        <verfahrensart>Baustufenplan_NormalesVerfahren</verfahrensart>
    </bedingung>
    <bedingung>
        <planart>6_3_EinfacherBPlan</planart>
        <verfahrensart>Baustufenplan_VereinfachtesVerfahren</verfahrensart>
    </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>