# Datentypen manuell erstellen

Es gibt zwei Möglichkeiten, eine Datentypdefinition zu erstellen:

- in dem Werkzeug 'Aktion erstellen'. Die Verwendung von 'Aktion erstellen' wird in SAG.dtCrA.mkr.1 ausführlich behandelt.

- die Datentypdefinition manuell erstellen.

Um einen Datentyp manuell zu erstellen, ist es erforderlich, eine Datenbankdatei zu bearbeiten.

Im folgenden Kapitel wird beschrieben, wie Datentypdefinitionen manuell erstellt werden.

SAG.CrDT.mkr.2
SAG.CrDT.mkr.3
SAG.CrDT.mkr.4
SAG.CrDT.mkr.7
SAG.CrDT.mkr.11

## Weiterführende Informationen

- Eine Einführung in Datentypen enthält SAG.IntAc.mkr.1.

- Referenzinformationen zu Datentypdefinitionen können der Hilfeseite `dtdtsfile(4)` entnommen werden.

## Gründe, einen Datentyp manuell zu erstellen

Wird ein Datentyp manuell erstellt, können alle Möglichkeiten, die die Syntax von Datentypdefinitionen bietet, ausgeschöpft werden.

Sollen die folgenden Merkmale von Datentypen verwendet werden, muß der Datentyp manuell erstellt werden:

- Datentypzuordnung auf der Grundlage der Position (des Pfads).

- Die Möglichkeit, dem Datentyp neben 'Öffnen' und 'Drucken' weitere Aktionen zuzuordnen.

- Mehrere Namens-, Muster- oder Inhaltskriterien werden für denselben Datentyp, beispielsweise ein Datentyp, der auf Dateien mit der Erweiterung `*.abc` oder `*.def` endet, verwendet.

- Datentypzuordnung auf der Grundlage von Verweisen.

## Komponenten einer Datentypdefinition: Kriterien und Attribute

Eine Datentypdefinition besteht aus zwei separaten Datenbankdefinitionen:

- Der Definition
  `DATA_ATTRIBUTES`.

  DerDefinition `DATA_ATTRIBUTES` beschreibt den Namen des Datentyps und das Erscheinungsbild und Verhalten von Dateien dieses Typs.

- Die Definition `
  DATA_CRITERIA`.

  Die Definition `DATA_CRITERIA` beschreibt, nach welchen Kriterien der Datentyp zugeordnet wird. Jede Kriteriendefinition gibt an, auf welche `DATA_ATTRIBUTES` Definition die Kriterien angewendet werden.

Für jede Definition `DATA_ATTRIBUTES` muß mindestens eine Definition `
DATA_CRITERIA` vorliegen. Es können ihr aber auch mehre Definitionen `DATA_CRITERIA` zugeordnet sein.

Beispielsweise könnte ein Benutzer eine Attributdefinition für PostScript- Dateien erstellen, in der beschrieben wird, wie PostScript-Dateien im Dateimanager angezeigt werden und wie sie sich verhalten. Anschließend könnte der Benutzer zwei verschiedene Kriterien für den Datentyp PostScript erstellen, einen auf der Grundlage des Dateinamens und einen auf der Grundlage des Dateiinhalts.

Weitere Informationen können dem Abschnitt SAG.CrDT.mkr.11 entnommen werden.

## Datentyp manuell erstellen: Allgemeine Schritte

In diesem Abschnitt wird beschrieben, wie eine Datentypkonfigurationsdatei erstellt wird.

### Konfigurationsdateien für Datentypen

Konfigurationsdateien, die Datentypdefinitionen enthalten, müssen folgende Voraussetzungen erfüllen:

- Die Dateien müssen der Benennungsskonvention name`.dt` entsprechen.

- Die Dateien müssen sich im Datenbanksuchpfad befinden. Der Standardsuchpfad lautet:

  Persönliche Datentypen | Standardverzeichnis`/.dt/types`
  Systemweite Datentypen | `/etc/dt/appconfig/types/`sprache
  Integrierte Datentypen | `/usr/dt/appconfig/types/`sprache. Dieses Verzeichnis sollte nicht verwendet werden.

