Table des matières
Fichier validation.xml : définir quelques règles de validation des données
Le fichier validation.xml permet de définir des règles de validation qui vont s'appliquer au contenu des fiches. Cinq règles sont disponibles :
- mandatory : vérifie qu'un champ est présent et ne conserve pas la fiche s'il est absent (ne s'applique qu'à la géolocalisation pour le moment)
- length : vérifie la longueur d'une chaine de caractères et la coupe si nécessaire (ne s'applique qu'au sous-titre pour le moment)
- unique : ne conserve que la première valeur (ne s'applique qu'aux attributs)
- format : vérifie le format des valeurs (ne s'applique qu'aux attributs)
- split : découpe des valeurs trop longues (ne s'applique qu'aux attributs)
Structure du format XML
L'élément racine est l'élément <validation>. Il contient des éléments dont le nom reprenne ceux des cinq règles édictées ci-dessus. Tous ces éléments nécessite un attribut @field qui est le nom du champ sur lequel s'applique la règle. Les noms de champs acceptés sont :
- soustitre : champ « Sous-titre »
- geoloc : champ « géolocalisation »
- namespace:localkey: le nom complet de l'attribut (pour des raisons historiques, il est également possible d'indiquer le nom avec deux attributs @ns contenant la valeur de namespace et @key contenant la valeur de localkey)
La liste des éléments disponibles est donc la suivante :
- <mandatory> : vide avec l'unique attribut @field qui contient le nom du champ obligatoire (geoloc pour la géolocalisation)
- <length> : vide avec trois attributs : @field le nom du champ, @min la taille minimale de conservation, @max la taille maximale (quand une chaine est plus grande que @min, elle est coupée avant @max à un signe de fin de phrase s'il existe (l'ancien nom <check> est accepté)
- <unique> : vide avec l'unique attribut @field qui contient le nom du champ qui doit avoir une seule valeur
- <format> : vide avec deux attributs : @field le nom du champ et @type, le type de format de données attendu. Un seul type de données est disponible pour le moment : url indiquant que la valeur doit être une URL valide
- <split> : vide avec trois attributs : @field le nom du champ, @near l'index qui sert de point de départ pour chercher la bonne coupure (un point suivi d'une espace) (par défaut : 350) et @threshold le seuil à partir duquel une coupure est réalisée (supérieur à @near, par défaut 500)
Exemple
Ce fichier indique lesrègles prises en compte pour le moment :
<validation> <mandatory field="geoloc"/> <length field="soustitre" min="150" max="250"/> <unique field="geo:city"/> <unique field="sct:website"/> <unique field="sct:thumbnail"/> </validation>
DTD
<!ELEMENT validation (mandatory*|check*)> <!ELEMENT mandatory (EMPTY)> <!ATTLIST mandatory field NMTOKEN #REQUIRED> <!ELEMENT length (EMPTY)> <!ATTLIST length field NMTOKEN #REQUIRED> <!ATTLIST length min NMTOKEN #REQUIRED> <!ATTLIST length max NMTOKEN #REQUIRED> <!ELEMENT unique (EMPTY)> <!ATTLIST unique field NMTOKEN #REQUIRED> <!ELEMENT format (EMPTY)> <!ATTLIST format field NMTOKEN #REQUIRED> <!ATTLIST format type NMTOKEN #REQUIRED> <!ELEMENT split (EMPTY)> <!ATTLIST split field NMTOKEN #REQUIRED> <!ATTLIST split near NMTOKEN> <!ATTLIST split treshold NMTOKEN>