SCHEMA Allgemeine_Objekte;

REFERENCE FROM Strassennetz (Punktobjekt_stat);

REFERENCE FROM Administration (Strassenbaudienststelle, Verwaltungsbezirk);

REFERENCE FROM Umfeldmessstelle (Umfeldmessstelle);

REFERENCE FROM Automatische_Dauerzaehlstelle (oertliche_Zuordnung_AD, verwaltungstechn_Zuordnung_AD);

REFERENCE FROM Unfall (Angaben_zum_Unfallort);

REFERENCE FROM Manuelle_Zaehlstelle (oertliche_Zuordnung_MZ, verwaltungstechn_Zuordnung_MZ);

REFERENCE FROM Lichtsignalanlage (Lichtsignalanlage);

REFERENCE FROM Historisierung (historisches_Objekt);

ENTITY Wochentag;
--- Attribute :
   Langtext : STRING(10);
--- Relationen :
END_ENTITY;
 
Zulässige Werte:
   (1,'Sonntag')
   (2,'Montag')
   (3,'Dienstag')
   (4,'Mittwoch')
   (5,'Donnerstag')
   (6,'Freitag')
   (7,'Samstag')

Referenziert von:
   Wochentagsganglinien_q : Eigenschaft Wochentag
   Angaben_zur_Unfallzeit : Eigenschaft Wochentag_Unfall
 

ENTITY einfacher_Zeitraum
SUBTYPE OF (Zeitraum);
--- Attribute :
--- Relationen :
   hat_Startdatum : Startdatum;
   hat_Dauer : Dauer;
END_ENTITY;
 

ENTITY Startdatum;
--- Attribute :
   Jahr : OPTIONAL INTEGER;
   Monat_im_Jahr : OPTIONAL INTEGER;
   Woche_im_Jahr : OPTIONAL INTEGER;
   Tag_im_Monat : OPTIONAL INTEGER;
   vorwaerts_oder_rueckwaerts : OPTIONAL BOOLEAN;
   Woche_im_Monat : OPTIONAL INTEGER;
   Tag_in_der_Woche : OPTIONAL INTEGER;
   Stunde_am_Tag : OPTIONAL INTEGER;
   Minute_in_der_Stunde : OPTIONAL INTEGER;
   Sekunde_in_der_Minute : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_einfachem_Zeitraum : SET [0:?] OF einfacher_Zeitraum FOR hat_Startdatum;
END_ENTITY;
 

ENTITY Dauer;
--- Attribute :
   Jahre : OPTIONAL INTEGER;
   Monate : OPTIONAL INTEGER;
   Wochen : OPTIONAL INTEGER;
   Tage : OPTIONAL INTEGER;
   Stunden : OPTIONAL INTEGER;
   Minuten : OPTIONAL INTEGER;
   Sekunden : OPTIONAL INTEGER;
--- Relationen :
INVERSE
   von_einfachem_Zeitraum : SET [0:?] OF einfacher_Zeitraum FOR hat_Dauer;
END_ENTITY;
 

ENTITY komplexer_Zeitraum
SUBTYPE OF (Zeitraum);
--- Attribute :
--- Relationen :
   hat_ersten_Zeitraum : Zeitraum;
   hat_zweiten_Zeitraum : Zeitraum;
   hat_Operator : Operator;
END_ENTITY;
 

ENTITY Operator;
--- Attribute :
   Kennung : STRING(1);
   Langtext : STRING;
--- Relationen :
END_ENTITY;
 
Zulässige Werte:
   ('+','Vereinigung')
   ('*','Durchschnitt')
   ('-','Differenz')

Referenziert von:
   komplexer_Zeitraum : Eigenschaft hat_Operator
 

ENTITY Zeitraum
ABSTRACT SUPERTYPE OF (ONEOF(einfacher_Zeitraum, komplexer_Zeitraum))
SUBTYPE OF (historisches_Objekt);
--- Attribute :
--- Relationen :
INVERSE
   erster_in : SET [0:?] OF komplexer_Zeitraum FOR hat_ersten_Zeitraum;
   zweiter_in : SET [0:?] OF komplexer_Zeitraum FOR hat_zweiten_Zeitraum;
END_ENTITY;
 

ENTITY verwaltungstechn_Zuordnung;
--- Attribute :
--- Relationen :
   hat_Strassenbaudienststelle : Strassenbaudienststelle;
   hat_Verwaltungsbezirk : Verwaltungsbezirk;
INVERSE
   von_Umfeldmessstelle : SET [0:?] OF Umfeldmessstelle FOR hat_verwaltungstechn_Zuordnung;
   von_automat_Dauerzaehlstelle : SET [0:?] OF verwaltungstechn_Zuordnung_AD FOR hat_verwaltungstechn_Zuordnung;
   von_manueller_Zaehlstelle : SET [0:?] OF verwaltungstechn_Zuordnung_MZ FOR hat_verwaltungstechn_Zuordnung;
   von_Angaben_zum_Unfallort : SET [0:?] OF Angaben_zum_Unfallort FOR hat_verwaltungstechn_Zuordnung;
END_ENTITY;
 

ENTITY oertliche_Zuordnung;
--- Attribute :
--- Relationen :
   liegt_auf_Strassenpunkt : OPTIONAL oertliche_Zuordnung_SP;
   liegt_auf_nicht_klass_Strasse : OPTIONAL nicht_nach_ASB_klass_Strasse;
