Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente |
serveurscrutari:config:validation [2017/11/02 11:39] – vincent | serveurscrutari:config:validation [2023/03/05 23:07] (Version actuelle) – [DTD] vincent |
---|
====== Fichier validation.xml : définir quelques règles de validation des données====== | ====== 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. Trois règles sont disponibles : | 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) | * //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) |
* //check// : 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) | * //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 conserver que la première valeur d'un attribut | * //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 ===== | ===== Structure du format XML ===== |
| |
L'élément racine est l'élément !!<validation>!!, il contient les éléments suivants en nombre illimité : | 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) | * !!<mandatory>!! : vide avec l'unique attribut !!@field!! qui contient le nom du champ obligatoire (//geoloc// pour la géolocalisation) |
* !!<check>!! : 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. | * !!<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 deux attributs : !!@ns!! l'espace de nom de l'attribut et !!@key!! la clé locale | * !!<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 ===== | ===== Exemple ===== |
| |
Ce fichier indique les trois règles prises en compte pour le moment : | Ce fichier indique lesrègles prises en compte pour le moment : |
| |
<code xml> | <code xml> |
<validation> | <validation> |
<mandatory field="geoloc"/> | <mandatory field="geoloc"/> |
<check field="soustitre" min="150" max="250"/> | <length field="soustitre" min="150" max="250"/> |
<unique ns="geo" key="city"/> | <unique field="geo:city"/> |
<unique ns="sct" key="website"/> | <unique field="sct:website"/> |
<unique ns="sct" key="thumbnail"/> | <unique field="sct:thumbnail"/> |
</validation> | </validation> |
</code> | </code> |
<!ATTLIST mandatory field NMTOKEN #REQUIRED> | <!ATTLIST mandatory field NMTOKEN #REQUIRED> |
| |
<!ELEMENT check (EMPTY)> | <!ELEMENT length (EMPTY)> |
<!ATTLIST check field NMTOKEN #REQUIRED> | <!ATTLIST length field NMTOKEN #REQUIRED> |
<!ATTLIST check min NMTOKEN #REQUIRED> | <!ATTLIST length min NMTOKEN #REQUIRED> |
<!ATTLIST check max NMTOKEN #REQUIRED> | <!ATTLIST length max NMTOKEN #REQUIRED> |
| |
<!ELEMENT unique (EMPTY)> | <!ELEMENT unique (EMPTY)> |
<!ATTLIST unique ns NMTOKEN #REQUIRED> | <!ATTLIST unique field NMTOKEN #REQUIRED> |
<!ATTLIST unique key 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> |
| |
</code> | </code> |
| |