Im ersten Schritt der Datenmodellierung mittels DFDL untersuchen Sie die logische Struktur Ihrer Daten.
- Komplexe Strukturen erkennen Komplexe Strukturen entsprechen den komplexen Typen im Modell. Für alle Daten zusammen gibt es einen übergeordneten komplexen Typ. Wenn die Daten Unterstrukturen enthalten, so sind diesen jeweils ebenso komplexe Typen zugeordnet. So entspricht jede Strukturebene eines COBOL-Copybooks oder jede Zeile einer CSV-Nachricht einem Element mit komplexem Typ.
- Einfache Elemente (Items) erkennen Innerhalb der komplexen Typen befinden sich einfache Elemente (Items), von denen jedes einen logischen Datentyp hat. Einfache Elemente (Items) entsprechen einfachen Elementen (Elements). So entspricht jedes Feld eines COBOL-Copybooks mit einer PIC-Klausel oder jeder kommagetrennte Wert einer CSV-Nachricht einem Element mit einfachem Typ.
- Anordnung der Struktur erkennen Die Anordnung bestimmt, ob die Gruppe innerhalb eines komplexen Typs eine Folge oder eine Auswahl ist. Bei einer Auswahl darf nur eines der aufgeführten Elemente vorkommen. Beispiele sind Unions (in C) und REDEFINES (in COBOL).
- Struktur- und Elementkardinalität erkennen Die Kardinalität bestimmt die Werte für die logischen Eigenschaften minOccurs und
maxOccurs Ihrer Elemente.
- Ist ein Element erforderlich (minOccurs != 0) oder optional (minOccurs =
0)?
- Ist ein Element ein Array (maxOccurs > 1)?
- Falls ja, ist die Anzahl der Vorkommen festgelegt (minOccurs = maxOccurs) oder beliebig (minOccurs != maxOccurs)?
- Ist die Anzahl der Vorkommen unbegrenzt (maxOccurs = unbounded)?
- Auf Null festlegbare Elemente und Standardwerte erkennen Für einige Elemente ist eventuell ein bestimmter Wert außerhalb des gültigen Bereichs erforderlich. In diesem Fall müssen Sie auf Null festlegbar sein. Ein numerisches Feld in einem COBOL-Copybook kann zum Beispiel auf SPACES gesetzt sein, was für eine DFDL-Zahl unzulässig ist. Einige erforderliche Elemente sind in den Daten eventuell leer, in welchem Fall ein Standardwert bereitgestellt werden kann.
- Ermitteln, ob Komponenten wiederverwendet werden können Falls bestimmte Typen häufig verwendet werden, wäre es überlegenswert, diese global zu definieren. Das Gleiche gilt entsprechend für häufig verwendete Elemente.

Die Abbildung zeigt als Beispiel eine Datei mit Mitarbeiterdatensätzen. Diese Datei kann mit DFDL mit dem übergeordneten komplexen Element employees und dem darin enthaltenen komplexen Element employeeRecord modelliert werden. Das Element employeeRecord muss beliebig oft wiederholt werden können, weshalb 'maxOccurs' auf unbounded gesetzt ist.
Das Element
employeeRecord selbst ist eine Folge einfacher Elemente:
- name mit Typ xs:string
- age mit Typ xs:int
- dob mit Typ xs:date
- permanent mit Typ xs:boolean
- salary mit Typ xs:decimal
Das Element
salary ist nur vorhanden, wenn
permanent auf
Y gesetzt ist. Es ist also optional, weshalb 'minOccurs' auf
0 gesetzt ist. Alle anderen einfachen Elemente sind erforderlich und haben 'minOccurs'
1.
Im nächsten Schritt konfigurieren Sie die DFDL-Anmerkungen (siehe
DFDL-Anmerkungen konfigurieren).