La communauté ALL HTML c'est 58009 membres à ce jour dont 1 inscrits aujourd'hui et 30 depuis une semaine.

  • imprimer
  • aide

Forum de discussions « XML - XSL - WML (WAP) - MATHML »

Retrouvez les publications relatives à ces discussions dans nos rubriques MATHML, WML, XML, XSL.

De l'aide pour valider ma DTD ?

liste des forums liste des discussions Participer à la discussion

Photo de nonopai Message publié le jeudi 04 octobre 2007 à 17 h 00 par nonopai.
Bonjour,

J'ai déjà travaillé avec des flux XML, mais par contre, c'est la première fois que je m'intéresse à la création d'une DTD. J'ai besoin d'imposé à mon document XML une certaine rigueur.

J'ai lu pas mal de documents sur le net, mais je pense que consulter la communauté restera le moyen qui me permettra d'être sur de mon coup ;)
Donc, est-ce qu'il serait possible que quelqu'un me dise si la syntaxe de ma DTD copiée-collée ci après est correcte ?

<! ELEMENT filtre (regle+)>
<! ELEMENT regle (nom,condition+)>
<! ELEMENT nom (#PCDATA)>
<! ELEMENT condition (masque,valeur)>
<! ELEMENT masque EMPTY>
<! ATTLIST masque text1 CDATA #REQUIRED
num2 CDATA #REQUIRED
num3 CDATA #FIXED"0">
num4 CDATA #FIXED"0">
num5 CDATA #FIXED"0">
num6 CDATA #FIXED"0">
<! ELEMENT valeur (#PCDATA)>
<! ATTLIST valeur operateur (=|!=|<|>|<=|>=|eq|ne|lt|gt|le|ge|=~) #REQUIRED>

J'ai également une 2nd question:
J'aimerais bien imposé à mes attributs num2 -> num6 qu'ils soient des numéraux et non pas des chaînes de caractères sans contraintes (définies par CDATA). Est-ce qu'il y a un autre mot clé, ou un moyen détourné ?

Merci par avance pour votre aide :)
Photo de nonopai Message publié le lundi 08 octobre 2007 à 14 h 29 par nonopai.
Alors, je m'auto-réponds, puisque j'ai trouvé quelques éléments qui pourraient servir à d'autres.

Voici la DTD corrigée (enfin presque:p):
<!DOCTYPE filtre [
<!ELEMENT filtre (regle+)>
<!ELEMENT regle(nom,condition+)>
<!ELEMENT nom (#PCDATA)>
<!ELEMENT condition (mask,value)>
<!ELEMENT masque EMPTY>
<!ATTLIST masque text1 CDATA #REQUIRED
num2 CDATA #REQUIRED
num3 CDATA "0"
num4 CDATA "0"
num5 CDATA "0"
num6 CDATA "0">
<!ELEMENT valueur (#PCDATA)>
<!ATTLIST valeur operateur CDATA #REQUIRED>
<!--<!ATTLIST value operateur (=|!=|<|>|<=|>=|eq|ne|lt|gt|le|ge|=~) #REQUIRED>-->
]>

A priori, il fallait un espace derrière le mot clé FIXED, et en faite, je me suis aperçu qu'il n'était même pas obligatoire pour rendre l'attribut optionel tout en précisant une valeur par défaut si celui-ci était absent.
J'avais aussi laisser trainer quelques '>'.

Par contre, je n'ai pas trouvé de solution pour mettre comme valeur possible pour l'attribut 'operateur' le caractère égal '=' ou '<' ou '>'. Si quelqu'un a une solution, je suis preneur.
Je n'ai pas non plus trouvé de solution pour imposer des chiffres comme valeur des attributs num2->num6.

Merci

liste des forums liste des discussions Participer à la discussion

Vous devez obligatoirement vous identifier en tant que membre pour participer à cette discussion.

ACCÉS COMMUNAUTÉ

Rejoignez ALL HTML

Publiez vos articles, actualités, communiqués ... Donnez votre avis, partagez votre réseau, rencontrez d'autres membres et participez à la vie de la communauté.

Les 5 dernières discussions

agenda