IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Valider XML Discussion :

Est ce possible? [XSD]


Sujet :

Valider XML

  1. #1
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 268
    Points
    268
    Par défaut Est ce possible?
    Bonjour, dans le cadre de l'élaboration d'une petite librairie Java, j'utilise un fichier DTD présentement pour valider l'arborescence d'un fichier XML. Je me posais la question si cétait possible avec XSD de forcer un attribut à etre present au minimum 1x dans un certain noeud parent-enfant exemple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <fetch destination="optionel"> 
    		<file>beer1.png</file>
    		<file destination="optionel">readme.txt</file>
    </fetch>
    L'attribut destination est obligatoire, il doit etre au minimum present sois dans le noeud fetch ou file. Il peut tres bien etre dans les deux de cette facon ma librairie va considerer que l'attribut destination dans le noeud file surcharge celui du noeud fetch par exemple.

    Il doit au minimum etre à un des deux endroits. Voila !

    Merci d'avance !

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Nope. Ce genre de contrainte est de la sémantique plus que de la grammaire, et XSD ne s'occupe que de la grammaire.

    Seul la validation applicative peut vérifier ce genre de contraintes. Pas la validation XSD.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre émérite Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Points : 2 736
    Points
    2 736
    Par défaut
    @javan00b
    Ce que vous pouvez faire c'est de mettre l'attribut destination en l'élément fetch s'en prendre une valeur défaut comme "." (ou quelque uri relatif ou absolu, peu importe au départ) qui peut être comprise éventuellement par le moteur validateur (comme par exemple la répertoire de base) de l'application.

    Par exemple, comme ça conceptuellement.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <xs:element name="fetch" type="fetchType" />
    <xs:complexType name="fetchType">
        <xs:sequence>
            <xs:element name="file" maxOccurs="unbounded" type="fileType" />
        </xs:sequence>
        <xs:attribute name="destination" type="xs:anyURI" default="." />
    </xs:complexType>
    <xs:complexType name="fileType">
        <xs:simpleContent>
            <xs:extension base="xs:anyURI">
                <xs:attribute name="destination" type="xs:anyURI" />
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    182
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2009
    Messages : 182
    Points : 268
    Points
    268
    Par défaut
    Je crois que c'est la meilleur solution en effet, Merci pour vos réponses.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Est-il possible de bloquer le reverse engineering ?
    Par fugi dans le forum Assembleur
    Réponses: 39
    Dernier message: 31/07/2007, 02h33
  2. [IRC] -> Est-ce possible avec JBuilder ?
    Par MaTHieU_ dans le forum JBuilder
    Réponses: 4
    Dernier message: 26/08/2003, 17h24
  3. Réponses: 3
    Dernier message: 29/07/2003, 09h38
  4. Réponses: 2
    Dernier message: 16/05/2003, 10h14
  5. [CR] Est il possible de créer des univers avec Seagate Info?
    Par Frank dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 27/06/2002, 15h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo