Containerinhalt validieren Diese Aktion liest einen Datensatz aus einem Container und validiert ihn anhand von Kriterien. Funktionen: Parameter idfield der Request-Parameter, der die ID des Datensatzes enthält list die Liste, aus welcher der Datensatz entnommen wird (Container-ID oder Containername) config die Validierungsregeln alternativ auch Dateiname, wo die Regeln drin stehen XML-Syntax der Validierungsregeln Es kann auch ein Pfad angegeben werden, wo dann die Regeln hinterlegt sind (für mehr Flexibilität, da kann man die Regeln im Container speichern oder so) nodeset gibt das Feld im Container an, welches validiert werden soll index ist ein Bezeichner für diesen Test (beliebiger Text) required required="true()" - Feld muß gefüllt sein required="Feld2 = 'Wert'" - Feld muß in Abhängigkeit eines anderen Feldwertes gefüllt sein. Wichtig sind die Leerzeichen vor und nach dem = . Allerdings keine Leerzeichen vor und nach Feldname bzw. Wertangabe. match kann einen regulären Ausdruck enthalten (für einzeilige und mehrzeilige Textfelder) constraint kann eine Bedingung angegeben werden, die der Feldinhalt erfüllen muß (z.B. ". > 18:00", zur Zeit "< >" für Datumsangaben, "< > =" für Zahlen und "=" für einzeiligen Text) type gibt den xsd-Typnamen an (zur Zeit noch nicht unterstützt) Beispiele Feld muß gefüllt sein ... ... Die Zählernummer (z.B. eines Stromanschlusses) muß immer angegeben werden (im Container muß im entsprechenden Textfeld etwas stehen). Feld muß in Abhängigkeit eines anderen Feldwertes gefüllt sein ... ... Die Zählernummer muß angegeben werden, wenn im Formular das Häkchen bei "Neuanschluß" nicht gesetzt wurde (im Container angelegtes Häckchenfeld darf nicht angehakt sein). Feld muß in Abhängigkeit eines anderen Feldwertes gefüllt sein ... ... Gleiches Beispiel wie oben, nur daß das Feld "Neuanschluß" ein Textfeld ist und das Wort "nein" drin steht. E-Mail-Validierung ... ... Der im Feld "Email" gespeicherte Wert muß dem angegebenen Regex ensprechen (dieser Regex ist nur einer von vielen). Datum prüfen ... ... Das Geburtsdatum muß vor heute liegen. constraint Mit constraint werden Gültigkeitsbedingungen des Feldinhalts angegeben. Diese sind je nach Typ des Feldes unterschiedlich. Der Wert im Parameter constraint muß folgende Form haben: Wichtig sind die Leerzeichen, die die 3 Werte trennen. Hier ist die Liste der unterstützten Bedingungen, geordnet nach Feldtyp: Textfelder (einzeilig, mehrzeilig) {Vergleichswert}: Gültig sind: Werte in Apostroph für Vergleich mit festen Wert Name eines anderen Feldes Spezialwerte #null" (Feldinhalt ist null) "#empty" (Feldinhalt ist Leerstring) "#nodata" (Feldinhalt ist null oder Leerstring) (ab v2.5.8) {Operator}: "=" prüft, ob Feld dem Testwert entspricht "!=" Prüft, ob Feld dem Testwert nicht entspricht (ab v2.5.8) "MATCH" Prüft, ob Feld dem regulären Ausdruck in Testwert entspricht (ab v2.5.8) Datumsfelder {Vergleichswert} Als Vergleichswert ist bisher (v2.5.8) nur ein fester Wert möglich. Er sollte wegen Kompatibilität zu zukünftigen Erweiterungen in Apostrophs eingeschlossen werden. Zeitfelder müssen in der Form "{Stunden}:{Minuten}[:{Sekunden}]" angegeben sein Datumsfelder müssen in der Form "{Tag}.{Monat}.{Jahr}" angegeben sein Datum-/Zeitfelder in der Form "{Tag}.{Monat}.{Jahr} {Stunden}:{Minuten}[:{Sekunden}]" Erweiterung mit ab v2.5.9: Schlüsselwort: "#today" (constraint="datum is #today+2") Erweiterung mit ab v2.5.9: Vergleich mit anderen Feld (constraint="vondatum before bisdatum" Bei zwei zu vergleichenden Feldern muß das Containerfeld als erstes angegeben werden.) {Operator} "<" (<) - Prüft, ob Feld zeitlich vor dem Testwert liegt ">" (>) - Prüft, ob Feld zeitlich nach dem Testwert liegt "before" - Prüft, ob Feld zeitlich vor dem Testwert liegt (ab v2.5.9) "after" - Prüft, ob Feld zeitlich nach dem Testwert liegt (ab v2.5.9) "=" oder "is" - Prüft, ob Feld gleich dem Testwert ist (gleicher Tag) (ab v2.5.9) "lt" - Prüft, ob Feld zeitlich vor dem Testwert liegt (ab v2.5.9) "gt" - Prüft, ob Feld zeitlich nach dem Testwert liegt (ab v2.5.9) "beforeOrEqual" - Prüft, ob Feld zeitlich vor oder genau auf dem Testwert liegt (ab v2.5.9) "afterOrEqual" - Prüft, ob Feld zeitlich nach oder genau auf dem Testwert liegt (ab v2.5.9) "lte" - Prüft, ob Feld zeitlich vor oder genau auf dem Testwert liegt (ab v2.5.9) "gte" - Prüft, ob Feld zeitlich nach oder genau auf dem Testwert liegt (ab v2.5.9) Zahlenfelder {Vergleichswert} Als Vergleichswert ist bisher (v2.5.8) nur ein fester Wert möglich. Als Dezimaltrenner muß das Komma verwendet werden. {Operator} "<" prüft, ob Feld kleiner als der Testwert ist ">" Prüft, ob Feld größer als der Testwert ist "=" Prüft, ob Feld gleich dem Testwert ist Häkchenfelder (Wahrheitswert) {Vergleichswert} 'j', 'ja', 'true', 'y', 'yes' für Test auf wahr '#null' für Test auf nicht gewählt (ab v2.5.8) alles andere für Test auf falsch {Operator} "=" prüft, ob Feld dem Testwert entspricht "!=" prüft, ob Feld nicht dem Testwert entspricht (ab v2.5.8) Verknüpfungen, Untercontainer werden in Version 2.5.8 noch nicht unterstützt