SCHEMA Statische_Beschilderung;

REFERENCE FROM Strassennetz (TK25_Blattnummer, Streckenobjekt_hist, Punktobjekt_stat);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (Meter);

ENTITY stat_wegweisende_Beschilderung
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
    Fahrtrichtung_WB: STRING(30);
--- Relationen :
    hat_Standort_Wegweiser: Standort_Wegweiser;
    hat_Wegweiserbild: OPTIONAL SET [1: ?] OF Wegweiserbild;
    hat_Einzugsbereich: Einzugsbereich;
    hat_Wegweisertafel_m_Epunkten: SET [1: ?] OF Wegweisertafel_mit_Epunkten;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Wegweiserbild
SUBTYPE OF (historisches_Objekt);
--- Attribute :
--- Relationen :
INVERSE
    von_stat_wegweis_Beschilderung: SET [0: ?] OF stat_wegweisende_Beschilderung FOR hat_Wegweiserbild;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Einzugsbereich;
--- Attribute :
    Typ: Typ_des_Einzugsbereiches;
    Art: Art_des_Einzugsbereiches;
    Laenge: Meter;
--- Relationen :
INVERSE
    von_stat_wegweis_Beschilderung: SET [0: ?] OF stat_wegweisende_Beschilderung FOR hat_Einzugsbereich;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Typ_des_Einzugsbereiches;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'BAB')
   (2,'Bundesstraße')
   (3,'sonst. Straße')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Art_des_Einzugsbereiches;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'freie Strecke')
   (2,'Rampe')
   (3,'Knotenpunkt')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Standort_Wegweiser;
--- Attribute :
    technische_Ausfuehrung: OPTIONAL SET [1: ?] OF STRING(99);
    Aufstellung: Aufstellung;
    richtungsbezogene_Ausfuehrung: richtungsbezogene_Ausfuehrung;
    Funktion: Funktion_wegweisend;
    StVO_Nummer: INTEGER;
    Wegweiserfarbe: Wegweiserfarbe;
--- Relationen :
    hat_Numerierung: Numerierung;
    hat_Position: OPTIONAL Position;
    hat_Netzzuordnung: Netzzuordnung;
INVERSE
    von_stat_wegweis_Beschilderung: SET [0: ?] OF stat_wegweisende_Beschilderung FOR hat_Standort_Wegweiser;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Numerierung;
--- Attribute :
    Plannummer: TK25_Blattnummer;
    Standort_Nummer: OPTIONAL INTEGER;
--- Relationen :
INVERSE
    von_Standort_Wegweiser: SET [0: ?] OF Standort_Wegweiser FOR hat_Numerierung;
    von_Standort_Beschilderung: SET [0: ?] OF Standort_Beschilderung FOR hat_Numerierung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Position
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
--- Relationen :
INVERSE
    von_Standort_Wegweiser: SET [0: ?] OF Standort_Wegweiser FOR hat_Position;
    von_Standort_Beschilderung: SET [0: ?] OF Standort_Beschilderung FOR hat_Position;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Netzzuordnung;
--- Attribute :
    erster_Entscheidungspunkt: INTEGER;
    Von_Knoten: INTEGER;
--- Relationen :
INVERSE
    von_Standort_Wegweiser: SET [0: ?] OF Standort_Wegweiser FOR hat_Netzzuordnung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Aufstellung;
--- Attribute :
    Langtext: STRING(30);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'Schilderbrücke')
   (2,'Ausleger rechts')
   (3,'Ausleger links')
   (4,'Ausleger seitlich rechts')
   (5,'Ausleger seitlich links')
   (6,'Ausleger seitlich hoch')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY richtungsbezogene_Ausfuehrung;
--- Attribute :
    Kennung: INTEGER;
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'richtungsbezogen')
   (2,'spur- bzw. ' ||
    'fahrstreifenbezogen')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Funktion_wegweisend;
--- Attribute :
    Langtext: STRING(30);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'Vorwegweiser')
   (2,'Ankündigung')
   (3,'Wegweiser')
   (4,'Entfernungstafel')
   (5,'Hinweisschild')
   (6,'Planskizze')
   (7,'sonst. Funktion')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Wegweiserfarbe;
--- Attribute :
    Langtext: STRING(5);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'blau')
   (2,'gelb')
   (3,'weiß')
   (4,'braun')
   (5,'grün')
   (6,'sonst')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Wegweisertafel_mit_Epunkten;
--- Attribute :
    Richtung: Richtung;
    hat_NK_von: INTEGER;
    hat_NK_nach: INTEGER;
--- Relationen :
    hat_Beschriftungselem_Symbole: SET [1: ?] OF Beschriftungselemente_Symbole;
INVERSE
    von_stat_wegweis_Beschilderung: SET [0: ?] OF stat_wegweisende_Beschilderung FOR hat_Wegweisertafel_m_Epunkten;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Richtung;
--- Attribute :
    Langtext: STRING(12);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'gerade')
   (2,'rechts')
   (3,'links')
   (4,'halb rechts')
   (5,'halb links')
   (6,'U-Turn')
   (7,'sonst.')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Beschriftungselemente_Symbole
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Elementtyp: Elementtyp;
    Text: STRING(20);
    Farbe: Farbe_Beschriftungselem_Symb;
    Anordnung: Anordnung;
    Angaben_zum_Zielgebiet: STRING(20);
    Symbolik: OPTIONAL STRING(30);
