integis.ch > INTERLIS-Treffpunkt > INTERLIS 2-Handbücher

INTERLIS 2-Syntax hyperlinked

Version: 0.2 (INTERLIS-Version 2.2 vom 2003-05-13)

Autoren: CE, SFK

Verzeichnis nach Kapitelnummern (aus dem INTERLIS 2.2-Referenzhandbuch):

Verzeichnis nach reservierten Worten (einige davon wurden in INTERLIS 1 benutzt und bleiben aus Gründen der Kompatibilität reserviert; sie sind nicht fett und kursiv dargestellt):

A ABSTRACT ACCORDING AGGREGATES AGGREGATION ALL/2 AND ANY ANYCLASS ANYSTRUCTURE ARCS AREA AS ASSOCIATION ATTRIBUTE/2/3 ATTRIBUTES   B  BAG BASE BASED BASKET/2 BLANK BOOLEAN BY   C  CIRCULAR CLASS/2/3 CLOCKWISE CODE CONSTRAINT/2/3 CONSTRAINTS CONTINUE CONTINUOUS CONTOUR CONTRACT COORD COORD2 COORD3 COUNTERCLOCKWISE   D  DATA DATE DEFAULT DEFINED DEGREES DEPENDS DERIVATIVES DERIVED DIM1 DIM2 DIRECTED DOMAIN   E  END/2/3/4/5/6/7 EQUAL EXISTENCE EXTENDED EXTENDS/2/3/4/5/6/7/8 EXTERNAL   F  FINAL FIRST FIX FONT FORM FORMAT FREE FROM FUNCTION   G  GRADS GRAPHIC   H  HALIGNMENT   I  I16 I32 IDENT IMPORTS IN/2 INSPECTION INTERLIS ISSUED   J  JOIN   K  -  L  LAST LINE/2 LINEATTR LINESIZE LIST LNBASE LOCAL   M  MANDATORY/2/3 METAOBJECT MODEL   N  NAME NO NOT NULL NUMERIC   O  OBJECT OF/2/3/4/5/6/7/8/9/10/11/12/13 OID/2 ON/2 OPTIONAL OR ORDERED OTHERS OVERLAPS   P  PARAMETER/2 PARENT PERIPHERY PI POLYLINE PROJECTION   Q  -  R  RADIANS REFERENCE REFSYSTEM/2 REQUIRED RESTRICTED/2/3 ROTATION   S  SIGN STRAIGHTS STRUCTURE/2/3 SURFACE SYMBOLOGY   T  TABLE TEXT THATAREA THIS THISAREA TID TIDSIZE TO/2/3/4 TOPIC TRANSFER TRANSIENT TRANSLATION TYPE   U  UNDEFINED UNION UNIQUE UNIT UNQUALIFIED URI   V  VALIGNMENT VERTEX VERTEXINFO VIEW   W  WHEN WHERE/2 WITH WITHOUT  X  -  Y  -  Z  -

Verzeichnis nach Regeln:

A Aggregation AlignmentType Argument ArgumentType AssociationDef AssociationPath AssociationRef AttrType AttrTypeDef AttributeDef AttributePath AttributeRef   B  BaseExtentionDef BaseType BasketType BooleanType   C  Cardinality ClassDef ClassOrAssociationRef ClassRef ClassType ComposedUnit CondSignParamAssignment Constant ConstraintDef ConstraintsDef ControlPoints CoordinateType  D  Dec DecConst Definitions DerivedUnit Digit DomainDef DomainRef DrawingRule  E  EnumAssignment EnumElement EnumRange Enumeration EnumerationConst EnumerationType ExistenceConstraint Explanation Expression  F  Factor Float FormationDef FunctionCall FunctionDef   G  GlobalUniqueness GraphicDef GraphicRef   H  HexDigit  I  INTERLIS2Def Inspection IntersectionDef  J  Join   K  -  L  Letter LinAttrDef LineForm LineFormType LineFormTypeDef LineType ListIndex LocalUniqueness   M  MandatoryConstraint MetaDataUseDef MetaDataUseRef MetaObjectRef ModelDef   N  Name Number NumericConst NumericConst NumericalType   O  OIDType ObjectOrAttributePath  P  ParameterDef PathEl PlausibilityConstraint PosNumber Predicate Projection Properties    Q  -  R  ReferenceAttr RefSys Relation RenamedViewableRef RestrictedClassOrAssRef RestrictedStructureRef RoleDef RotationDef RunTimeParameterDef   S  Scaling Selection SignParamAssignment String StructDec StructUnitConst StructureRef StructuredUnit StructuredUnitType   T  Term Term1 Term2 TextConst TextType TopicDef TopicRef Type   U  Union UniqueEl UniquenessConstraint UnitDef UnitRef   V  ViewAttributes ViewDef ViewRef ViewableRef   X  -  Y  -  Z  -


