SCHEMA Bauliche_Strasseneigenschaften;

REFERENCE FROM Strassennetz (Bereichsobjekt_hist, Streckenobjekt_hist, Streckenobjekt_stat, Punktobjekt_hist);

REFERENCE FROM Bauwerke (Teilbauwerk);

REFERENCE FROM Strassenzustandsdaten (ZEB_Objekt);

REFERENCE FROM Strassenausstattungen (Leitung);

REFERENCE FROM Verkehr (Fahrstreifen_Nummer);

REFERENCE FROM Historisierung (historisches_Objekt);

REFERENCE FROM Allgemeine_Objekte (Prozent, Datum, Tonnen, Millimeter, Zentimeter, Meter);

REFERENCE FROM Geometrieschema (Volumenobjekt_Modell, Flaechenobjekt_Modell, Linienobjekt_Modell);

ENTITY Schicht
SUBTYPE OF (Streckenobjekt_hist, Volumenobjekt_Modell);
--- Attribute :
    maximale_Korngroesse: OPTIONAL Millimeter;
    Einbaudatum: OPTIONAL Datum;
--- Relationen :
    beginnt_bei_Schichtbegrenzung: SET [1: ?] OF Schichtbegrenzung;
    endet_bei_Schichtbegrenzung: SET [1: ?] OF Schichtbegrenzung;
    hat_Schichtart: OPTIONAL SET [1: ?] OF Schichtart;
    hat_Schichtmaterial: OPTIONAL SET [1: ?] OF Schichtmaterial;
    unter_Schicht: OPTIONAL SET [1: ?] OF Schicht;
INVERSE
    ueber_Schicht: SET [0: ?] OF Schicht FOR unter_Schicht;
END_ENTITY;

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

ENTITY Schichtbegrenzung
SUBTYPE OF (Punktobjekt_hist);
--- Attribute :
    Breite: OPTIONAL Meter;
    Achsabstand_Anfang: OPTIONAL Meter;
    Dicke: OPTIONAL Zentimeter;
    Abstand_Planum: OPTIONAL Millimeter;
--- Relationen :
INVERSE
    Beginn_von_Schicht: SET [0: ?] OF Schicht FOR beginnt_bei_Schichtbegrenzung;
    Ende_von_Schicht: SET [0: ?] OF Schicht FOR endet_bei_Schichtbegrenzung;
END_ENTITY;

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

ENTITY Schichtart
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Kennung_Schichtart: OPTIONAL INTEGER;
    Kurztext: OPTIONAL STRING(18);
    Schichtbeschreibung: OPTIONAL STRING(29);
--- Relationen :
INVERSE
    von_Schicht: SET [0: ?] OF Schicht FOR hat_Schichtart;
END_ENTITY;

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

ENTITY Schichtmaterial
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Schichtmaterial_Kennung: OPTIONAL INTEGER;
    Schichtmaterial_Kurzbezeichng: OPTIONAL STRING(18);
    Schichtmaterial_Beschreibung: OPTIONAL STRING(29);
--- Relationen :
INVERSE
    von_Schicht: SET [0: ?] OF Schicht FOR hat_Schichtmaterial;
END_ENTITY;

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

ENTITY Querschnittstreifen
SUBTYPE OF (Streckenobjekt_hist, Flaechenobjekt_Modell);
--- Attribute :
--- Relationen :
    beginnt_bei_Streifenbegrenzung: SET [1: ?] OF Streifenbegrenzung;
    endet_bei_Streifenbegrenzung: SET [1: ?] OF Streifenbegrenzung;
    hat_Streifenart: OPTIONAL SET [1: ?] OF Streifenart;
INVERSE
    in_ZEB_Objekt: SET [0: ?] OF ZEB_Objekt FOR gilt_fuer_Querschnittstreifen;
    hat_Fahrstreifen: SET [0: ?] OF Fahrstreifen_Nummer FOR auf_Querschnittstreifen;
END_ENTITY;

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

ENTITY Streifenart
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Kennung: OPTIONAL INTEGER;
    Streifenart: OPTIONAL STRING(250);
--- Relationen :
INVERSE
    von_Querschnittstreifen: SET [0: ?] OF Querschnittstreifen FOR hat_Streifenart;
END_ENTITY;

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

ENTITY Streifenbegrenzung
SUBTYPE OF (Punktobjekt_hist, Linienobjekt_Modell);
--- Attribute :
    Streifenbreite: OPTIONAL Meter;
--- Relationen :
INVERSE
    Beginn_von_Querschnittstreifen: SET [0: ?] OF Querschnittstreifen FOR beginnt_bei_Streifenbegrenzung;
    Ende_von_Querschnittstreifen: SET [0: ?] OF Querschnittstreifen FOR endet_bei_Streifenbegrenzung;