Weitere Informationen zum Ändern des Datenbanksuchpfads können dem Abschnitt SAG.Datab.mkr.6 entnommen werden.

### Datentypdefinition erstellen

1. Eine bereits vorhandene Datenbankdatei öffnen oder eine neue erstellen.

   Weitere Informationen können dem vorherigen Abschnitt sag.crdt.mkr.5 entnommen werden.

2. Die Datenattribute für den Datentyp unter Verwendung folgender Syntax definieren:

       DATA_ATTRIBUTES daten_typ_name
       {
          ICON          bild_name
          DESCRIPTION   zeichenfolge
          attribute_field
          attribute_field
          …
       }

   wobei die Parameter folgende Bedeutung haben:

   daten_typ_name | Ein eindeutiger Name, der diesem Datentyp zugeordnet wird.
   bild_name | Dateiname oder Pfad einer Symboldatei. Den Dateinamen ohne Pfad für die Datei verwenden. Beispielsweise wird für die Symboldateien `myimage.m.pm` und `myimage.t.pm` der Name `myimage` verwendet.
   attribut_feld | Feld, das das Erscheinungsbild oder Verhalten des Datentyps definiert.
   zeichenfolge | Zeichenfolge. Der Inhalt dieser Zeichenfolge wird für diesen Datentyp als Kontexthilfe angezeigt.

   Weitere Informationen hierzu können dem Abschnitt sag.crdt.mkr.7 entnommen werden.

3. Die Datenkriterien unter Verwendung folgender Syntax definieren:

   `DATA_CRITERIA kriterien_name`

       DATA_CRITERIA kriterion_name
       {
          DATA_ATTRIBUTES_NAME  daten_typ_name
          kriterien_feld
          kriterien_feld
          …
       }

   wobei die Parameter folgende Bedeutung haben:

   kriterien_name | Eindeutiger Name für diese Kriteriendefinition.
   daten_typ_name | Name, der in der Definition `DATA_ATTRIBUTES` verwendet wird.
   kriterien_feld | Feld, in dem das Kriterium für die Zuordnung einer Datei zu diesem Datentyp definiert wird.

   Weitere Informationen hierzu können dem Abschnitt sag.crdt.mkr.11 entnommen werden.

4. Die Datenbankdatei sichern.

5. Die Symbole für den Datentyp erstellen.

   Weitere Informationen hierzu können dem Abschnitt sag.crdt.mkr.8 entnommen werden.

6. Falls erforderlich, die Aktionen, die im Feld `ACTIONS` der Attributsdefinition aufgelistet sind, erstellen.

7. 'Aktionen erneut laden' in der Gruppe von Anwendungen 'Desktop- Werkzeuge' doppelklicken, um die Datenbank erneut zu laden.

### Beispiel für die Erstellung einer persönlichen Aktion und eines Datentyps

Angenommen, das System enthält eine Anwendung mit dem Namen `xgif`, die GIF-Bilder anzeigt. Normalerweise wird das Programm ausgeführt, indem folgendes eingegeben wird:

    xgif dateiname

Nun sollen GIF-Bilder auf verschiedene Weise angezeigt werden:

- Durch Doppelklicken einer GIF-Datendatei