Kap. 2.2.2 Namen - top

Name = Letter { Letter | Digit | '_' }.
Letter = ( 'A' | .. | 'Z' | 'a' | .. | 'z' ).
Digit = ( '0' | '1' | .. | '9' ).
HexDigit = ( Digit | 'A' | .. | 'F' | 'a' | .. | 'f' ).

Kap. 2.2.3 Zeichenketten - top

String = '"' { <any character except '\' or '"'>
            | '\"'
            | '\\'
            | '\u' HexDigit HexDigit HexDigit HexDigit
            } '"'.

Kap. 2.2.4 Zahlen - top

PosNumber = (* Digit *).
Number = [ '+' | '-' ] PosNumber.
Dec = ( Number [ '.' PosNumber ] | Float ). 
Float = [ '+' | '-' ] '0.' 
          (( '1' | '2' | ... | '9' ) 
           [PosNumber] | (* '0' *)) Scaling.
Scaling = ( 'e' | 'E' ) Number.
StructDec = Number (* ':' PosNumber *) [ '.' PosNumber ].

Kap. 2.2.5 Eigenschaftsmengen - top

Properties = [ '(' Property { ',' Property } ')' ].

Kap. 2.2.6 Erläuterungen - top

!! Line comment; goes until end of line

/* Block comment,
    additional line comment */
Explanation = '//' any character except // '//'.

Kap. 2.3 Hauptregel - top

INTERLIS2Def = 'INTERLIS' Version-Dec ';'
               { ModelDef }.

Kap. 2.5.1 Modelle - top

ModelDef = [ 'TYPE' | 'REFSYSTEM' | 'SYMBOLOGY' ]
           'MODEL' Model-Name [ '('Language-Name ')' ]
           [ 'TRANSLATION' 'OF' Model-Name ] '='
               { 'CONTRACT' 'ISSUED' 'BY' Issuer-Name [ Explanation ] ';' }
               { 'IMPORTS' [ UNQUALIFIED ] Model-Name 
               { ',' [ UNQUALIFIED ] Model-Name } ';' }
               { MetaDataUseDef
               | UnitDef
               | FunctionDef
               | LineFormTypeDef
               | DomainDef
               | RunTimeParameterDef
               | ClassDef
               | TopicDef }
           'END' Model-Name '.'.

Kap. 2.5.2 Themen - top

TopicDef = [ 'VIEW' ] 'TOPIC' Topic-Name
               Properties<ABSTRACT,FINAL>
               [ 'EXTENDS' TopicRef] '='
                   [ 'OID' 'AS' OID-DomainRef ]
                   { 'DEPENDS' 'ON' TopicRef { ',' TopicRef } ';' }
                   Definitions
           'END' Topic-Name ';'.

Definitions =  { MetaDataUseDef
               | UnitDef
               | DomainDef
               | ClassDef
               | AssociationDef
               | ConstraintsDef
               | ViewDef
               | GraphicDef }.

TopicRef = [ Model-Name '.' ] Topic-Name.

Kap. 2.5.3 Klassen und Strukturen - top

