Le modèle de document (DocumentModel
) est chargé à partir de son URL renseignée par l'option --model=<DOCUMENT_MODEL_URL>
.
Le validateur prépare un répertoire de travail pour la validation où il écrira :
- Le rapport de validation (
validation/validation.jsonl
) avec une erreur au format JSON par ligne (voir JSON Lines) - Un répertoire contenant les fichiers normalisés (
validation/DATA
)
Le validateur liste les fichiers (DocumentFile
) ayant des extensions connues dans le document à valider (dossier --input
).
Le validateur recherche le modèle de fichier (FileModel
) correspondant aux DocumentFile
trouvés à l'étape précédente.
Le validateur effectue une validation sur chaque DocumentFile
ayant un FileModel
associé.
Dans le cas des tables (FileModel
de type TableModel
), le validateur valide le contenu en fonction du FeatureType
décrivant la table.
On soulignera que la validation des types d'attributs repose sur la possibilité de convertir une valeur dans le type décrit. Pour résumer : false
, f
et 0
sont des booléens, tutu
n'est pas un booléen.
Les tables sont chargées dans une base de validation pour les contrôles d'ensemble sur les données.
Les contraintes d'ensemble (unicité, référence,...) sont validées à l'aide de la base de validation.
Le validateur génère un dossier validation/DATA
contenant "à plat" tous les fichiers validés et normalisés.