END_ENTITY;

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

ENTITY Bauklasse_Oberbau
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
    Strassenoberbau: OPTIONAL STRING(29);
--- Relationen :
END_ENTITY;

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

ENTITY Bauweise_Oberbau
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
    Oberbauweise: OPTIONAL STRING(29);
--- Relationen :
END_ENTITY;

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

ENTITY Regelquerschnitt
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
    Kennzeichen_Regelquerschnitt: OPTIONAL STRING(10);
--- Relationen :
END_ENTITY;

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

ENTITY Bahnigkeit
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
    Kennzeichen_Bahnigkeit: OPTIONAL Kennzeichen_Bahnigkeit;
--- Relationen :
END_ENTITY;

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

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


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

   (1,'einbahnig, Straße mit/ohne ' ||
    'Gegenverkehr, ohne Trennstreifen')
   (2,'zweibahnig, Straße mit ' ||
    'konstruktiv getrennten Richtungsfahrbahnen')

*)

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

ENTITY Fahrbahnlaengsneigung
SUBTYPE OF (Streckenobjekt_hist, Flaechenobjekt_Modell);
--- Attribute :
    Steigung_Gefaelle: OPTIONAL Prozent;
--- Relationen :
END_ENTITY;

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

ENTITY Fahrbahnquerneigung
SUBTYPE OF (Streckenobjekt_hist, Flaechenobjekt_Modell);
--- Attribute :
    Querneigung: OPTIONAL Prozent;
--- Relationen :
END_ENTITY;

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

ENTITY Fahrbahntrennung
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
    Art_der_Trennung: OPTIONAL STRING(1);
--- Relationen :
END_ENTITY;

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

ENTITY Trassenbreite
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
    Trassenbreite: OPTIONAL Meter;
--- Relationen :
END_ENTITY;

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

ENTITY Fahrbahnbreite
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
    Fahrbahnbreite: OPTIONAL Meter;
--- Relationen :
END_ENTITY;

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

ENTITY Fussweg
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
--- Relationen :
END_ENTITY;

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

ENTITY Radweg
SUBTYPE OF (Streckenobjekt_stat);
--- Attribute :
--- Relationen :
END_ENTITY;

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

ENTITY Schutzzone
SUBTYPE OF (Bereichsobjekt_hist);
--- Attribute :
    Kennung_Schutzzone: OPTIONAL STRING(1);
    Text_Schutzzone: OPTIONAL STRING(29);
--- Relationen :
END_ENTITY;

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

ENTITY Hindernis
SUBTYPE OF (Streckenobjekt_hist);
--- Attribute :
    passierbare_Hoehe: OPTIONAL Millimeter;
    passierbare_Breite: OPTIONAL Millimeter;
    Belastungsgrenzwert_Hindernis: OPTIONAL Tonnen;
    Laenge_des_Hindernisses: OPTIONAL Meter;
    Hindernisart: OPTIONAL Hindernis_Art;
--- Relationen :
    ist_Bauwerk: OPTIONAL SET [1: ?] OF Teilbauwerk;
END_ENTITY;

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

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


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

   (1,'Tunnel')
   (2,'Brücken oder ähnliche Konstruktionen ' ||
    '(z.B. Stadttor)')
   (3,'größere Konstruktionen neben der ' ||
    'Fahrbahn (z.B. Häuser) sowie Masten und Mastenreihen')
   (4,'Fels, Steilböschung')
   (5,'Mauern, Zäune, Geländer')
   (6,'Bäume, Alleen')
   (7,'(kreuzende) Überspannungen (bei ' ||
    'Elektrizitätsleitungen Achtung Lebensgefahr! Nicht messen!)')
   (8,'Rückbau wegen ' ||
    'Geschwindigkeitsreduzierung')
   (9,'sonstige Hindernisse (z.B. ' ||
    'Verkehrszeichen auf 2 Pfosten, Hydranten, Laderampen)')

*)

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

ENTITY Kreuzung
ABSTRACT SUPERTYPE OF (ONEOF(Gewaesserkreuzung , Bahnkreuzung , Kreuzung_Strasse_Weg , Fussgaengerueberweg ))
SUBTYPE OF (Punktobjekt_hist);
--- Attribute :
--- Relationen :
END_ENTITY;

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

ENTITY Gewaesserkreuzung
SUBTYPE OF (Kreuzung);
--- Attribute :
    Art: OPTIONAL STRING(1);
    Bezeichnung: OPTIONAL STRING(29);
    Gewaessername: OPTIONAL STRING(29);
    Gewaesserkilometrierung: OPTIONAL REAL(7);
--- Relationen :
END_ENTITY;

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

