La primera etapa de un método para crear modelos de datos mediante DFDL
implica examinar la estructura lógica de los datos.
- Identifique las estructuras complejas. Las estructuras complejas se corresponden con los tipos complejos del modelo.
Habrá un tipo complejo global para el propio conjunto total de los datos. Si los
datos contienen subestructuras, cada subestructura tiene un tipo complejo. Por
ejemplo, cada nivel de estructura en un libro de copias COBOL, o cada fila distinta
de un mensaje CSV, se corresponde con un elemento de tipo complejo.
- Identifique los elementos simples. Los elementos simples aparecen en cada tipo complejo y cada uno tiene un tipo
de datos lógico. Los elementos simples se corresponden con elementos simples. Por
ejemplo, cada campo de un libro de copias COBOL con una cláusula PIC, o cada valor
separado por comas en un mensaje CSV, se corresponde con un elemento de tipo simple.
- Identifique la ordenación de la estructura. La ordenación determina si el grupo dentro de un tipo complejo es una
secuencia o una opción. En una opción, solo puede aparecer uno de los elementos
listados. Por ejemplo, uniones C y REDEFINES de COBOL.
- Identifique la cardinalidad de la estructura y de los elementos. La cardinalidad proporciona los valores de las propiedades lógicas
minOccurs y maxOccurs de los elementos.
- ¿Es un elemento necesario (minOccurs != 0) u opcional
(minOccurs = 0)?
- ¿Es un elemento una matriz (maxOccurs > 1)?
- Si es así, ¿hay un número fijo (minOccurs = maxOccurs) o un
número variable (minOccurs != maxOccurs) de apariciones?
- ¿Puede el número de apariciones ser ilimitado (maxOccurs = unboundePd)?
- Identifique los elementos nillable y los valores predeterminados. Algunos elementos pueden necesitar llevar un valor de fuera de rango especial,
en cuyo caso deben tener nulos permitidos. Por ejemplo, es posible que a veces un campo numérico en un libro de
copias COBOL se establezca en SPACES, lo que no está permitido para un número DFDL.
Es posible que algunos elementos necesarios estén vacíos en los datos, en cuyo caso
se puede proporcionar un valor predeterminado.
- Considere si se pueden reutilizar algunos componentes. Si alguno de los tipos es común, considere crear tipos complejos o simples
globales. Si algunos de los elementos es común, considere crear elementos globales.

Como ejemplo, la imagen muestra un archivo de registros de empleados. Este archivo
se podría modelar utilizando DFDL como un elemento complejo global
employees que contiene un elemento complejo
employeeRecord. El elemento employeeRecord se
repite un número arbitrario de veces, por lo que maxOccurs se establece en
unbounded.
employeeRecord es una secuencia
de elementos simples:
- name de tipo xs:string
- age de tipo xs:int
- dob de tipo xs:date
- permanent de tipo xs:boolean
- salary de tipo xs:decimal.
El
elemento
salary solo está presente cuando
permanent es
Y, por lo que es opcional y tiene
minOccurs
0. Todos los demás elementos simples son necesarios y
tienen minOccurs
1.
La etapa siguiente es configurar las anotaciones DFDL:
Configuración de las anotaciones DFDL