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 :

Exception lors d'une validation


Sujet :

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

  1. #1
    Membre à l'essai
    Inscrit en
    Juin 2005
    Messages
    42
    Détails du profil
    Informations forums :
    Inscription : Juin 2005
    Messages : 42
    Points : 18
    Points
    18
    Par défaut Exception lors d'une validation
    Bonjour,
    je souhaite faire valider une instance xml par un xsd.
    J'utilise le code suivant :
    (trouver sur http://java.sun.com/j2se/1.5.0/docs/...e-summary.html)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
     try {
    // parse an XML document into a DOM tree
        DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
        Document document = parser.parse(new File("instance.xml"));
     
        // create a SchemaFactory capable of understanding WXS schemas
        SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
     
        // load a WXS schema, represented by a Schema instance
        Source schemaFile = new StreamSource(new File("mySchema.xsd"));
        Schema schema = factory.newSchema(schemaFile);
     
        // create a Validator instance, which can be used to validate an instance document
        Validator validator = schema.newValidator();
     
        // validate the DOM tree
     
            validator.validate(new DOMSource(document));
        } catch (SAXException e) {
            // instance document is invalid!
        }
    Je créé un xsd, et un xml valide vis à vis de cet xsd : tout marche bien
    puis j’insère dans mon xml différentes erreurs pour voir comment cela réagit.

    Des exceptions apparaissent et dans le "catch" je n'obtiens que la premiere erreur rencontrée.

    Comment faire pour obtenir toutes les erreurs de mon xml d'un coup.

    je vous remercie

  2. #2
    Membre éclairé Avatar de g_rare
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    608
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 608
    Points : 683
    Points
    683
    Par défaut
    Pour avoir plusieurs erreurs (remontées), et donc au moins la 2e : il faudrait que le parser XML soit capable de continuer tout seul son parcours dans une hiérarchie déjà <<invalidée>>...
    Il ne me semble pas possible d'anticiper technique le comportement à adopter pour lire une structure suite à une incohérence!
    " Jag blev dömd för fildelning och allt jag fick var en sketen t-shirt. " (tankafritt.nu)
    PAS DE REPONSE PAR MESSAGE PRIVE ! Penser au bouton Résolu en bas de la discussion...

  3. #3
    Membre averti
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

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

    Informations forums :
    Inscription : Avril 2004
    Messages : 253
    Points : 446
    Points
    446
    Par défaut
    Bonjour,

    je rencontre le même problème que cash3000.

    Je comprend que la validation soit stoppée lorsque le validator rencontre un problème de structure (element manquant, mal orthographié, mal formé ...).

    Mais ce qui m'ennuis, c'est qu'il s'arrête aussi dès qu'une contrainte du genre 'expression régulière' n'est pas respectée
    Pourtant, de mon point de vue, rien ne l'empêche de continuer.

    Quelqu'un a-t-il une solution ou une api qui le fait ?

    Merci
    Il est agréable d'avoir le choix. La difficulté est alors de faire le bon (ou le moins pire).

  4. #4
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Bonjour,

    Citation Envoyé par Fifan31
    Mais ce qui m'ennuis, c'est qu'il s'arrête aussi dès qu'une contrainte du genre 'expression régulière' n'est pas respectée
    Pourtant, de mon point de vue, rien ne l'empêche de continuer.
    De ton point de vue peut-être, mais pour le processeur de schéma, la non-conformité d'une donnée peut avoir des répercussions sur d'autres contraintes, par exemple celles d'intégrité référentielle.

    De plus, la validation par schéma est déjà un processus complexe, et demander au processeur de continuer à valider une instance déclarée invalide ne va pas lui faciliter la tâche...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

Discussions similaires

  1. Réponses: 2
    Dernier message: 16/04/2009, 17h07
  2. [EJB3 Entity] Exception lors d'une tentative d'insertion
    Par Mister Nono dans le forum Java EE
    Réponses: 1
    Dernier message: 15/12/2008, 03h04
  3. Exception lors d'une supression dans un GridView
    Par LhIaScZkTer dans le forum ASP.NET
    Réponses: 1
    Dernier message: 18/06/2008, 17h57
  4. [Exception]Lors d'un validate sur un jframe
    Par cameleon2002 dans le forum Agents de placement/Fenêtres
    Réponses: 12
    Dernier message: 02/05/2005, 11h27
  5. [JDBC] SQL Exception lors d'une Query !
    Par Castagnems dans le forum JDBC
    Réponses: 5
    Dernier message: 30/04/2004, 12h00

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