INTERLIS 2.4; /* ######################################################################## CHBASE - BASE MODULES OF THE SWISS FEDERATION FOR MINIMAL GEODATA MODELS ====== BASISMODULE DES BUNDES MODULES DE BASE DE LA CONFEDERATION FÜR MINIMALE GEODATENMODELLE POUR LES MODELES DE GEODONNEES MINIMAUX PROVIDER: GKG/KOGIS - GCS/COSIG CONTACT: models@geo.admin.ch PUBLISHED: 2021-01-06 ######################################################################## */ /* ######################################################################## ######################################################################## PART IV -- ADMINISTRATIVE UNITS - Package CHAdminCodes - Package AdministrativeUnits - Package AdministrativeUnitsCH */ !! Version | Who | Modification !!------------------------------------------------------------------------------ !! 2022-10-06 | KOGIS | UNIQUE constraint in class AdministrativeUnits_V2.CountryNamesTranslation corrected !! ######################################################################## !!@technicalContact=mailto:models@geo.admin.ch !!@furtherInformation=https://www.geo.admin.ch/de/geoinformation-schweiz/geobasisdaten/geodata-models.html TYPE MODEL CHAdminCodes_V2 (en) AT "https://models.geo.admin.ch/CH/" VERSION "2021-01-06" = DOMAIN CHCantonCode = (ZH,BE,LU,UR,SZ,OW,NW,GL,ZG,FR,SO,BS,BL,SH,AR,AI,SG, GR,AG,TG,TI,VD,VS,NE,GE,JU,FL,CH); CHMunicipalityCode = 1..9999; !! BFS-Nr END CHAdminCodes_V2. !! ######################################################################## !!@technicalContact=mailto:models@geo.admin.ch !!@furtherInformation=https://www.geo.admin.ch/de/geoinformation-schweiz/geobasisdaten/geodata-models.html MODEL AdministrativeUnits_V2 (en) AT "https://models.geo.admin.ch/CH/" VERSION "2022-10-06" = IMPORTS InternationalCodes_V2; IMPORTS Dictionaries_V2; TOPIC AdministrativeUnits (ABSTRACT) = CLASS AdministrativeElement (ABSTRACT) = END AdministrativeElement; CLASS AdministrativeUnit EXTENDS AdministrativeElement = END AdministrativeUnit; ASSOCIATION Hierarchy = UpperLevelUnit (EXTERNAL) -<> {0..1} AdministrativeUnit; LowerLevelUnit -- AdministrativeUnit; END Hierarchy; CLASS AdministrativeUnion EXTENDS AdministrativeElement = END AdministrativeUnion; ASSOCIATION UnionMembers = Union -<> AdministrativeUnion; Member -- AdministrativeElement; END UnionMembers; END AdministrativeUnits; TOPIC Countries EXTENDS AdministrativeUnits = CLASS Country EXTENDS AdministrativeUnit = Code: MANDATORY InternationalCodes_V2.CountryCode_ISO3166_1; UNIQUE Code; END Country; END Countries; TOPIC CountryNames EXTENDS Dictionaries_V2.Dictionaries = DEPENDS ON AdministrativeUnits_V2.Countries; STRUCTURE CountryName EXTENDS Entry = Code: MANDATORY InternationalCodes_V2.CountryCode_ISO3166_1; END CountryName; CLASS CountryNamesTranslation EXTENDS Dictionary = Entries(EXTENDED): LIST OF CountryName; UNIQUE (LOCAL) Entries: Code; EXISTENCE CONSTRAINT Entries->Code REQUIRED IN AdministrativeUnits_V2.Countries.Country: Code; END CountryNamesTranslation; END CountryNames; TOPIC Agencies (ABSTRACT) = DEPENDS ON AdministrativeUnits_V2.AdministrativeUnits; CLASS Agency (ABSTRACT) = END Agency; ASSOCIATION Authority = Supervisor (EXTERNAL) -<> {1..1} Agency OR AdministrativeUnits_V2.AdministrativeUnits.AdministrativeElement; Agency -- Agency; END Authority; ASSOCIATION Organisation = Orderer (EXTERNAL) -- Agency OR AdministrativeUnits_V2.AdministrativeUnits.AdministrativeElement; Executor -- Agency; END Organisation; END Agencies; END AdministrativeUnits_V2. !! ######################################################################## !!@technicalContact=mailto:models@geo.admin.ch !!@furtherInformation=https://www.geo.admin.ch/de/geoinformation-schweiz/geobasisdaten/geodata-models.html MODEL AdministrativeUnitsCH_V2 (en) AT "https://models.geo.admin.ch/CH/" VERSION "2021-01-06" = IMPORTS CHAdminCodes_V2; IMPORTS LocalisationCH_V2; IMPORTS AdministrativeUnits_V2; TOPIC CHCantons EXTENDS AdministrativeUnits_V2.AdministrativeUnits = DEPENDS ON AdministrativeUnits_V2.Countries; CLASS CHCanton EXTENDS AdministrativeUnit = Code: MANDATORY CHAdminCodes_V2.CHCantonCode; Name: LocalisationCH_V2.MultilingualText; Web: URI; UNIQUE Code; END CHCanton; ASSOCIATION Hierarchy (EXTENDED) = UpperLevelUnit (EXTENDED, EXTERNAL) -<> {1..1} AdministrativeUnits_V2.Countries.Country; LowerLevelUnit (EXTENDED) -- CHCanton; MANDATORY CONSTRAINT UpperLevelUnit->Code == #CHE; END Hierarchy; END CHCantons; TOPIC CHDistricts EXTENDS AdministrativeUnits_V2.AdministrativeUnits = DEPENDS ON AdministrativeUnitsCH_V2.CHCantons; CLASS CHDistrict EXTENDS AdministrativeUnit = ShortName: MANDATORY TEXT*20; Name: LocalisationCH_V2.MultilingualText; Web: MANDATORY URI; END CHDistrict; ASSOCIATION Hierarchy (EXTENDED) = UpperLevelUnit (EXTENDED, EXTERNAL) -<> {1..1} AdministrativeUnitsCH_V2.CHCantons.CHCanton; LowerLevelUnit (EXTENDED) -- CHDistrict; UNIQUE UpperLevelUnit->Code, LowerLevelUnit->ShortName; END Hierarchy; END CHDistricts; TOPIC CHMunicipalities EXTENDS AdministrativeUnits_V2.AdministrativeUnits = DEPENDS ON AdministrativeUnitsCH_V2.CHCantons; DEPENDS ON AdministrativeUnitsCH_V2.CHDistricts; CLASS CHMunicipality EXTENDS AdministrativeUnit = Code: MANDATORY CHAdminCodes_V2.CHMunicipalityCode; Name: LocalisationCH_V2.MultilingualText; Web: URI; UNIQUE Code; END CHMunicipality; ASSOCIATION Hierarchy (EXTENDED) = UpperLevelUnit (EXTENDED, EXTERNAL) -<> {1..1} AdministrativeUnitsCH_V2.CHCantons.CHCanton OR AdministrativeUnitsCH_V2.CHDistricts.CHDistrict; LowerLevelUnit (EXTENDED) -- CHMunicipality; END Hierarchy; END CHMunicipalities; TOPIC CHAdministrativeUnions EXTENDS AdministrativeUnits_V2.AdministrativeUnits = DEPENDS ON AdministrativeUnits_V2.Countries; DEPENDS ON AdministrativeUnitsCH_V2.CHCantons; DEPENDS ON AdministrativeUnitsCH_V2.CHDistricts; DEPENDS ON AdministrativeUnitsCH_V2.CHMunicipalities; CLASS AdministrativeUnion (EXTENDED) = OID AS INTERLIS.UUIDOID; Name: LocalisationCH_V2.MultilingualText; Web: URI; Description: LocalisationCH_V2.MultilingualMText; END AdministrativeUnion; END CHAdministrativeUnions; TOPIC CHAgencies EXTENDS AdministrativeUnits_V2.Agencies = DEPENDS ON AdministrativeUnits_V2.Countries; DEPENDS ON AdministrativeUnitsCH_V2.CHCantons; DEPENDS ON AdministrativeUnitsCH_V2.CHDistricts; DEPENDS ON AdministrativeUnitsCH_V2.CHMunicipalities; CLASS Agency (EXTENDED) = OID AS INTERLIS.UUIDOID; Name: LocalisationCH_V2.MultilingualText; Web: URI; Description: LocalisationCH_V2.MultilingualMText; END Agency; END CHAgencies; END AdministrativeUnitsCH_V2. !! ########################################################################