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>
serveurscrutari/config/validation.txt · Dernière modification: 2023/03/05 23:07 par vincent
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0