Différences
Ci-dessous, les différences entre deux révisions de la page.
Prochaine révision | Révision précédente | ||
serveurscrutari:config:validation [2017/01/19 19:00] vincent créée |
serveurscrutari:config:validation [2023/03/05 23:07] (Version actuelle) vincent [DTD] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== 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. Deux 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 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 !!<navigation>!!, il contient des éléments !!<mandatory>!! et des éléments !!<check>!!. | + | 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//) | ||
- | Un élément //<<mandatory>>// est vide et possède l'unique attribut !!@field!! qui contient le nom du champ. | + | La liste des éléments disponibles est donc la suivante : |
- | Un élément //<check>// est vide et possède 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. | + | * !!<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 ===== | ===== Exemple ===== | ||
- | Ce fichier indique les deux 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 field="geo:city"/> | ||
+ | <unique field="sct:website"/> | ||
+ | <unique field="sct:thumbnail"/> | ||
</validation> | </validation> | ||
</code> | </code> | ||
Ligne 35: | Ligne 48: | ||
<!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)> | ||
+ | <!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> | ||
</code> | </code> | ||