ClassDef = ( 'CLASS' | 'STRUCTURE' ) Class-Name
               Properties<ABSTRACT,EXTENDED,FINAL>
                   [ 'EXTENDS' StructureRef ] '='
               [ 'ATTRIBUTE' ] { AttributeDef }
               { ConstraintDef }
               [ 'PARAMETER' { ParameterDef } ]
           'END' Class-Name ';'.

ClassRef = [ Model-Name '.' [ Topic-Name'.' ] ] Class-Name

StructureRef = [ Model-Name '.' [ Topic-Name '.' ] ]
               ( Structure-Class-Name | Class-Name ).

Kap. 2.6 Attribute - top

AttributeDef = Attribute-Name Properties<ABSTRACT,EXTENDED,FINAL>
                   ':' AttrTypeDef
                       [ ':=' Factor { ',' Factor } ] ';'.

AttrTypeDef = ('MANDATORY' [ AttrType ]
              | AttrType
              | ( ( 'BAG' | 'LIST' ) [ Cardinality ]
                          'OF' RestrictedStructureRef ) ).

AttrType = ( Type 
           | DomainRef 
           | ReferenceAttr
           | RestrictedStructureRef ).
           
ReferenceAttr = 'REFERENCE' 'TO'
                     Properties<EXTERNAL> RestrictedClassOrAssRef.

RestrictedClassOrAssRef = ( ClassOrAssociationRef | 'ANYCLASS' )
                                [ 'RESTRICTED' 'TO' ClassOrAssociationRef
                                    { ',' ClassOrAssociationRef } ].

ClassOrAssociationRef = ( ClassRef | AssociationRef ).

RestrictedStructureRef = ( StructureRef | 'ANYSTRUCTURE' )
                             [ 'RESTRICTED' 'TO' StructureRef
                                 { ',' StructureRef } ].

Kap. 2.7 Eigentliche Beziehungen - top

AssociationDef = 'ASSOCIATION' [ Association-Name ]
                     Properties<ABSTRACT,EXTENDED,FINAL>
                     [ 'EXTENDS' AssociationRef ]
                     [ 'DERIVED' 'FROM' RenamedViewableRef ] '='
                     { RoleDef }
                     [ 'ATTRIBUTE'] { AttributeDef }
                     { ConstraintDef }
                 'END' [ Association-Name ] ';'.

AssociationRef = [ Model-Name'.' [ Topic-Name'.' ]] Association-Name.

RoleDef = Role-Name Properties<ABSTRACT,EXTENDED,FINAL,ORDERED,EXTERNAL>
              ( '--'|'-<>'|'-<#>' ) [ Cardinality ]
              RestrictedClassOrAssRef
              [ ':='  Role-Factor ] '; '.

Cardinality = '{' ( '*' | PosNumber [ '..' ( PosNumber | '*' ) ] ) '}'.

Kap. 2.8 Wertebereiche und Konstanten - top

DomainDef = 'DOMAIN'
                { Domain-Name Properties<ABSTRACT,FINAL>
                    ['EXTENDS' DomainRef ] '='
                ('MANDATORY' [ Type ] | Type ) ';' }.

Type = ( BaseType | LineType ).

DomainRef = [ Model-Name '.' [ Topic-Name '.' ] ] Domain-Name.

BaseType = ( TextType
           | EnumerationType
           | AlignmentType
           | BooleanType
           | NumericType
           | StructuredUnitType
           | CoordinateType
           | OIDType
           | BasketType
           | ClassType ).

Constant = ( 'UNDEFINED'
           | NumericConst
           | TextConst
           | StructUnitConst
           | EnumerationConst ).

Kap. 2.8.1 Zeichenketten - top

TextType        = ( 'TEXT' ['*' MaxLength-PosNumber ]
                  | 'NAME'
                  | 'URI' ).

TextConst       = String.

Kap. 2.8.2 Aufzählungen - top

EnumerationType = Enumeration [ 'ORDERED' | 'CIRCULAR' ].

Enumeration = '(' EnumElement { ',' EnumElement } [ ':' 'FINAL' ]
               | 'FINAL' ')'.

EnumElement = EnumElement-Name { '.' EnumElement-Name } [Sub-Enumeration].