--- Relationen :
INVERSE
    von_Wegweisertafel_m_Epunkten: SET [0: ?] OF Wegweisertafel_mit_Epunkten FOR hat_Beschriftungselem_Symbole;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Elementtyp;
--- Attribute :
    Langtext: STRING(30);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'Text')
   (2,'Piktogramm')
   (3,'Entfernungsangabe')
   (4,'Anschlußstellennummer')
   (5,'StVO-Zeichen')
   (6,'Straßennummer')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Farbe_Beschriftungselem_Symb;
--- Attribute :
    Langtext: STRING(10);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'blau')
   (2,'gelb')
   (3,'weiß')
   (4,'grün')
   (5,'sonst')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Anordnung;
--- Attribute :
    Langtext: STRING(40);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'einzeilig')
   (2,'mehrzeilig (zusammengehörig)')
   (3,'mehrzeilig (nicht zusammengehörig)')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY stat_verkehrsreg_Beschilderung
SUBTYPE OF (Punktobjekt_stat);
--- Attribute :
    Fahrtrichtung_WB: OPTIONAL STRING(30);
--- Relationen :
    hat_Standort_Beschilderung: Standort_Beschilderung;
    hat_Gueltigkeitsbereich_VRB: SET [1: ?] OF Gueltigkeitsbereich_VRB;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Standort_Beschilderung;
--- Attribute :
    Aufstellart: Aufstellart;
    richtungsbezogene_Ausfuehrung: richtungsbezogene_Ausfuehrung;
    technische_Ausfuehrung: OPTIONAL SET [1: ?] OF STRING(99);
--- Relationen :
    hat_Numerierung: SET [1: ?] OF Numerierung;
    hat_Position: OPTIONAL Position;
    hat_verkehrsregelnde_Funktion: SET [1: ?] OF verkehrsregelnde_Funktion;
    hat_StVO_Zuordnung: StVO_Zuordnung;
INVERSE
    von_stat_verkehsreg_Beschilder: SET [0: ?] OF stat_verkehrsreg_Beschilderung FOR hat_Standort_Beschilderung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Aufstellart;
--- Attribute :
    Langtext: STRING(30);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'Gabelständer')
   (2,'Ausleger rechts')
   (3,'Ausleger links')
   (4,'Ausleger seitlich rechts')
   (5,'Ausleger seitlich links')
   (6,'Ausleger seitlich hoch')
   (7,'Schilderbrücke')
   (8,'Klappschild')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY verkehrsregelnde_Funktion;
--- Attribute :
    Funktion: Funktion_verkehrsregelnd;
    Paragraph: OPTIONAL INTEGER;
--- Relationen :
INVERSE
    von_Standort_Beschilderung: SET [0: ?] OF Standort_Beschilderung FOR hat_verkehrsregelnde_Funktion;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Funktion_verkehrsregelnd;
--- Attribute :
    Langtext: STRING(40);
--- Relationen :
END_ENTITY;


(* zulaessige Werte, in der Form (Kennung,Langtext):

   (1,'Gefahrzeichen')
   (2,'Vorschriftszeichen')
   (3,'Richtzeichen')
   (4,'Zusatzzeichen')
   (5,'Kombinationen aus mehreren ' ||
    'Zeichen')

*)

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY StVO_Zuordnung;
--- Attribute :
    StVO_Zeichen: INTEGER;
    Zusatzzeichen_1: OPTIONAL INTEGER;
    Zusatzzeichen_2: OPTIONAL INTEGER;
--- Relationen :
INVERSE
    von_Standort_Beschilderung: SET [0: ?] OF Standort_Beschilderung FOR hat_StVO_Zuordnung;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY Gueltigkeitsbereich_VRB;
--- Attribute :
    verkehrsartabhaengiger_GB: OPTIONAL SET [1: ?] OF STRING(50);
    verkehrssituationsabh_GB: OPTIONAL STRING(50);
--- Relationen :
    ist_raeumlicher_GB: OPTIONAL SET [1: ?] OF raeumlicher_Gueltigkeitsber;
    ist_zeitlicher_GB: OPTIONAL SET [1: ?] OF zeitlicher_Gueltigkeitsber;
INVERSE
    von_stat_verkehrsreg_Beschildg: SET [0: ?] OF stat_verkehrsreg_Beschilderung FOR hat_Gueltigkeitsbereich_VRB;
WHERE
    mindestens_eine_Auspraegung: EXISTS(verkehrsartabhaengiger_GB)OR EXISTS(verkehrssituationsabh_GB)OR EXISTS(ist_raeumlicher_GB)OR EXISTS(ist_zeitlicher_GB);
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY raeumlicher_Gueltigkeitsber
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
--- Relationen :
INVERSE
    von_Gueltigkeitsbereich_VRB: SET [0: ?] OF Gueltigkeitsbereich_VRB FOR ist_raeumlicher_GB;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

ENTITY zeitlicher_Gueltigkeitsber
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    zeitlicher_Bereich: STRING(30);
--- Relationen :
INVERSE
    von_Gueltigkeitsbereich_VRB: SET [0: ?] OF Gueltigkeitsbereich_VRB FOR ist_zeitlicher_GB;
END_ENTITY;

-- SCHEMA - OKSTRA - INDEX - VERSION << - VERSION >>

END_SCHEMA; -- Statische_Beschilderung