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

Format d'échange (XML, JSON...) Java Discussion :

[JAXB / XJC] Surcharge d'un élément de schéma XSD


Sujet :

Format d'échange (XML, JSON...) Java

  1. #1
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut [JAXB / XJC] Surcharge d'un élément de schéma XSD
    Bonjour,

    Je dois traiter un flux de données XML pour lequel on me fournit un schéma XSD.

    Ce serait parfait si le flux était conforme à son XSD mais c'est loin d'être le cas (obligé de prendre en compte tout un tas d'anomalies).
    Par contre, dans le XSD j'ai un élément DATENAISSANCE de type xsd:date pour lequel le type xsd:string est en réalité nécessaire.

    Si tel est le cas, c'est tout simplement parce que le flux contient des valeurs pour cet élément qui ne sont pas des dates valides (ex : 32/13/1950, du fait que certaines personnes ne soient pas en mesure de connaître leur date de naissance exacte).

    Solution actuelle : modifier le fichier XSD, en remplaçant date par string, puis générer mes classes Java à l'aide de xjc, rendant ainsi possible le parsing des dates invalides.

    Si le schéma n'évoluait pas, ce ne serait pas bien grave mais ce n'est pas le cas. Ce qui veut dire qu'à chaque nouveau schéma reçu, il ne faut pas oublier de rectifier la définition de l'élément DATENAISSANCE...

    Plusieurs solutions s'offrent donc à moi :

    1. Rouspéter assez fort pour que le XSD soit fourni de manière cohérente avec ce qui se trouve dans le flux (hors de porté à court terme je pense...)
    2. Wrapper ou surcharger le XSD d'origine avec un XSD supplémentaire dans lequel l'élément en question est de type string.
    3. Trouver un moyen pour que la parsing JAXB parse malgré tout l'élément DATENAISSANCE, au lieu de renvoyer null lorsque la date n'est pas valide.
    4. Une autre solution à laquelle je n'aurais pas pensé...

    Actuellement je me concentre sur la solution 2 car il me semble être la plus facile à mettre en œuvre.
    La question est donc : Est-ce faisable de surcharger la définition d'un élément XSD ?

    Sinon, je suis preneur d'autres suggestions.

    Merci de votre aide.
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

  2. #2
    Rédacteur/Modérateur
    Avatar de Laurent.B
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Novembre 2004
    Messages
    3 468
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2004
    Messages : 3 468
    Points : 17 036
    Points
    17 036
    Par défaut
    Bon, apparemment il n'y a pas de spécialiste dans le coin, donc j'ai posté ici http://www.developpez.net/forums/d86...-type-element/ afin de voir pour la solution de surcharge
    Responsable FAQ Eclipse | Maintiens et développe un des logiciels destinés aux rédacteurs sur developpez.com
    Gardons toujours à l'esprit que le forum constitue une base documentaire, dont l'utilité et la qualité dépendent du soin apporté à nos questions et nos réponses. Soyons polis, précis (dans le titre et dans le corps des questions), concis, constructifs et faisons de notre mieux pour respecter la langue française et sa grammaire. Merci pour nous (les modérateurs) mais aussi et surtout, merci pour vous.
    Problème solutionné => je vais au bas de la page et je clique sur le bouton (qui suite à mise à jour du forum, a légèrement changé d'aspect).

Discussions similaires

  1. Erreur lors de la compilation d'un schéma XSD avec JAXB
    Par totomimi dans le forum EDI et Outils pour Java
    Réponses: 0
    Dernier message: 09/07/2009, 08h58
  2. [JAXB] Parser un attribut d'élément
    Par BiM dans le forum Persistance des données
    Réponses: 3
    Dernier message: 06/05/2009, 14h33
  3. [JAXB]xjc et javadoc des attributs
    Par brasinamical dans le forum Persistance des données
    Réponses: 0
    Dernier message: 01/12/2008, 11h18
  4. [JAXB] xjc et fichiers xsd
    Par Yoplaboum dans le forum Persistance des données
    Réponses: 1
    Dernier message: 23/11/2007, 12h06
  5. Réponses: 9
    Dernier message: 21/09/2007, 14h33

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