- Durch Auswählen der Datendatei und Auswählen der Anwendung im Menü 'Ausgewählt'

  1. Eine neue Datei Standardverzeichnis`/.dt/types/GifViewer.dt` zum Bearbeiten öffnen.

  2. Die Datentypdefinitionen eingeben:

         DATA_ATTRIBUTES Gif
         {
            DESCRIPTION    Gif image file.
            ICON           GifIcon
            ACTIONS        View
         }
         DATA_CRITERIA Gif_Criteria
         {
            DATA_ATTRIBUTES_NAME   Gif
            NAME_PATTERN           *.gif
         }

  3. Die Aktionsdefinition für die Aktion 'GifViewer' eingeben:

         ACTION GifViewer
         {
            EXEC_STRING   xgif %(File)Arg_1"Gif-Datei anzeigen:"
            WINDOW_TYPE   NO_STDIO
            DESCRIPTION   Eine Datei doppelklicken oder übergeben,\
                          um die GIF-Anzeige zu starten.
         }

     Da die Definition kein Feld `ICON` enthält, verwendet die Aktion das Standardsymbol des Systems.

  4. Die folgende Zuordnungsaktion eingeben, um die Aktion GifViewer mit der Aktion View, die in der Datentypdefinition aufgelistet ist, zu verbinden. Mit dem Feld `ARG_TYPE` wird die Aktion View auf Dateien vom Typ Gif eingeschränkt.

         ACTION View
         {
            ARG_TYPE    Gif
            TYPE        MAP
            MAP_ACTION  GifViewer
         }

  5. Die Datei sichern.

  6. Auf 'Aktionen erneut laden' in der Gruppe von Anwendungen Desktop- Werkzeuge doppelklicken, um die Datenbank erneut zu lesen.

## Datenattribute eines Datentyps definieren

Die Definition `DATA_ATTRIBUTES` definiert das Erscheinungsbild und das Verhalten des Datentyps. Sie gibt den Namen des Datentyps an und bietet die Möglichkeit, zusätzlich folgendes anzugeben:

- Das Dateimanagersymbol (Feld `ICON`)

- Das Verhalten bei Doppelklicken und den Inhalt des Menüs 'Ausgewählt' (Feld `ACTIONS`)

- Die Kontexthilfe des Datentyps (Feld `DESCRIPTION
  `)

### Symbolbild angeben, das für einen Datentyp verwendet wird

Das Feld `
ICON` wird verwendet, um das Symbol anzugeben, das im Dateimanager verwendet wird. Wird kein Symbolbild angegeben, wird im Dateimanager nur eine Bezeichnung angezeigt.

Bei dem Wert des Felds `
ICON` kann es sich um folgendes handeln:

- Einen
  Dateinamen ohne Pfad.

  Der Dateiname ohne Pfad ist der Name der Datei, die das Symbolbild enthält, ohne die Dateinamenserweiterungen für Größe (`l`, `m` und `t`) und Abbildtyp (`bm` und `pm`). Beispielsweise wird für Dateien mit den Namen `GameIcon.m.pm` und `GameIcon.t.pm` der Name `GameIcon` verwendet.

  Wird der Dateiname ohne Pfad verwendet, müssen die Symboldateien in ein Verzeichnis auf den Symbolsuchpfad gebracht werden:

  - Persönliche Symbole: Standardverzeichnis`/.dt/icons`

  - Systemweite Symbole: `/etc/dt/appconfig/icons/`sprache

- Einen absoluten Pfad zu der Symboldatei, einschließlich des vollständigen Dateinamens.

  Der absolute Pfad sollte nur verwendet werden, wenn die Symboldatei sich nicht im Symbolsuchpfad befindet. Befindet sich beispielsweise die Symboldatei `GameIcon.m.pm` im Verzeichnis `/doc/projects`, das sich nicht im Symbolsuchpfad befindet, wird im Feld `ICON` der Wert `/doc/projects/GameIcon.m.pm` gesetzt.

SAG.CrDT.mkr.9 enthält eine Liste mit Symbolgrößen, die der Benutzer erstellen sollte, und den zugehörigen Dateinamen.

### Symbolnamen und Größen für Datentypsymbole

Größe in Pixel | Bitmap-Name | Pixmap-Name
48 x 48 | name`.l.bm` | name`.l.pm`
32 x 32 | name`.m.bm` | name`.m.pm`
16 x 16 | name`.t.bm` | name`.t.pm`

### Datentypen Aktionen zuordnen

Es gibt zwei Möglichkeiten, Datentypen Aktionen zuzuordnen:

- In dem Feld `
  ACTIONS` in der `DATA_ATTRIBUTES` Definition ``werden die Aktionen aufgelistet, die im Menü 'Ausgewählt' des Dateimanagers erscheinen. Die erste in der Liste aufgeführte Aktion ist die Standardaktion (Doppelklicken).