ENTITY Bahnkreuzung
SUBTYPE OF (Kreuzung);
--- Attribute :
    Bahnkoerperlage: OPTIONAL Bahnkoerperlage;
    Bahnkoerper: OPTIONAL Bahnkoerper;
    Bahnkilometer: OPTIONAL REAL(7);
    Streckenbezeichnung: OPTIONAL STRING(11);
    Gleisanzahl: OPTIONAL INTEGER;
--- Relationen :
END_ENTITY;

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

ENTITY Bahnkoerperlage;
--- Attribute :
    Kennung: STRING(1);
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


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

   ('B','kreuzt gesamte Fahrbahn')
   ('L','kreuzt linke Fahrbahn')
   ('R','kreuzt rechte Fahrbahn')

*)

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

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


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

   (0,'ohne eigenen Bahnkörper')
   (1,'mit eigenem Bahnkörper auf einer Seite')
   (2,'mit eigenem Bahnkörper auf beiden ' ||
    'Seiten der Straße')

*)

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

ENTITY Kreuzung_Strasse_Weg
SUBTYPE OF (Kreuzung);
--- Attribute :
    Kreuzungsart: OPTIONAL Kreuzungsart;
    klassifiziertes_Netz: OPTIONAL BOOLEAN;
    Bezeichnung_Strasse_Weg: OPTIONAL STRING(29);
    Lage_plangleicher_Kreuzungen: OPTIONAL Kreuzungslage;
    Vorrangregelung: OPTIONAL Vorrangregelung;
--- Relationen :
    ist_Bauwerk: OPTIONAL SET [1: ?] OF Teilbauwerk;
END_ENTITY;

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

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


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

   (1,'Gemeindestraße')
   (2,'sonstige nicht klassifizierte Straße ' ||
    '(z.B. Privatstraße)')
   (3,'Feldweg bzw. Forstweg')
   (4,'Radweg, Radwegseitenwechsel')
   (5,'Zufahrt zu bzw. Abfahrt von Rast-, ' ||
    'Park- oder Tankanlagen')
   (6,'Grundstückszufahrt')

*)

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

ENTITY Kreuzungslage;
--- Attribute :
    Kennung: STRING(1);
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


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

   ('L','linke Straßenseite')
   ('R','rechte Straßenseite')
   ('B','beide Straßenseiten')

*)

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

ENTITY Vorrangregelung;
--- Attribute :
    Langtext: STRING(29);
--- Relationen :
END_ENTITY;


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

   (1,'Signal')
   (2,'Beschilderung')
   (3,'keine Einrichtung')

*)

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

ENTITY Fussgaengerueberweg
SUBTYPE OF (Kreuzung);
--- Attribute :
    Lage_Fussgaengerueberweg: OPTIONAL Lage_Ueberweg;
    Regelung_Fussgaengerueberweg: OPTIONAL Vorrangregelung;
--- Relationen :
END_ENTITY;

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

ENTITY Lage_Ueberweg;
--- Attribute :
    Kennung: STRING(1);
    Langtext: STRING;
--- Relationen :
UNIQUE
    Kennung_eindeutig: Kennung;
END_ENTITY;


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

   ('L','linke Fahrbahnhälfte')
   ('B','beide Fahrbahnhälften')
   ('R','rechte Fahrbahnhälfte')

*)

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

ENTITY Durchlass
SUBTYPE OF (Punktobjekt_hist);
--- Attribute :
    Ueberdeckung: OPTIONAL Meter;
    Durchlasslaenge: OPTIONAL Meter;
    Durchlassart: OPTIONAL STRING(30);
--- Relationen :
    hat_Baustoff: SET [1: ?] OF Baustoff;
    hat_Profil: SET [1: ?] OF Profil;
    hat_Leitung: OPTIONAL SET [1: ?] OF Leitung;
END_ENTITY;

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

ENTITY Baustoff
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Material: OPTIONAL STRING(30);
--- Relationen :
INVERSE
    von_Durchlass: SET [0: ?] OF Durchlass FOR hat_Baustoff;
    von_Leitung: SET [0: ?] OF Leitung FOR hat_Baustoff;
END_ENTITY;

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

ENTITY Profil
SUBTYPE OF (historisches_Objekt);
--- Attribute :
    Profilform: OPTIONAL Profilform;
    Profilhoehe: OPTIONAL Zentimeter;
    Profilbreite: OPTIONAL Zentimeter;
--- Relationen :
INVERSE
    von_Durchlass: SET [0: ?] OF Durchlass FOR hat_Profil;
    von_Leitung: SET [0: ?] OF Leitung FOR hat_Profil;
END_ENTITY;

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

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


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

   (1,'Kreisprofil')
   (2,'Eiprofil')
   (3,'Kastenprofil')
   (4,'Maulprofil')
   (5,'Haubenprofil')

*)

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

END_SCHEMA; -- Bauliche_Strasseneigenschaften