INVERSE
   von_Umfeldmessstelle : SET [0:?] OF Umfeldmessstelle FOR hat_oertliche_Zuordnung;
   von_automat_Dauerzaehlstelle : SET [0:?] OF oertliche_Zuordnung_AD FOR hat_oertliche_Zuordnung;
   von_manueller_Zaehlstelle : SET [0:?] OF oertliche_Zuordnung_MZ FOR hat_oertliche_Zuordnung;
   von_Angaben_zum_Unfallort : SET [0:?] OF Angaben_zum_Unfallort FOR hat_oertliche_Zuordnung;
   von_Lichtsignalanlage : SET [0:?] OF Lichtsignalanlage FOR hat_oertliche_Zuordnung;
END_ENTITY;
 

ENTITY oertliche_Zuordnung_SP
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
   von_oertlicher_Zuordnung : SET [0:?] OF oertliche_Zuordnung FOR liegt_auf_Strassenpunkt;
END_ENTITY;
 

ENTITY nicht_nach_ASB_klass_Strasse;
--- Attribute :
   Strassenklasse : STRING(50);
   Nummer : INTEGER;
   Lage : STRING(28);
--- Relationen :
INVERSE
   von_oertlicher_Zuordnung : SET [0:?] OF oertliche_Zuordnung FOR liegt_auf_nicht_klass_Strasse;
END_ENTITY;
 

TYPE Datum = STRING(10) FIXED;
WHERE
   Datums_Format : SELF LIKE '##.##.####';
END_TYPE;
 

TYPE Uhrzeit = STRING(12);
WHERE
   Uhrzeit_Format : SELF LIKE '##:##' OR SELF LIKE '##:##:##' OR SELF LIKE '##:##:##:###'( SELF LIKE '##:##' ) OR ( SELF LIKE '##:##:##' ) OR ( SELF LIKE '##:##:##:###' );
END_TYPE;
 

TYPE Jahr = INTEGER;
WHERE
   Jahr_sinnvoll : { 1900 <= SELF <= 2099 };
END_TYPE;
 

TYPE Monat = INTEGER;
WHERE
   Monat_sinnvoll : { 1 <= SELF <= 12 };
END_TYPE;
 

TYPE Woche = INTEGER;
WHERE
   Woche_sinnvoll : { 1 <= SELF <= 53 };
END_TYPE;
 

TYPE Tag = INTEGER;
WHERE
   Monat_sinnvoll : { 1 <= SELF <= 31 };
END_TYPE;
 

TYPE Stunde = INTEGER;
WHERE
   Stunde_sinnvoll : { 1 <= SELF <= 12 };
END_TYPE;
 

TYPE Minute = INTEGER;
WHERE
   Minute_sinnvoll : { 1 <= SELF <= 12 };
END_TYPE;
 

TYPE Anzahl = INTEGER;
WHERE
   Anzahl_nicht_negativ : SELF >= 0;
END_TYPE;
 

TYPE Anzahl_zweistellig = INTEGER;
WHERE
   Anzahl_zweistellig : { 0 <= SELF <= 99 };
END_TYPE;
 

TYPE Groesse = REAL;
WHERE
   Groesse_nicht_negativ : SELF >= 0;
END_TYPE;
 

TYPE Tage = Anzahl;
END_TYPE;
 

TYPE Millisekunden = Anzahl;
END_TYPE;
 

TYPE Meter = Groesse;
END_TYPE;
 

TYPE Dezimeter = Groesse;
END_TYPE;
 

TYPE Zentimeter = Groesse;
END_TYPE;
 

TYPE Millimeter = Groesse;
END_TYPE;
 

TYPE Mikrometer = Groesse;
END_TYPE;
 

TYPE Kilometer = Groesse;
END_TYPE;
 

TYPE Meter_ueber_NN = REAL;
END_TYPE;
 

TYPE Quadratmeter = Groesse;
END_TYPE;
 

TYPE Quadratmillimeter = Groesse;
END_TYPE;
 

TYPE Tonnen = Groesse;
END_TYPE;
 

TYPE Prozent = REAL;
END_TYPE;
 

TYPE Gon = Groesse;
END_TYPE;
 

TYPE Winkel = REAL;
END_TYPE;
 

TYPE Grad = INTEGER;
WHERE
   Grad_sinnvoll : { 0 <= SELF <= 359 };
END_TYPE;
 

TYPE Newton_pro_Quadratmillimeter = Anzahl;
END_TYPE;
 

TYPE Kilonewton = Groesse;
END_TYPE;
 

TYPE Kilogramm = Groesse;
END_TYPE;
 

TYPE Kilogramm_pro_Quadratmeter = Groesse;
END_TYPE;
 

TYPE cd_pro_Quadratmeter = Anzahl;
END_TYPE;
 

TYPE Lux = Anzahl;
END_TYPE;
 

TYPE Kilowatt = Anzahl;
END_TYPE;
 

TYPE Grad_Celsius = Groesse;
END_TYPE;
 

TYPE Hektopascal = INTEGER;
WHERE
   Hektopascal_sinnvoll : { 800 <= SELF <= 1200 };
END_TYPE;
 

TYPE Stundenkilometer = Anzahl;
END_TYPE;
 

TYPE Meter_pro_Sekunde = Groesse;
WHERE
   Meter_pro_Sekunde_nicht_neg : SELF >= 0;
END_TYPE;
 

TYPE Millimeter_pro_Stunde = Groesse;
WHERE
   Millimeter_pro_Stunde_n_neg : SELF >= 0;
END_TYPE;
 

TYPE DM = Groesse;
END_TYPE;
 

END_SCHEMA; -- Allgemeine_Objekte