- Aktionen können mit dem Feld `ARG_TYPE`
  der Aktionsdefinition auf angegebene Datentypen beschränkt werden.

Beispielsweise erstellt die folgende Datentypdefinition einen Datentyp für spezielle, vom Systemverwalter erstellte “Readme”-Dateien mit der Benennungskonvention `*.rm`.

    DATA_ATTRIBUTES SysReadmeFile
    {
       ICON       SysReadMe
       ACTIONS    Open,Respond
    }
    DATA_CRITERIA SysReadmeFileCriteria
    {
       NAME_PATTERN           *.rm
       DATA_ATTRIBUTES_NAME   SysReadmeFile
    }

Eine spezielle Aktion 'Respond' für die Datei wird im folgenden definiert. Dadurch wird eine schreibbare Kopie der Datei im Texteditor geöffnet. Wird die Datei gesichert und der Texteditor verlassen, wird die Datei über elektronische Post an den Systemverwalter gesendet (Adresse `sysadmin@utd`).

    ACTION Respond
    {
       ARG_TYPE      SysReadmeFile
       EXEC_STRING   /bin/sh -c 'cp %Arg_1% $HOME/readme.temp;\
                     chmod +w $HOME/readme.temp;              \
                     dtpad $HOME/readme.temp;                 \
                     cat $HOME/readme.temp |                  \
                     /usr/bin/mailx sysadmin@utd;             \
                     rm $HOME/readme.temp'
       WINDOW_TYPE   NO_STDIO
    }

### Dateien auf der Grundlage des Datentyps verdecken

Ist eine Datei ein verdeckter Datentyp, wird sie nicht im Dateimanager angezeigt.

Im Feld `PROPERTIES` in der `DATA_ATTRIBUTES` Definition ``wird angegeben, ob Objekte dieses Typs verdeckt werden:

    PROPERTIES invisible

### Verhalten der Datei bei Bearbeitung angeben

Die folgenden Felder `DATA_ATTRIBUTES` werden in erster Linie von Anwendungsprogrammierern verwendet. Hier wird angegeben, wie sich Dateien verhalten, wenn der Benutzer verschiedene Desktop-Aktivitäten durchführt.

Weitere Informationen können der Publikation Common Desktop Environment Programmer's Guide entnommen werden, die Bestandteil der Entwicklerumgebungsdokumentation ist.

Feld | Beschreibung
`MOVE_TO_ACTION` | Für Container, wie zum Beispiel Verzeichnisse. Gibt an, daß eine Aktion ausgeführt wird, wenn eine Datei in einen Container dieses Datentyps verschoben wird.
`COPY_TO_ACTION` | Für Container, wie zum Beispiel Verzeichnisse. Gibt an, daß eine Aktion ausgeführt wird, wenn eine Datei in einen Container dieses Datentyps kopiert wird.
`LINK_TO_ACTION` | Gibt an, daß eine Aktion ausgeführt wird, wenn eine Datei mit einer Datei dieses Datentyps verbunden wird.
`IS_TEXT` | Gibt an, daß Dateien dieses Datentyps Text enthalten, der in einem Textfenster angezeigt werden kann.
`MEDIA` | Gibt den entsprechenden ToolTalk-Mediatyp an.
`MIME_TYPE` | Gibt den entsprechenden MIME-Typ an.
`X400_TYPE` | Gibt den entsprechenden X400-Typ an.

## Datenkriterien für einen Datentyp definieren

Die Definition `
DATA_CRITERIA` legt die Kriterien für die Zuordnung eines Objekttyps zu einer Datei oder einem Verzeichnis fest.

Folgende Kriterien können für die Objektzuordnung verwendet werden:

