Publicité
+ Répondre à la discussion
Affichage des résultats 1 à 3 sur 3
  1. #1
    Invité de passage
    Inscrit en
    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 ?

  2. #2
    Modérateur

    Inscrit en
    septembre 2004
    Messages
    9 870
    Détails du profil
    Informations forums :
    Inscription : septembre 2004
    Messages : 9 870
    Points : 16 351
    Points
    16 351

    Par défaut

    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.

  3. #3
    Invité de passage
    Inscrit en
    août 2012
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : août 2012
    Messages : 2
    Points : 0
    Points
    0

    Par défaut

    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.

Liens sociaux

Règles de messages

  • Vous ne pouvez pas créer de nouvelles discussions
  • Vous ne pouvez pas envoyer des réponses
  • Vous ne pouvez pas envoyer des pièces jointes
  • Vous ne pouvez pas modifier vos messages
  •