Modèle de données interne

Le Modèle de données interne d'INTERLISINTERLIS

Source : INTERLIS 2.3 Manuel de référence, annexe A


INTERLIS 2.3;

CONTRACTED TYPE MODEL INTERLIS (en) AT "http://www.interlis.ch/"
  VERSION "2005-06-16" =

  LINE FORM
    STRAIGHTS;
    ARCS;

  UNIT
    ANYUNIT (ABSTRACT);
    DIMENSIONLESS (ABSTRACT);
    LENGTH (ABSTRACT);
    MASS (ABSTRACT);
    TIME (ABSTRACT);
    ELECTRIC_CURRENT (ABSTRACT);
    TEMPERATURE (ABSTRACT);
    AMOUNT_OF_MATTER (ABSTRACT);
    ANGLE (ABSTRACT);
    SOLID_ANGLE (ABSTRACT);
    LUMINOUS_INTENSITY (ABSTRACT);
    MONEY (ABSTRACT);

    METER [m] EXTENDS LENGTH;
    KILOGRAM [kg] EXTENDS MASS;
    SECOND [s] EXTENDS TIME;
    AMPERE [A] EXTENDS ELECTRIC_CURRENT;
    DEGREE_KELVIN [K] EXTENDS TEMPERATURE;
    MOLE [mol] EXTENDS AMOUNT_OF_MATTER;
    RADIAN [rad] EXTENDS ANGLE;
    STERADIAN [sr] EXTENDS SOLID_ANGLE;
    CANDELA [cd] EXTENDS LUMINOUS_INTENSITY;

  DOMAIN
    URI (FINAL) = TEXT*1023;
    NAME (FINAL) = TEXT*255;
    INTERLIS_1_DATE (FINAL) = TEXT*8;
    BOOLEAN (FINAL) = (
      false,
      true) ORDERED;
    HALIGNMENT (FINAL) = (
      Left,
      Center,
      Right) ORDERED;
    VALIGNMENT (FINAL) = (
      Top,
      Cap,
      Half,
      Base,
      Bottom) ORDERED;
    ANYOID = OID ANY;
    I32OID = OID 0 .. 2147483647;
    STANDARDOID = OID TEXT*16;
    UUIDOID = OID TEXT*36; 
    LineCoord (ABSTRACT) = COORD NUMERIC, NUMERIC;

  FUNCTION myClass (Object: ANYSTRUCTURE): STRUCTURE;
  FUNCTION isSubClass (potSubClass: STRUCTURE; potSuperClass: STRUCTURE):
    BOOLEAN;
  FUNCTION isOfClass (Object: ANYSTRUCTURE; Class: STRUCTURE): BOOLEAN;
  FUNCTION elementCount (bag: BAG OF ANYSTRUCTURE): NUMERIC;
  FUNCTION objectCount (Objects: OBJECTS OF ANYCLASS): NUMERIC;
  FUNCTION len (TextVal: TEXT): NUMERIC;
  FUNCTION lenM (TextVal: MTEXT): NUMERIC;
  FUNCTION trim (TextVal: TEXT): TEXT;
  FUNCTION trimM (TextVal: MTEXT): MTEXT;
  FUNCTION isEnumSubVal (SubVal: ENUMTREEVAL; NodeVal: ENUMTREEVAL): BOOLEAN;
  FUNCTION inEnumRange (Enum: ENUMVAL;
                        MinVal: ENUMTREEVAL;
                        MaxVal: ENUMTREEVAL): BOOLEAN;
  FUNCTION convertUnit (from: NUMERIC): NUMERIC;
  FUNCTION areAreas (Objects: OBJECTS OF ANYCLASS;
                     SurfaceBag: ATTRIBUTE OF @ Objects
                                           RESTRICTION (BAG OF ANYSTRUCTURE);
                     SurfaceAttr: ATTRIBUTE OF @ SurfaceBag
                                            RESTRICTION (SURFACE)): BOOLEAN;

  CLASS METAOBJECT (ABSTRACT) =
    Name: MANDATORY NAME;
  UNIQUE Name;
  END METAOBJECT;

  CLASS METAOBJECT_TRANSLATION =
    Name: MANDATORY NAME;
    NameInBaseLanguage: MANDATORY NAME;
  UNIQUE Name;
  UNIQUE NameInBaseLanguage;
  END METAOBJECT_TRANSLATION;

  STRUCTURE AXIS =
    PARAMETER
      Unit: NUMERIC [ANYUNIT];
  END AXIS;

  CLASS REFSYSTEM (ABSTRACT) EXTENDS METAOBJECT =
  END REFSYSTEM;

  CLASS COORDSYSTEM (ABSTRACT) EXTENDS REFSYSTEM =
    ATTRIBUTE
      Axis: LIST {1..3} OF AXIS;
  END COORDSYSTEM;

  CLASS SCALSYSTEM (ABSTRACT) EXTENDS REFSYSTEM =
    PARAMETER
      Unit: NUMERIC [ANYUNIT];
  END SCALSYSTEM;

  CLASS SIGN (ABSTRACT) EXTENDS METAOBJECT =
    PARAMETER
      Sign: METAOBJECT;
  END SIGN;


  TOPIC TIMESYSTEMS =

    CLASS CALENDAR EXTENDS INTERLIS.SCALSYSTEM =
      PARAMETER
        Unit(EXTENDED): NUMERIC [TIME];
    END CALENDAR;

    CLASS TIMEOFDAYSYS EXTENDS INTERLIS.SCALSYSTEM =
      PARAMETER
        Unit(EXTENDED): NUMERIC [TIME];
    END TIMEOFDAYSYS;

  END TIMESYSTEMS;

  UNIT
    Minute [min] = 60 [INTERLIS.s];
    Hour   [h]   = 60 [min];
    Day    [d]   = 24 [h];
    Month [M] EXTENDS INTERLIS.TIME;
    Year [Y] EXTENDS INTERLIS.TIME;

  REFSYSTEM BASKET BaseTimeSystems ~ TIMESYSTEMS
    OBJECTS OF CALENDAR: GregorianCalendar
    OBJECTS OF TIMEOFDAYSYS: UTC;

  STRUCTURE TimeOfDay (ABSTRACT) =
    Hours: 0 .. 23 CIRCULAR [h];
    CONTINUOUS SUBDIVISION Minutes: 0 .. 59 CIRCULAR [min];
    CONTINUOUS SUBDIVISION Seconds: 0.000 .. 59.999 CIRCULAR [INTERLIS.s];
  END TimeOfDay;

  STRUCTURE UTC EXTENDS TimeOfDay =
    Hours(EXTENDED): 0 .. 23 {UTC};
  END UTC;

  DOMAIN
    GregorianYear = 1582 .. 2999 [Y] {GregorianCalendar};

  STRUCTURE GregorianDate =
    Year: GregorianYear;
    SUBDIVISION Month: 1 .. 12 [M];
    SUBDIVISION Day: 1 .. 31 [d];
  END GregorianDate;

  STRUCTURE GregorianDateTime EXTENDS GregorianDate =
    SUBDIVISION Hours: 0 .. 23 CIRCULAR [h] {UTC};
    CONTINUOUS SUBDIVISION Minutes: 0 .. 59 CIRCULAR [min];
    CONTINUOUS SUBDIVISION Seconds: 0.000 .. 59.999 CIRCULAR [INTERLIS.s];
  END GregorianDateTime;

  DOMAIN XMLTime = FORMAT BASED ON UTC ( Hours/2 ":" Minutes ":" Seconds );
  DOMAIN XMLDate = FORMAT BASED ON GregorianDate ( Year "-" Month "-" Day );
  DOMAIN XMLDateTime EXTENDS XMLDate = FORMAT BASED ON GregorianDateTime
                                              ( INHERITANCE "T" Hours/2 ":" Minutes
                                                            ":" Seconds );

  STRUCTURE LineSegment (ABSTRACT) =
    SegmentEndPoint: MANDATORY LineCoord;
  END LineSegment;

  STRUCTURE StartSegment (FINAL) EXTENDS LineSegment =
  END StartSegment;

  STRUCTURE StraightSegment (FINAL) EXTENDS LineSegment =
  END StraightSegment;

  STRUCTURE ArcSegment (FINAL) EXTENDS LineSegment =
    ArcPoint: MANDATORY LineCoord;
    Radius: NUMERIC [LENGTH];
  END ArcSegment;

  STRUCTURE SurfaceEdge =
    Geometry: DIRECTED POLYLINE;
    LineAttrs: ANYSTRUCTURE;
  END SurfaceEdge;

  STRUCTURE SurfaceBoundary =
    Lines: LIST OF SurfaceEdge;
  END SurfaceBoundary;

  STRUCTURE LineGeometry =
    Segments: LIST OF LineSegment;
  MANDATORY CONSTRAINT isOfClass (Segments[FIRST],StartSegment);
  END LineGeometry;

END INTERLIS.
Kartenausschnitt

INTERLIS est un langage de description conçu pour assurer la compatibilité à long terme entre les différents systèmes. INTERLIS est indépendant des logiciels et des systèmes.

La version la plus utilisée actuellement est INTERLIS 2, version 2.3.

INTERLIS – qui est derrière ?

COSIG (Coordination, Services et Informations Géographiques) est en collaboration avec les groupes spécialisé d'eCH le gardien du langage formel INTERLIS et fournit les informations et documents nécessaires. Les activités de l'administration fédérale dans le domaine de l'information géographique (IG) et des systèmes d'information géographique (SIG) sont également coordonnées par COSIG.
Voir https://www.cosig.ch

Vous trouverez nos coordonnées ici.

Login