INTERLIS 2.3; !! Version | Who | Modification !!---------------------------------------------------------------------------------------- !! 2019-10-30 | BAFU | Neue Version 2.0: Ergänzung optionales Attribut «RefKanton» (Klasse Wildruhezone_Teilobjekt) für einen Link zu weiteren kantonalen Informationen !! Übernommene Anpassungen aus Anhörung (FIG, Kantone) !! 2020-01-23 | BAFU | Multipolygone eingeführt und Datentyp Wildruhezone_Teilobjekt.Geo_Obj als MultiPolygon definiert !! 2020-04-21 | BAFU | Second Constraint in CLASS Wildruhezone_Teilobjekt adapted !!@ furtherInformation=https://www.bafu.admin.ch/geodatenmodelle !!@ technicalContact=mailto:gis@bafu.admin.ch !!@ IDGeoIV="195.1, 195.2" MODEL Wildruhezonen_Codelisten_V2_1 (de) AT "https://models.geo.admin.ch/BAFU/" VERSION "2020-01-23" = IMPORTS LocalisationCH_V1,CatalogueObjects_V1; DOMAIN TypID = OID TEXT*80; /* Modell für externe Codelisten, die anschliessend importiert werden in die Modelle *_LV03* und *_LV95" */ TOPIC Codelisten = BASKET OID AS TypID; OID AS TypID; CLASS Bestimmungen_Catalogue EXTENDS CatalogueObjects_V1.Catalogues.Item = Code : MANDATORY TEXT*5; Description : MANDATORY LocalisationCH_V1.MultilingualText; END Bestimmungen_Catalogue; CLASS Schutzstatus_Catalogue EXTENDS CatalogueObjects_V1.Catalogues.Item = Code : MANDATORY TEXT*3; Description : MANDATORY LocalisationCH_V1.MultilingualText; END Schutzstatus_Catalogue; CLASS Wegtyp_Catalogue EXTENDS CatalogueObjects_V1.Catalogues.Item = Code : MANDATORY TEXT*3; Description : MANDATORY LocalisationCH_V1.MultilingualText; END Wegtyp_Catalogue; STRUCTURE Bestimmungen_CatRef EXTENDS CatalogueObjects_V1.Catalogues.MandatoryCatalogueReference = Reference (EXTENDED) : MANDATORY REFERENCE TO (EXTERNAL) Bestimmungen_Catalogue; END Bestimmungen_CatRef; STRUCTURE Schutzstatus_CatRef EXTENDS CatalogueObjects_V1.Catalogues.MandatoryCatalogueReference = Reference (EXTENDED) : MANDATORY REFERENCE TO (EXTERNAL) Schutzstatus_Catalogue; END Schutzstatus_CatRef; STRUCTURE Wegtyp_CatRef EXTENDS CatalogueObjects_V1.Catalogues.MandatoryCatalogueReference = Reference (EXTENDED) : MANDATORY REFERENCE TO (EXTERNAL) Wegtyp_Catalogue; END Wegtyp_CatRef; END Codelisten; END Wildruhezonen_Codelisten_V2_1. !!@ furtherInformation=https://www.bafu.admin.ch/geodatenmodelle !!@ technicalContact=mailto:gis@bafu.admin.ch !!@ IDGeoIV="195.1, 195.2" MODEL Wildruhezonen_LV03_V2_1 (de) AT "https://models.geo.admin.ch/BAFU/" VERSION "2020-04-21" = IMPORTS GeometryCHLV03_V1,LocalisationCH_V1,CHAdminCodes_V1,Wildruhezonen_Codelisten_V2_1; TOPIC Wildruhezonen = DEPENDS ON Wildruhezonen_Codelisten_V2_1.Codelisten; DOMAIN /* Linien/Flächen ohne Kreisbogen */ Linie = POLYLINE WITH (STRAIGHTS) VERTEX GeometryCHLV03_V1.Coord2; Polygon = SURFACE WITH (STRAIGHTS) VERTEX GeometryCHLV03_V1.Coord2 WITHOUT OVERLAPS > 0.001; /* Definition von Multipolygonen, analog CHBase Geometry */ STRUCTURE PolygonStructure = Polygon: Polygon; END PolygonStructure; STRUCTURE MultiPolygon = Polygons: BAG {1..*} OF PolygonStructure; END MultiPolygon; /* Klasse für die gesamten Wildruhezonen */ CLASS Wildruhezone = ObjNummer : MANDATORY 0 .. 9999; Kanton : MANDATORY CHAdminCodes_V1.CHCantonCode; Name : MANDATORY TEXT*80; Schutzstatus : MANDATORY Wildruhezonen_Codelisten_V2_1.Codelisten.Schutzstatus_CatRef; Grundlage : MANDATORY TEXT*250; Beschlussjahr : MANDATORY INTERLIS.GregorianYear; Mutationsdatum : INTERLIS.XMLDate; Mutationsgrund : LocalisationCH_V1.MultilingualMText; END Wildruhezone; /* Klasse für die Wildruhezonen-Routen */ CLASS Routennetz = Geo_Obj : MANDATORY Linie; Wegtyp : MANDATORY Wildruhezonen_Codelisten_V2_1.Codelisten.Wegtyp_CatRef; Einschraenkung : TEXT*254; /* Ein Wegtyp mit Einschränkungen (W2) bedingt einen textlichen Eintrag im Attribut Einschraenkung. Für einen Wegtyp ohne Einschränkungen (W1) muss das Feld Einschraenkung leer sein. */ MANDATORY CONSTRAINT NOT (Wegtyp->Reference->Code == "W2") OR DEFINED (Einschraenkung); MANDATORY CONSTRAINT NOT (Wegtyp->Reference->Code == "W1") OR NOT (DEFINED (Einschraenkung)); END Routennetz; /* Klasse für Wildruhezonen-Teilflächen */ CLASS Wildruhezone_Teilobjekt = TeilObjNummer : MANDATORY TEXT*30; Bestimmungen : MANDATORY Wildruhezonen_Codelisten_V2_1.Codelisten.Bestimmungen_CatRef; Bestimmungen_Kt : LocalisationCH_V1.MultilingualMText; Zusatzinformation : TEXT*500; RefKanton : INTERLIS.URI; Schutzzeit : MANDATORY TEXT*250; Geo_Obj : MANDATORY MultiPolygon; /* Wenn Bestimmungen den Status "R900" oder "E900" haben, muss das Feld Bestimmungen_Kt gefüllt sein. Bei anderen Bestimmungen muss das Feld Bestimmungen_Kt leer sein. */ MANDATORY CONSTRAINT NOT (Bestimmungen->Reference->Code == "R900" OR Bestimmungen->Reference->Code == "E900") OR DEFINED (Bestimmungen_Kt); MANDATORY CONSTRAINT (Bestimmungen->Reference->Code == "R900" OR Bestimmungen->Reference->Code == "E900") OR NOT (DEFINED (Bestimmungen_Kt)); END Wildruhezone_Teilobjekt; ASSOCIATION RoutennetzWildruhezone = WRZ_Routennetz -- {0..*} Routennetz; WRZ -<#> {1} Wildruhezone; END RoutennetzWildruhezone; ASSOCIATION Wildruhezone_TeilobjektWildruhezone = WRZ_Teilobjekt -- {1..*} Wildruhezone_Teilobjekt; WRZ -<#> {1} Wildruhezone; UNIQUE WRZ->Kanton, WRZ->ObjNummer, WRZ_Teilobjekt->TeilObjNummer; /* Wenn Schutzstatus = S10 "rechtsverbindlich", dann dürfen nur Bestimmungen für rechtsvebindliche Wildruhezonen erfasst werden, also R*. Wenn Schutzstatus = S20 "empfohlen", dann dürfen nur Bestimmungen für empfohlene Wildruhezonen erfasst werden, also E*. */ MANDATORY CONSTRAINT NOT (WRZ->Schutzstatus->Reference->Code == "S10") OR (WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R10" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R20" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R30" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R40" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R50" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R60" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R70" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R80" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R90" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R100" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R110" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R120" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R130" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R140" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R150" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R160" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R900"); MANDATORY CONSTRAINT NOT (WRZ->Schutzstatus->Reference->Code == "S20") OR (WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E10" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E20" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E30" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E40" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E50" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E900"); END Wildruhezone_TeilobjektWildruhezone; END Wildruhezonen; END Wildruhezonen_LV03_V2_1. !!@ furtherInformation=https://www.bafu.admin.ch/geodatenmodelle !!@ technicalContact=mailto:gis@bafu.admin.ch !!@ IDGeoIV="195.1, 195.2" MODEL Wildruhezonen_LV95_V2_1 (de) AT "https://models.geo.admin.ch/BAFU/" VERSION "2020-04-21" = IMPORTS GeometryCHLV95_V1,LocalisationCH_V1,CHAdminCodes_V1,Wildruhezonen_Codelisten_V2_1; TOPIC Wildruhezonen = DEPENDS ON Wildruhezonen_Codelisten_V2_1.Codelisten; DOMAIN /* Linien/Flächen ohne Kreisbogen */ Linie = POLYLINE WITH (STRAIGHTS) VERTEX GeometryCHLV95_V1.Coord2; Polygon = SURFACE WITH (STRAIGHTS) VERTEX GeometryCHLV95_V1.Coord2 WITHOUT OVERLAPS > 0.001; /* Definition von Multipolygonen, analog CHBase Geometry */ STRUCTURE PolygonStructure = Polygon: Polygon; END PolygonStructure; STRUCTURE MultiPolygon = Polygons: BAG {1..*} OF PolygonStructure; END MultiPolygon; /* Klasse für die gesamten Wildruhezonen */ CLASS Wildruhezone = ObjNummer : MANDATORY 0 .. 9999; Kanton : MANDATORY CHAdminCodes_V1.CHCantonCode; Name : MANDATORY TEXT*80; Schutzstatus : MANDATORY Wildruhezonen_Codelisten_V2_1.Codelisten.Schutzstatus_CatRef; Grundlage : MANDATORY TEXT*250; Beschlussjahr : MANDATORY INTERLIS.GregorianYear; Mutationsdatum : INTERLIS.XMLDate; Mutationsgrund : LocalisationCH_V1.MultilingualMText; END Wildruhezone; /* Klasse für die Wildruhezonen-Routen */ CLASS Routennetz = Geo_Obj : MANDATORY Linie; Wegtyp : MANDATORY Wildruhezonen_Codelisten_V2_1.Codelisten.Wegtyp_CatRef; Einschraenkung : TEXT*254; /* Ein Wegtyp mit Einschränkungen (W2) bedingt einen textlichen Eintrag im Attribut Einschraenkung. Für einen Wegtyp ohne Einschränkungen (W1) muss das Feld Einschraenkung leer sein. */ MANDATORY CONSTRAINT NOT (Wegtyp->Reference->Code == "W2") OR DEFINED (Einschraenkung); MANDATORY CONSTRAINT NOT (Wegtyp->Reference->Code == "W1") OR NOT (DEFINED (Einschraenkung)); END Routennetz; /* Klasse für Wildruhezonen-Teilflächen */ CLASS Wildruhezone_Teilobjekt = TeilObjNummer : MANDATORY TEXT*30; Bestimmungen : MANDATORY Wildruhezonen_Codelisten_V2_1.Codelisten.Bestimmungen_CatRef; Bestimmungen_Kt : LocalisationCH_V1.MultilingualMText; Zusatzinformation : TEXT*500; RefKanton : INTERLIS.URI; Schutzzeit : MANDATORY TEXT*250; Geo_Obj : MANDATORY MultiPolygon; /* Wenn Bestimmungen den Status "R900" oder "E900" haben, muss das Feld Bestimmungen_Kt gefüllt sein. Bei anderen Bestimmungen muss das Feld Bestimmungen_Kt leer sein. */ MANDATORY CONSTRAINT NOT (Bestimmungen->Reference->Code == "R900" OR Bestimmungen->Reference->Code == "E900") OR DEFINED (Bestimmungen_Kt); MANDATORY CONSTRAINT (Bestimmungen->Reference->Code == "R900" OR Bestimmungen->Reference->Code == "E900") OR NOT (DEFINED (Bestimmungen_Kt)); END Wildruhezone_Teilobjekt; ASSOCIATION RoutennetzWildruhezone = WRZ_Routennetz -- {0..*} Routennetz; WRZ -<#> {1} Wildruhezone; END RoutennetzWildruhezone; ASSOCIATION Wildruhezone_TeilobjektWildruhezone = WRZ_Teilobjekt -- {1..*} Wildruhezone_Teilobjekt; WRZ -<#> {1} Wildruhezone; UNIQUE WRZ->Kanton, WRZ->ObjNummer, WRZ_Teilobjekt->TeilObjNummer; /* Wenn Schutzstatus = S10 "rechtsverbindlich", dann dürfen nur Bestimmungen für rechtsvebindliche Wildruhezonen erfasst werden, also R*. Wenn Schutzstatus = S20 "empfohlen", dann dürfen nur Bestimmungen für empfohlene Wildruhezonen erfasst werden, also E*. */ MANDATORY CONSTRAINT NOT (WRZ->Schutzstatus->Reference->Code == "S10") OR (WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R10" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R20" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R30" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R40" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R50" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R60" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R70" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R80" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R90" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R100" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R110" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R120" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R130" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R140" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R150" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R160" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "R900"); MANDATORY CONSTRAINT NOT (WRZ->Schutzstatus->Reference->Code == "S20") OR (WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E10" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E20" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E30" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E40" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E50" OR WRZ_Teilobjekt->Bestimmungen->Reference->Code == "E900"); END Wildruhezone_TeilobjektWildruhezone; END Wildruhezonen; END Wildruhezonen_LV95_V2_1.