EnumerationConst = '#' ( EnumElement-Name { '.' EnumElement-Name }
                                          [ '.' 'OTHERS' ]
                       | 'OTHERS' ) .

Kap. 2.8.3 Textausrichtungen - top

AlignmentType = ( 'HALIGNMENT' | 'VALIGNMENT' ).

Kap. 2.8.4 Boolean

BooleanType = 'BOOLEAN'.

Kap. 2.8.5 Numerische Datentypen - top

NumericType = ( Min-Dec '..' Max-Dec | 'NUMERIC' ) [ 'CIRCULAR' ]
              [ '[' UnitRef ']' ]
              [ 'CLOCKWISE' | 'COUNTERCLOCKWISE' | RefSys ].
RefSys = ( '{' RefSys-MetaObjectRef [ '/' Axis-PosNumber ] '}'
         | '<' Coord-DomainRef [ '/' Axis-PosNumber ] '>' ).

DecConst = ( Dec | 'PI' | 'LNBASE' ).

NumericConst = DecConst [ '[' UnitRef ']' ].

Kap. 2.8.6 Strukturierte Wertebereiche - top

StructuredUnitType = Min-StructDec '..' Max-StructDec [ 'CIRCULAR' ]
                     '[' Structured-UnitRef ']'
                     [ 'CLOCKWISE' | 'COUNTERCLOCKWISE' ]
                     [ RefSys ].

StructUnitConst = StructDec [ '[' UnitRef ']' ].

CoordinateType = 'COORD' NumericalType
                     [ ',' NumericalType [ ',' NumericalType ]
                         [ ',' RotationDef ] ].

NumericalType = ( NumericType | StructuredUnitType ).

RotationDef = 'ROTATION' NullAxis-PosNumber '->'
              PiHalfAxis-PosNumber.

Kap. 2.8.8 Wertebereiche von Objektidentifikationen - top

OIDType = 'OID' ( 'ANY' | NumericType | TextType ).

Kap. 2.8.9 Behälter

BasketType = 'BASKET' Properties
                 [ 'OF' [ Model-Name '.' ] Topic-Name ].

Kap. 2.8.10 Klassentypen - top

ClassType = ( 'CLASS'
                  [ 'RESTRICTED' 'TO' ClassOrAssociationRef
                                      { ',' ClassOrAssociationRef } ]
            | 'STRUCTURE'
                  [ 'RESTRICTED' 'TO' StructureRef
                                      { ',' StructureRef } ] ).

Kap. 2.8.11 Linienzüge und Kap. 2.8.12 Einzelflächen und Gebietseinteilungen - top

LineType = ([ 'DIRECTED' ] 'POLYLINE' | 'SURFACE' | 'AREA' )
           [ LineForm ] [ ControlPoints ] [ IntersectionDef ]
           [ LinAttrDef ].

LineForm = 'WITH' '(' LineFormType {',' LineFormType} ')'.

LineFormType = ( 'STRAIGHTS' | 'ARCS'
               | [ Model-Name '.' ] LineFormType-Name ).

ControlPoints = 'VERTEX' CoordType-DomainRef.

IntersectionDef = 'WITHOUT' 'OVERLAPS' '>' Dec.

LinAttrDef = 'LINE' 'ATTRIBUTES' Structure-Name.

LineFormTypeDef = 'LINE' 'FORM'
                      { LineFormType-Name ':' LineStructure-Name ';' }.

Kap. 2.9 Einheiten - top

UnitDef = 'UNIT'
              { Unit-Name
                  [ '(' 'ABSTRACT' ')' | '[' UnitShort-Name ']' ]
                  [ 'EXTENDS' Abstract-UnitRef ]
                  [ '=' ( DerivedUnit | ComposedUnit | StructuredUnit )]
                  ';' }.

DerivedUnit = [ DecConst { ( '*' | '/' ) DecConst }
              | 'FUNCTION' Explanation ] '[' UnitRef ']'.

ComposedUnit = '(' UnitRef { ( '*' | '/' ) UnitRef } ')'.

