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)
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>