SCHEMA Allgemeine_Objekte;

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Geometrieschema (Punktobjekt_Modell, Linienobjekt_Modell, Flaechenobjekt_Modell);

REFERENCE FROM Oekologie (Bewuchs);

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:
   Angaben_zur_Unfallzeit : Eigenschaft Wochentag
 

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 Waehrungsangabe;
--- Attribute :
   Kennung : INTEGER;
   Langtext : STRING;
--- Relationen :
END_ENTITY;
 
Zulässige Werte:
   (1,'EURO')
   (2,'DM')

Referenziert von:
   Bau_und_Erhaltungsmassnahme : Eigenschaft Waehrung
   Kosten_fuer_Bau_Erh_und_Betr : Eigenschaft Waehrung_Ausgabe
   Angaben_zum_Unfallgeschehen : Eigenschaft Waehrung_Gesamtsachschaden
   Unfallfahrzeug : Eigenschaft Waehrung_Sachschaden
   Zusatzdaten_Kostra : Eigenschaft Waehrung
 

ENTITY Vorzeichen;
--- Attribute :
   Kennung : STRING(1);
   Langtext : STRING;
--- Relationen :
END_ENTITY;
 
Zulässige Werte:
   ('+','Summe')
   ('-','Differenz')

Referenziert von:
   Ableitung_autom_Dauerzaehlst : Eigenschaft Vorzeichen
 

ENTITY Objekt_ID;
--- Attribute :
   ID : STRING;
   Namensraum_Verfahren : STRING;
--- Relationen :
INVERSE
   von_Bewuchs : SET [0:?] OF Bewuchs FOR hat_Objekt_Id;
END_ENTITY;
 

ENTITY geometrische_Auspraegung;
--- Attribute :
--- Relationen :
   hat_Auspraegung_Punkt : OPTIONAL SET [1:?] OF geometrische_Auspraegung_Punkt;
   hat_Auspraegung_Linie : OPTIONAL SET [1:?] OF geometrische_Auspraegung_Linie;
   hat_Auspraegung_Flaeche : OPTIONAL SET [1:?] OF geometrische_Auspraegung_Flaeche;
INVERSE
   von_Bewuchs : SET [0:?] OF Bewuchs FOR hat_Auspraegungen;
END_ENTITY;
 

ENTITY geometrische_Auspraegung_Punkt
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   von_geometrischer_Auspraegung : SET [0:?] OF geometrische_Auspraegung FOR hat_Auspraegung_Punkt;
END_ENTITY;
 

ENTITY geometrische_Auspraegung_Linie
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   von_geometrischer_Auspraegung : SET [0:?] OF geometrische_Auspraegung FOR hat_Auspraegung_Linie;
END_ENTITY;
 

ENTITY geometrische_Auspraegung_Flaeche
SUBTYPE OF (Flaechenobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   von_geometrischer_Auspraegung : SET [0:?] OF geometrische_Auspraegung FOR hat_Auspraegung_Flaeche;
END_ENTITY;
 

ENTITY Sensor
SUPERTYPE OF (ONEOF(Fotostandpunkt));
--- Attribute :
   Wirkungsrichtung_horizontal : OPTIONAL Winkel;
   Wirkungsrichtung_vertikal : OPTIONAL Winkel;
   Art : Art_Sensor;
   Typbezeichnung : OPTIONAL STRING;
   Hoehe_ueber_Boden : OPTIONAL Meter;
--- Relationen :
   hat_Sensorstandort : Sensorstandort;
END_ENTITY;
 

ENTITY Art_Sensor;
--- Attribute :
   Kennung : INTEGER;
   Langtext : STRING(30);
--- Relationen :
END_ENTITY;
 
Zulässige Werte:
   (1,'Fotokamera')
   (2,'Videokamera')
   (3,'Mikrofon')
   (4,'Wärmebildkamera')

Referenziert von:
   Sensor : Eigenschaft Art
 

ENTITY Sensorstandort;
--- Attribute :
   hat_Erfassungsqualitaet : Erfassungsqualitaet;
--- Relationen :
   hat_Sensorstandpunkt : OPTIONAL Sensorstandpunkt;
   hat_Sensorstandlinie : OPTIONAL Sensorstandlinie;
INVERSE
   von_Sensor : SET [0:?] OF Sensor FOR hat_Sensorstandort;
END_ENTITY;
 

ENTITY Sensorstandpunkt
SUBTYPE OF (Punktobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   von_Sensorstandort : SET [0:?] OF Sensorstandort FOR hat_Sensorstandpunkt;
END_ENTITY;
 

ENTITY Sensorstandlinie
SUBTYPE OF (Linienobjekt_Modell);
--- Attribute :
--- Relationen :
INVERSE
   von_Sensorstandort : SET [0:?] OF Sensorstandort FOR hat_Sensorstandlinie;
END_ENTITY;
 

ENTITY Foto;
--- Attribute :
   erstellt_von : OPTIONAL STRING;
   physikalische_Aufloesung : OPTIONAL dpi;
   Farbspektrum : OPTIONAL Farbtiefe;
   Datei : OPTIONAL STRING;
   inhaltliche_Beschreibung : OPTIONAL STRING;
--- Relationen :
   Startdatum : Startdatum;
   verwendetes_Verfahren : OPTIONAL fotografisches_Verfahren;
   Aufbewahrungsort_Medium_analog : OPTIONAL STRING;
   hat_Fotostandpunkt : OPTIONAL Fotostandpunkt;
END_ENTITY;
 

ENTITY fotografisches_Verfahren;
--- Attribute :
   Kennung : INTEGER;
   Langtext : STRING(60);
--- Relationen :
END_ENTITY;
 
Zulässige Werte:
   (1,'Digitalkamera')
   (2,'Analogkamera, scannen des Papierabzuges')
   (3,'Analogkamera, scannen des Dia-Positives')

Referenziert von:
   Foto : Eigenschaft verwendetes_Verfahren
 

ENTITY Fotostandpunkt
SUBTYPE OF (Sensor);
--- Attribute :
--- Relationen :
INVERSE
   von_Foto : SET [0:?] OF Foto FOR hat_Fotostandpunkt;
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;
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 = REAL;
END_TYPE;
 

TYPE Dezimeter = Groesse;
END_TYPE;
 

TYPE Zentimeter = Groesse;
END_TYPE;
 

TYPE Millimeter = Groesse;
END_TYPE;
 

TYPE Mikrometer = Groesse;
END_TYPE;
 

TYPE Kilometer = REAL;
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;
 

TYPE Euro = Groesse;
END_TYPE;
 

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

TYPE Kubikzentimeter = Groesse;
END_TYPE;
 

TYPE Promille = Groesse;
END_TYPE;
 

TYPE Betrag = Groesse;
END_TYPE;
 

TYPE dpi = INTEGER;
END_TYPE;
 

TYPE Farbtiefe = INTEGER;
END_TYPE;
 

TYPE Zustaendigkeit = STRING();
END_TYPE;
 

TYPE Erfassungsqualitaet = STRING();
END_TYPE;
 

END_SCHEMA; -- Allgemeine_Objekte