StructuredUnit = '{' UnitRef
                     { ':' UnitRef '[' Min-Dec '..' Max-Dec ']' }
                 '}'
                     [ 'CONTINUOUS' ].

UnitRef = [ Model-Name '.' [ Topic-Name '.' ] ] UnitShort-Name.

Kap. 2.10 Umgang mit Metaobjekten - top

MetaDataUseDef = ('SIGN' | 'REFSYSTEM' ) 'BASKET' Basket-Name
                     Properties<FINAL>
                     [ 'EXTENDS' MetaDataUseRef ]
                         '~' Model-Name '.' Topic-Name ';'.

MetaDataUseRef = [ Model-Name '.' [ Topic-Name '.' ] ] Basket-Name.

MetaObjectRef = [ MetaDataUseRef '.' ] Metaobject-Name.

Kap. 2.10.2 Parameter - top

ParameterDef = Parameter-Name Properties<ABSTRACT,EXTENDED,FINAL>
                  ':' ( AttrTypeDef
                      | 'METAOBJECT' [ 'OF' MetaObject-ClassRef ] ) ';'.

Kap. 2.11 Laufzeitparameter - top

RunTimeParameterDef = 'PARAMETER'
                         { RunTimeParameter-Name ':' AttrTypeDef ';' }.

Kap. 2.12 Konsistenzbedingungen - top

ConstraintDef = ( MandatoryConstraint
                | PlausibilityConstraint
                | ExistenceConstraint
                | UniquenessConstraint ).

MandatoryConstraint = 'MANDATORY' 'CONSTRAINT'
                          Logical-Expression ';'.

PlausibilityConstraint = 'CONSTRAINT'
                             ( '<=' | '>=' ) Percentage-Dec '%'
                             Logical-Expression ';'.

ExistenceConstraint = 'EXISTENCE' 'CONSTRAINT'
                           AttributePath 'REQUIRED' 'IN'
                               ViewableRef ':' AttributePath
                               { 'OR' ViewableRef ':' AttributePath } ';'.

UniquenessConstraint =  'UNIQUE' ( GlobalUniqueness
                                   | LocalUniqueness ) ';'.

GlobalUniqueness = UniqueEl.

UniqueEl = ObjectOrAttributePath { ',' ObjectOrAttributePath } .

LocalUniqueness = '(' 'LOCAL' ')'
                  StructureAttribute-Name
                  { '->' StructureAttribute-Name } ':'
                    Attribute-Name ',' Attribute-Name.

ConstraintsDef = 'CONSTRAINTS' 'OF' ClassOrAssociationRef '='
                     { ConstraintDef }
                 'END' ';'.

Kap. 2.13 Ausdrücke - top

Expression = Term.

Term = Term1 { 'OR' Term1 }.

Term1 = Term2 { 'AND' Term2 }.

Term2 = Predicate [ Relation Predicate ].

Predicate = ( Factor
            | [ 'NOT' ] '(' Logical-Expression ')'
            | 'DEFINED' '(' Factor ')' ).

Relation = ( '==' | '!=' | '<>' | '<=' | '>=' | '<' | '>' ).

Factor = ( ObjectOrAttributePath
         | FunctionCall
         | 'PARAMETER' [ Model-Name '.' ] RunTimeParameter-Name
         | Constant ).

ObjectOrAttributePath = PathEl { '->' PathEl } .

AttributePath = ObjectOrAttributePath .

PathEl = ('THIS'
         | 'THISAREA' | 'THATAREA'
         | 'PARENT'
         | ReferenceAttribute-Name
         | AssociationPath
         | Role-Name
         | Base-Name
         | AttributeRef ).

AssociationPath = '\' AssociationAccess-Name '.'

AttributeRef = ( Attribute-Name ( [ '[' ( 'FIRST'
                                        | 'LAST'
                                        | AxisListIndex-PosNumber ) ']' ] )
                                        | 'AGGREGATES' ).
FunctionCall = [ Model-Name '.' ] Function-Name
                   '(' Argument {',' Argument } ')'.
Argument = ( Expression | ViewableRef ).

