La primera fase de un enfoque de modelado de datos mediante DFDL implica el análisis de la estructura lógica de los datos.
Procedimiento
- Identifique las estructuras complejas.
Las estructuras complejas corresponden a los tipos complejos del modelo. Habrá un tipo complejo global para el propio conjunto de todos los datos. Si los datos contienen subestructuras, cada una de ellas tendrá un tipo complejo. Por ejemplo, cada nivel de estructura de una COPY de COBOL, o cada fila diferente de un mensaje CSV, se corresponde con un elemento de tipo complejo.
- Identifique elementos simples.
Los elementos simples aparecen dentro de cada tipo complejo, y cada uno tiene un tipo de datos lógico. Los elementos simples corresponden a elementos simples. Por ejemplo, cada campo de una COPY de COBOL con una cláusula PIC, o cada valor separado por coma de 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 suceder uno de los elementos listados. Son ejemplos las uniones de C y las REDEFINES de COBOL.
- Identifique la estructura y la cardinalidad de los elementos.
La cardinalidad proporciona los valores para la
minOccurs
y
maxOccurs
propiedades lógicas de los elementos.
- Es un elemento necesario (
minOccurs != 0
) o facultativo (minOccurs = 0
)?
- Es un elemento de una matriz (
maxOccurs > 1
)?
- Si es así, hay un número fijo de apariciones (
minOccurs
= maxOccurs
) o un número variable de apariciones (minOccurs
!= maxOccurs
)?
- ¿Puede el número de apariciones ser ilimitado (
maxOccurs
= unbounded)
?
- Identifique los elementos que pueden ser nulos 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, puede que un campo numérico en una COPY de COBOL esté en ocasiones establecido a SPACES, lo que no es legal en un número DFDL. Puede que algunos elementos obligatorios estén vacíos en los datos, en cuyo caso puede proporcionarse un valor predeterminado.
- Considere si hay algún componente que pueda reutilizarse.
Si alguno de los tipos es habitual, considere la creación de tipos simples o complejos globales. Si alguno de los elementos es habitual, considere la creación de elementos globales.
Ejemplo
Como ejemplo, la imagen muestra un archivo de registros de empleado. Este archivo podría modelarse utilizando DFDL como un elemento complejo globalemployees
que contiene un elemento complejoemployeeRecord
.employeeRecord
El elemento repite un número arbitrario de veces, por lo que maxOccurs se establece enunbounded
.
El
employeeRecord
es una secuencia de elementos simples:
name
De tipo xs:string
age
De tipo xs:int
dob
De tipoxs:date
permanent
De tipo xs:boolean
salary
De tipoxs:decimal
.
El
salary
El elemento sólo 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
.
Qué hacer a
continuación
La siguiente etapa es configurar las anotaciones DFDL: Configuración de las anotaciones DFDL