Mit dem Modul IL2IN können Objekte aus einer INTERLIS 2 .xtf Datei gelesen werden. Der Modul interpretiert neben der .xtf Datei auch die zugehörigen INTERLIS 2 Datenmodelle (.ili Dateien). Jedes Objekt wird von IL2IN auf seine Konsistenz gegenüber den INTERLIS 2 Datenmodellen überprüft. Falls z.B. zwingende Attribute vergessen oder falsche Attributwerte gefunden werden, werden entsprechende Fehlermeldungen ausgegeben.
IL2IN wird mit:
|INCL \script\il2in.mod
in einer ICS RUN1-Konfiguration verfügbar gemacht.
Folgende Parameter können in der Map
IL2IN_PARAM
für den Modul IL2IN gesetzt
werden:
Parameter | req/opt | Beschreibung |
FORCE_COMPILE | r | Falls dieser Parameter auf ON
(Default = OFF ) gesetzt wird, werden die
INTERLIS Datenmodelle jedes mal mit dem INTERLIS 2.2
Compiler analysiert. Falls die Option auf
OFF gesetzt ist, wird zuerst nachgeschaut
ob bereits eine vorcompilierte Version des Modells existiert
(.ilo und .ilp Datei).
Das Laden von vorcompilierten Modelldateien ist viel
schneller möglich, daher ist die Option normalerweise auf
OFF gesetzt. |
MODELS | r | Mit dieser Option kann man angeben, wie die zum
Datensatz gehörigen Modelldateien bestimmt werden.
Normalerweise funktioniert das oben
beschriebene Verfahren gut und ist ausserdem sehr praktisch
in der Benutzung. Es kann aber sein, dass man in bestimmten
Fällen die automatische Bestimmung der Datenmodelle
ausschalten möchte. In diesem Fall kann man unter
Die Dateien werden ebenfalls zuerst in
|
MODEL_NAME | r | Unter MODEL_NAME kann man den
Namen eines Basismodells des Hauptmodells angeben (z.B.
DM01AVCH24D für eine kantonale
Erweiterung). Das Lesen der Daten findet dann nur gemäss den
Regeln des Basismodells statt (polymorpher Leser). Hinweis:
Dieses Feature ist noch nicht verfügbar, weil die benutzte
C-Bibliothek IOM (INTERLIS Object Model) dieses Feature noch
nicht vollständig unterstüzt. |
MODEL_DIR | r | Normalerweise werden Modelldateien
(.ili ) zuerst in
\user\models2 ge-sucht. Mit der Option
MODEL_DIR kann man einen alternativen
(User-)Suchpfad angeben (Default =
OFF ). |
TRACE | r | Falls dieser Parameter auf ON
(Default = OFF ) gesetzt wird, wird für
jedes von IOM gelesene Ob-jekt (IOM = INTERLIS Object Model)
eine Meldung in die Logdatei aus-gegeben. |
STATISTICS | o | Objektstatistik am Ende der .log Datei ausgeben
(Default = OFF ). |
DEBUG | o | ON oder OFF .
Debugmodus ein oder aus (Default =
OFF ). |
Komponente | req/opt | Beschreibung |
IN.MODEL(s) | r | Model des IN Objekts. |
IN.TOPIC(s) | r | Topic des IN-Objekt |
IN.CLASS(s) | r | Tabelle des IN-Objekts. |
IN.TID(s) | r | Transferidentifikation des IN-Objekts . |
IN.LINE(i) | r | Zeilennummer des Objekts in der Inputdatei. |
Die restlichen Objektkomponenten sind abhängig vom
dazughörigen INTERLIS Modell (s.a. IN.MODEL
,
IN.TOPIC
bzw. IN.CLASS
).
Alle INTERLIS Attribute werden als Kompontenten des IN-Objekts
mit dem gleichem Namen geliefert. Die INTERLIS Datentypen
werden wie folgt auf ICS Datentypen abgebildet:
INTERLIS Datentyp | ICS Datentyp |
NUMBER | real oder int. |
TEXT | string. |
ENUMERATION | string. |
STRUCTURE | map. Das XML-Tag der Struktur kann dem Label der Map entnommen werden (mit GET_LABEL). |
LIST | list of map. Die XML-Tags der Sturkturelemente können den Labeln der Maps entnommen werden. |
BAG | list of map. Die XML-Tags der Strukturelemente können den Labeln der Maps entnommen werden. |
ROLE | link. |
Prozedur | IL2IN_OPEN ! [s input][] |
Beschreibung | Öffnet eine bestehende INTERLIS
2 Datei <input> und initialisiert
den Modul. Die Prozedur wird von RUN1 automatisch
aufgerufen. |
Beispiel | IL2IN_OPEN |
Prozedur | IL2IN_READ_OBJECT ! [b state][] |
Beschreibung | Liest das nächste IN-Objekt aus der geöffneten INTERLIS 2 Datei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel | IL2IN_READ_OBJECT [TRUE] |
Prozedur | IL2IN_RESET_READ_REF ! [s tid][] |
Beschreibung | Bereitet das Lesen von
Objekten, welche mit dem Objekt mit der
Transferidentifikation |
Beispiel | IN.TID IL2IN_RESET_READ_REF [] |
Prozedur | IL2IN_READ_NEXT_REF ! [s tid][o object,b state] |
Beschreibung | Liest das nächste Objekt,
welches via eine ASSOCIATION mit dem Objekt mit der
Transferidentifikation |
Beispiel | ! display all objects linked with IN.TID IN.TID IL2IN_RESET_READ_REF WHILE IN.TID IL2IN_READ_NEXT_REF DO => VAR.OBJECT DISPLAY VAR.OBJECT END_WHILE |
Prozedur | IL2IN_CLOSE ! [][] |
Beschreibung | Schliesst den Modul und gibt die durch den Modul belegten Resourcen wieder frei. Die Prozedur wird von RUN1 automatisch aufgerufen. |
Beispiel | IL2IN_CLOSE |
! Diese ICS Konfiguration zeigt alle von il2in.mod ! gelesenen Objekte in der .log Datei an. |LICENSE \license\iltools.lic MAP USER_INPUT1 DIALOG => FILE ! FILE | STRING | ODBC MESSAGE => 'Enter .xtf Input File' FILE_FILTER => xtf FILE_EXISTS => TRUE OPT => input END_MAP MAP IL2IN_PARAM INPUT_EXTENSION => xtf MODELS => XTF MODEL_NAME => OFF FORCE_COMPILE => OFF TRACE => OFF STATISTICS => ON END_MAP MAP INPUT_SOURCES I1 => IL2IN,OPT.input END_MAP MAP INOUT I1 => DISPLAY_OBJECT1,IN END_MAP |INCL \script\util.lib |INCL \script\il2in.mod |INCL \script\run1.prg