Kap. 2.14 Funktionen - top

FunctionDef = 'FUNCTION' Function-Name
                 '(' Argument-Name ':' ArgumentType
                 {',' Argument-Name ':' ArgumentType } ')'
                 ':' ArgumentType [ Explanation ] ';'.
ArgumentType = ( AttrTypeDef
               | 'OBJECT' 'OF' (RestrictedfStructureRef
                               | RestrictedfStructureRef
                               | ViewRef ) ).

Kap. 2.15 Sichten - top

ViewDef = 'VIEW' View-Name
            Properties<ABSTRACT,EXTENDED,FINAL,TRANSIENT>
            [ FormationDef | 'EXTENDS' ViewRef ]
            { BaseExtentionDef }
            { Selection }
          '='
            [ ViewAttributes ]
            { ConstraintDef }
          'END' View-Name ';'.

ViewRef = [ Model-Name'.' [ Topic-Name '.' ] ] ( View-Name ).

FormationDef = ( Projection | Join | Union | Aggregation | Inspection ) .

Projection = 'PROJECTION' 'OF' RenamedViewableRef ';'.

Join = 'JOIN' 'OF' RenamedViewableRef
           (* ',' RenamedViewableRef
               [ '(' 'OR' 'NULL' ')' ] *) ';'.

Union = 'UNION' 'OF' RenamedViewableRef
            (* ',' RenamedViewableRef *) ';'.

Aggregation = 'AGGREGATION' 'OF' RenamedViewableRef
                  ( 'ALL' | 'EQUAL' '(' UniqueEl ')' ) ';'.

Inspection = [ 'AREA' ] 'INSPECTION' 'OF' RenamedViewableRef
                 '->' StructureAttribute-Name
                     { '->' StructureAttribute-Name } ';'.


RenamedViewableRef = [ Base-Name '~' ] ViewableRef.

ViewableRef = [ Model-Name '.' [ Topic-Name '.' ] ]
              ( Structure-Name
              | Class-Name
              | Association-Name
              | View-Name).


BaseExtentionDef = 'BASE' Base-Name 'EXTENDED' 'BY'
                       RenamedViewableRef { ',' RenamedViewableRef } .


Selection = 'WHERE' Logical-Expression ';'.

ViewAttributes = [ 'ATTRIBUTE' ]
                 { 'ALL' 'OF' Base-Name ';'
                 | AttributeDef
                 | Attribute-Name Properties<ABSTRACT,EXTENDED,FINAL>
                   ':=' Factor ';' }.

Kap. 2.16 Darstellungsbeschreibungen - top

GraphicDef = 'GRAPHIC' Graphic-Name Properties<ABSTRACT,FINAL>
                 [ 'EXTENDS' GraphicRef ]
                 [ 'BASED' 'ON' ViewableRef] '='
                 { Selection }
                 { DrawingRule }
             'END' Graphic-Name ';'.

GraphicRef = [ Model-Name '.' [ Topic-Name '.' ] ] Graphic-Name.

DrawingRule = DrawingRule-Name Properties<ABSTRACT,EXTENDED,FINAL>
                    [ 'OF' Sign-ClassRef ]
                       ':' CondSignParamAssignment
                           { ',' CondSignParamAssignment }';'.

CondSignParamAssignment = [ 'WHERE' Logical-Expression ]
                '(' SignParamAssignment { ';' SignParamAssignment } ')'.

SignParamAssignment = SignParameter-Name
                        ':=' ( '{' MetaObjectRef '}'
                             | Factor
                             | 'ACCORDING' Enum-AttributePath
                                '(' EnumAssignment {',' EnumAssignment} ')'
                             ) .

EnumAssignment = ( '{'MetaObjectRef '}' | Constant ) 'WHEN' 'IN' EnumRange.

EnumRange = EnumerationConst [ '..' EnumerationConst ].

top

© 2003 by int>e>gis - ITA-HSR, mailto:webmaster@integis.ch?subject=www.integis.chmail to webmaster@integis.ch, hosted by ID-HSR