Kriterium | Beschreibung
Dateiname | Der Dateiname muß einem angegebenen Muster entsprechen. Das Feld `NAME_PATTERN` verwenden.
Dateiposition | Der Pfad muß einem angegebenen Muster entsprechen. Das Feld `PATH_PATTERN` verwenden.
Dateiinhalt | Ein angegebener Teil des Inhalts der Datei muß angegebenen Daten entsprechen. Das Feld `CONTENT` verwenden.
Dateimodus | Die Datei muß über die angegebenen Berechtigungen verfügen (Lesen, Schreiben, Ausführen, Verzeichnis). Das Feld MODE verwenden.
Symbolische Verbindungen | Die Datentypzuordnung erfolgt auf der Grundlage der Datei, mit der das Objekt verbunden wird.

Für einen Datentyp kann mehr als ein Kriterium verwendet werden. Aber die Kriterien `NAME_PATTERN` und `PATH_PATTERN` sollten nicht in demselben Datentyp verwendet werden.

### Datentypenzuordnung auf der Grundlage des Dateinamens

Das Feld `NAME_PATTERN` verwenden, um die erforderlichen Merkmale des Dateinamens anzugeben. Das Feld kann die folgenden Platzhalterzeichen enthalten:

? | Entspricht einem beliebigen einzelnen Zeichen.
* | Entspricht einer beliebigen Folge von Zeichen (einschließlich einer leeren Zeichenfolge).
[cc…] | Entspricht einem beliebigen der in Klammern gesetzten Zeichen (c).
[c−c] | Entspricht einem beliebigen Zeichen aus dem Bereich von c bis c.

#### Beispiele

- Die folgende Datentypdefinition erstellt einen Datentyp auf der Grundlage des Dateinamens. Der Dateiname muß mit `QS` anfangen und mit `.doc` enden.

      DATA_ATTRIBUTES QS_Doc
      {
         DESCRIPTION   Diese Datei enthält ein Dokument zum QS-Projekt.
         ICON          Word_Doc
         ACTIONS       Open
      }
      DATA_CRITERIA QS_Doc_Criteria
      {
         NAME_PATTERN           QS*.doc
         DATA_ATTRIBUTES_NAME   QS_Doc
      }

- Die folgende Definition erstellt einen Datentyp für Verzeichnisse mit dem Namen `Demo_`n, wobei n den Zahlen 0 bis 9 entspricht.

      DATA_ATTRIBUTES Demo_directory
      {
         DESCRIPTION  Dies ist ein Verzeichnis. Zum Öffnen  doppelklicken.
         ICON         Demo
         ACTIONS      OpenInPlace,OpenNewView
      }
      DATA_CRITERIA Demo_directory_criteria
      {
         NAME_PATTERN          Demo_[0-9]
         MODE                  d
         DATA_ATTRIBUTES_NAME  Demo_directory
      }

### Datentypenzuordnung auf der Grundlage der Position

Das Feld `PATH_PATTERN`
verwenden, um den Pfad anzugeben. Es können dieselben Platzhalterzeichen verwendet werden wie bei `NAME_PATTERN`.

