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 :

Elément ayant plusieurs types [XSD]


Sujet :

Valider XML

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Elément ayant plusieurs types
    Bonjour,

    Actuellement en Stage, je suis en train de rédiger un fichier XSD à partir d'un fichier XML. Cependant, étant novice sur ce langage, je rencontre actuellement un gros problème.

    Dans le fichier xml, un une balise nommée "Parameter" contient une ou plusieurs balises "Value". Cette balise "Parameter" se répète plusieurs fois afin d'identifier plusieurs valeurs de paramètres différents avec leurs données correspondante. Dans cette balise "Parameter", la balise "Value" peut être soit de type string et donc contenir du texte, soit de type décimal pour contenir une valeur. Dans la même balise "Parameter", la balise"Value" ne peux avoir qu'un type mais comme la balise "Parameter" se répète plusieurs fois, la balise "Value" qui est donc aussi répétée prend parfois un type et parfois l'autre. Dans le cas ou la balise"Value" est un décimal, elle n'apparaît qu'une fois dans la balise "Parameter", sinon elle peut apparaître plusieurs fois.

    Mon problème est donc qu'en écrivant mon fichier XSD de façon a le rendre le plus facilement modifiable afin de faire des mise à jour et de l'entretient, je crée un "complexeType" de nom "Parameter" dans lequel je crée une séquence contenant un élément "Value" dont le type doit être fait selon un choix.

    Voilà ce que ça donne concrètement:

    Ce que je veux en résultat sur le fichier XML (le fichier dont je doit écrire le XSD):



    Et voici ce que j'avais écris actuellement mais qui ne fonctionne pas:



    Si quelqu'un a un solution ça m'aiderait grandement car sinon je vais devoir passer tout en string et donc le contrôle sur les données sera moins important.

    En vous remerciant par 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
    Chose rare, vu que ton XML et ton XSD sont faits uniquement pour bosser ensemble, tu peux utiliser ce que dit la FAQ : Est-il possible de faire dépendre le contenu d'un élément de la valeur d'un attribut ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    L'esprit de cette solution correspond tout à fait à mon problème. La seule chose qui me pose problème ici étant que je ne dois pas modifier le document XML étant donné qu'il est fourni et rédigé par un intervenant extérieur. Mon but est uniquement d'en décrire les règles et donc de rédiger le XSD. Or dans la solution que vous me proposez, il est nécessaire d'avoir la ligne suivante dans les attributs de la balise sur le XML:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    xsi:type"myElementType-1"

  4. #4
    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
    En effet. Je croyais que, contrairement à la plupart des cas, cela ne te dérangerait pas de modifier le XML de cette façon.

    Si tu ne peux pas modifier le XML, alors ce n'est pas possible. Ce que tu demandes est une validation de type sémantique, et XSD ne s'occupe que de la validation grammaticale. Remplacer le DataType par un indice XSD aurait ramené ça à une question de grammaire. Utiliser des éléments différents pour les types de valeurs différents, aussi.

    Mais c'était les seules solutions.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juillet 2013
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juillet 2013
    Messages : 7
    Points : 5
    Points
    5
    Par défaut
    Ok. Je te remercie en tout cas de ton aide précieuse.

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

Discussions similaires

  1. Travailler avec une méthode ayant plusieurs types de retour
    Par fafoula dans le forum Général Java
    Réponses: 4
    Dernier message: 27/07/2012, 10h23
  2. Réponses: 5
    Dernier message: 13/08/2008, 07h19
  3. [VB6] Spécifier plusieurs types de fichiers avec FileSearch
    Par yaya54 dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 31/01/2008, 15h59
  4. [HTML/CSS] Plusieurs types de liens.
    Par will-scs dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 23/08/2005, 17h12
  5. Renvoyer un OUTPUT de plusieurs types
    Par omlip dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 13/08/2004, 10h44

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