Précédent   Forum du club des développeurs et IT Pro > Autres langages > XML/XSL et SOAP > Valider
Valider W3C XML Schemas, DTD, Relax NG, Schematron...) et tout ce qui permet de les mettre en oeuvre. Avant de poster -> FAQ XML, Sources XML
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 06/08/2012, 10h48   #1
Neajo
Invité de passage
 
Inscription : août 2012
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2012
Messages : 2
Points : 0
Points : 0
Par défaut Règle sur présence d'un élément

Salut tous,

Je cherche une solution pour définir la des règles sur le présence d'une balise. On peut utiliser nillable ou minOccurs pour définir si une balise peut ne pas être présente, mais comment définir des règles indiquant dans quel cas la balise doit être là ou pas ?

Mon cas de règles est assez simple puisque j'aimerais définir pour chaque balise un niveau de droit qui correspond au rôle de l'utilisateur. Par exemple, j'aimerais définir que la balise my-tag est accessible à super-admin et pas à admin et other-tag accessible à admin et user.

Comment feriez-vous ? J'ai pensé aux solutions suivantes :
- Ajouter un attribut à tous mes éléments. Mais la valeur de l'attribut va se retrouvé dans le XML alors que je n'en ai pas besoin. C'est juste celui qui génère le document XML qui doit respecter ces règles, après on en a plus besoin
- Ajouter cette règle en commentaire de mon élément mais ce n'est pas très formel
- Modifier le schéma de XSD pour pouvoir ajouter un attribut comparable à nillable. Mais est-ce possible de modifier le schéma du schéma standard W3C ? Et quelle sont les conséquences ?
Neajo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2012, 11h26   #2
thelvin
Modérateur
 
Inscription : septembre 2004
Messages : 7 305
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 7 305
Points : 10 638
Points : 10 638
Envoyer un message via Skype™ à thelvin
Citation:
Envoyé par Neajo Voir le message
Je cherche une solution pour définir la des règles sur le présence d'une balise. On peut utiliser nillable ou minOccurs pour définir si une balise peut ne pas être présente, mais comment définir des règles indiquant dans quel cas la balise doit être là ou pas ?
Avec XML Schema on peut pas. Si on définit un élément quelque part, c'est qu'il a le droit d'être là, point.

Mais il y a des techniques. Par exemple, si deux éléments différents, <user> et <admin>, ont des contenus similaires mais pas tout à fait identiques, on peut définir l'un comme étant une extension ou restriction de l'autre.

Pour un besoin comme le tien, c'est un besoin sémantique. "Tel genre de users a une gestion de droits, mais pas tel autre."
La sémantique c'est pas le boulot de XML Schema, il n'est pas prévu pour et quand on le tord pour qu'il le fasse, il le fait mal.
XML Schema est là pour vérifier la grammaire, et seulement ça : les éléments s'emboîtent les uns les autres correctement.

En principe tu n'as donc pas vraiment le choix : c'est le programme générateur, et rien d'autre, qui décide si un élément a le droit d'être là ou non. Les autres programmes peuvent très bien décider de vérifier aussi de leur côté, avant de faire un autre traitement.
thelvin est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 06/08/2012, 13h40   #3
Neajo
Invité de passage
 
Inscription : août 2012
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2012
Messages : 2
Points : 0
Points : 0
Merci de ta réponse.

Il va falloir que je trouve la moins pire des solutions pour réussir à garder une consistance entre le schéma et ces règles puisque je ne peux pas les mettre dedans.
Neajo est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 11h59.


 
 
 
 
Partenaires

Hébergement Web