Beispielsweise verwendet der folgende Datentyp ein Kriterium auf der Grundlage des Pfads.

    DATA_ATTRIBUTES Project_Graphics
    {
       DESCRIPTION   Grafikdatei zum QS-Projekt. Symbol doppelklicken,\
                     um die Grafik anzuzeigen.
       ICON          QSgraphics
    }
    DATA_CRITERIA Project_Graphics_Criteria
    {
       DATA_ATTRIBUTES_NAME   Project_Graphics
       PATH_PATTERN           */projects/QS/graphics/*
    }

### Datentypenzuordnung auf der Grundlage des Dateinamens und der Position

Soll ein Datentyp auf der Grundlage des Dateinamens als auch der Position erstellt werden, muß der Name in dem Wert für das Feld `PATH_PATTERN` enthalten sein.`NAME_PATTERN` und `PATH_PATTERN` können nicht in derselben Kriteriendefinition verwendet werden.

#### Beispiele

- Der im folgenden definierte Datentyp QS_Source_Files gilt für alle Dateien mit dem Namen `app` n`.c`, wobei n= 1 bis 9. Sie befinden sich in den Unterverzeichnissen von `*/projects/QS`.

      DATA_ATTRIBUTES QS_Source_Files
      {
         …
      }
      DATA_CRITERIA QS_Source_Files_Criteria
      {
         PATH_PATTERN           */projects/QS/*/app[1-9].c
         DATA_ATTRIBUTES_NAME   QS_Source_Files
      }

- Der folgende Datentyp gilt für alle Dateien im Verzeichnis `/doc/project1` mit dem Namen `chnn.xxx,` wobei n den Zahlen 0 bis 9 entspricht. xxx ist eine beliebige aus drei Zeichen bestehende Dateinamenserweiterung.

      DATA_ATTRIBUTES ChapterFiles
      {
         DESCRIPTION     Kapiteldatei für das Projektdokument.
         ICON            chapter
         ACTIONS         Edit,Print
      }
      DATA_CRITERIA Chapter_Criteria
      {
         PATH_PATTERN            /doc/project1/ch[0-9][0-9].???
         DATA_ATTRIBUTES_NAME   ChapterFiles
      }

### Dateimodi als Kriterium der Datentypzuordnung verwenden

Im Feld `
MODE` die erforderlichen Berechtigungen angeben.

Moduskriterien werden normalerweise in Kombination mit der Datentypzuordnung auf der Grundlage von Namen, Position oder Inhalt verwendet. Sie ermöglichen dem Benutzer, einen Datentyp auf eine Datei oder ein Verzeichnis einzuschränken oder die erforderlichen Lese-, Schreib- und Ausführungsberechtigungen anzugeben.

Das Feld `MODE` kann die folgenden logischen Operatoren und Zeichen enthalten:

Operator | Beschreibung
! | Logischer Operator NICHT
& | Logischer Operator UND
| | Logisches ODER

`Zeichen` | `Beschreibung`
f | Der Datentyp gilt nur für Dateien.
d | Der Datentyp gilt nur für Verzeichnisse.
r | Die Datei kann von jedem Benutzer gelesen werden.
w | In die Datei kann von jedem Benutzer geschrieben werden.
x | Die Datei kann von jedem Benutzer ausgeführt werden.
l | Die Datei stellt eine Verbindung dar.
`u` | Die Datei ist set-uid
`g` | Die Datei ist set-gid

Standardmäßig hat der Modus keinen Einfluß.

#### Beispiele

- Die folgenden Modusfelder schränken den Datentyp wie folgt ein:

  f&!w | Schreibgeschützte Dateien
  !w | Schreibgeschützte Dateien und Verzeichnisse
  f&x | Ausführbare Dateien
  f&w&x | Dateien, in die geschrieben werden kann, und die ausführbar sind
  x|!w | Dateien, die ausführbar oder schreibgeschützt sind

- Die folgende Datentypdefinition erstellt einen Datentyp für schreibgeschützte, nicht ausführbare Dateien, deren Namen der Benennungskonvention `*.doc` entsprechen. Es wird vorausgesetzt, daß eine Aktion View für den Datentyp bereits definiert wurde.

      DATA_ATTRIBUTES ReadOnlyDocument
      {
         ICON          read_only
         DESCRIPTION   Dieses Dokument kann nicht beschrieben werden.\
                       Ein Doppelklick führt den Editor mit einer\
                       schreibgeschützten Kopie der Datei aus.
         ACTIONS View
      }
      DATA_CRITERIA ReadOnlyDocument_Criteria
      {
         NAME_PATTERN           *.doc
         MODE                   !d&!x&!w
         DATA_ATTRIBUTES_NAME   ReadOnlyDocument
      }

### Datentypzuordnung auf der Grundlage des Inhalts

Im Feld `
CONTENT` wird angegeben, daß die Datentypzuordnung auf der Grundlage des Inhalts der Datei erfolgen soll. Die Datentypzuordnung auf der Grundlage des Inhalts einer Datei kann in Kombination mit der Datentypzuordnung auf der Grundlage von Namen oder Position verwendet werden.

Die Zuordnung kann auf der Grundlage einer Zeichenfolge oder des numerischen Inhalts einer Datei erfolgen. Das erste Byte in der Datei erhält die Zahl 0.

- Für die Zuordnung auf der Grundlage einer Zeichenfolge folgende Syntax verwenden:

  `CONTENT start_byte string zeichenfolge`

- Für die Zuordnung auf der Grundlage des numerischen Inhalts folgende Syntax verwenden:

  `CONTENT start_byte byte nummer`

  `CONTENT start_byte short nummer`

  `CONTENT start_byte long nummer`

- Für die Zuordnung auf der Grundlage des Inhalts eines Verzeichnisses folgende Syntax verwenden:

  `CONTENT 0 filename “datei_name”`

  Standard-C-Notation für Oktal- (beginnend mit `0`) und Hexadezimalzahlen (beginnend mit `0X`) verwenden.

Die Datentypzuordnung auf der Grundlage des Inhalts beeinträchtigt die Systemleistung. Der Benutzer sollte, wenn möglich, die Datentypzuordnung auf der Grundlage von Namen und Position verwenden.

Beispielsweise gilt der folgende Datentyp Writable_Wingz für alle Dateien mit Schreibberechtigung, die am Anfang der Datei die Zeichenfolge `WNGZ` enthalten.

    DATA_ATTRIBUTES Writable_Wingz
    {
       …
    }

    DATA_CRITERIA Writable_Wingz_Criteria
    {
       CONTENT                 0 string WNGZ
       MODE                    w&!d
       DATA_ATTRIBUTES_NAME    Writable_Wingz
    }

### Datentypen mit mehreren unabhängigen Kriterien erstellen

Es kann ein Datentyp mit mehreren unabhängigen Kriterien erstellt werden, d.h. die Datei wird dem Datentyp zugeordnet, sofern er einem (oder beiden) Kriterium entspricht.

1. Die Definition `DATA_ATTRIBUTES` für den Datentyp erstellen.

2. Eine `
   DATA_CRITERIA` Definition für jedes Kriterium erstellen.

   Das Feld `DATA_ATTRIBUTES_NAME` verwenden, um jedes Kriterium mit derselben Definition `DATA_ATTRIBUTES` zu verbinden.

Beispielsweise erstellen die folgenden Definitionen den Datentyp Mif . Die Datentypzuordnung erfolgt auf der Grundlage von Namen oder Inhalt.

    DATA_ATTRIBUTES Mif
    {
       ICON          Frame
       ACTION_LIST   Open,Print
    }

    DATA_CRITERIA Mif_Name_Criteria
    {
       DATA_ATTRIBUTES_NAME   Mif
       NAME_PATTERN           *.mif
    }

    DATA_CRITERIA Mif_Content_Criteria
    {
       DATA_ATTRIBUTES_NAME   Mif
       CONTENT                1 zeichenfolge MIFFile
    }

## Sprachenabhängige Datentypen erstellen

Der Suchpfad für Datentypen enthält sprachenabhängige Positionen. Das Desktop verwendet den Wert von
`LANG`, um festzulegen, welche Positionen nach Datentypdefinitionen durchsucht werden.

### Positionen für sprachenabhängige Datentypen

Sprachenabhängige Datentypdefinitionen müssen in die entsprechenden sprachenabhängigen Verzeichnisse im Aktionssuchpfad gestellt werden.

Der Standardsuchpfad lautet:

- Persönliche Aktionen: Standardverzeichnis`/.dt/types`

- Systemweite Aktionen: `/etc/dt/appconfig/types/`sprache

- Integrierte Aktionen: `/usr/dt/appconfig/types/`sprache

### Datentypen sprachenabhängig erstellen

1. Eine Datei in dem zugehörigen sprachenabhängigen Verzeichnis erstellen (zum Beispiel in `/etc/dt/appconfig/types/japanese`).

2. Die Datentypdefinition in die sprachenabhängige Konfigurationsdatei kopieren.

3. Ein oder mehrere Felder der Datentypdefinition sprachenabhängig anpassen.