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 :

Erreur lors de la validation [XSD]


Sujet :

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

  1. #1
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Par défaut Erreur lors de la validation
    Bonjour,

    je poste ce message après avoir fait le tour du web sans trouver de réponse.

    J'essaye désespérément, sans succès, de valider un document XML avec un schéma XSD tous deux fournis par le site ISO20022 (ils sont en pièces jointes).

    J'obtiens à chaque fois l'erreur suivante: org.xml.sax.SAXParseException; cvc-elt.1: Cannot find the declaration of element 'Document'.

    Voici mon code source (Jdk 1.6 sous Linux Debian):

    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
    try {
                DocumentBuilder unConstructeur = DocumentBuilderFactoryImpl.newInstance().newDocumentBuilder();
                Document unDocument = unConstructeur.parse(new File("/home/seb-debian/pacs.008.001.03_sample1businessdescpr1_PaymentsMaintenance2012.xml"));
     
                Schema unSchema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(new File("/home/seb-debian/pacs.008.001.03.xsd"));
     
                Validator unValideur = unSchema.newValidator();
     
                unValideur.validate(new DOMSource(unDocument));
            } catch (SAXException ex) {
                Logger.getLogger(TestXML.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(TestXML.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ParserConfigurationException ex) {
                Logger.getLogger(TestXML.class.getName()).log(Level.SEVERE, null, ex);
            }
    Je précise que la validation avec Netbeans me donne la même erreur alors que cela se passe très bien avec XML Notepad 2007.

    Merci d'avance pour votre aide (pitié!!!! aidez-moi...).
    Fichiers attachés Fichiers attachés

  2. #2
    Candidat au Club
    Inscrit en
    Février 2009
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Février 2009
    Messages : 2
    Par défaut J'ai trouvé!
    Bon, je me réponds. Ca pourra aider d'autres personnes.

    En fait, je ne sais pas pourquoi (peut-être pour des raisons d'optimisation) mais par défaut les fabriques ne produise pas des parseurs qui gère les espaces de noms (namespaces). Il faut donc modifier le code existant comme suit:

    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
    try {
                // On utilise une fabrique pour construire l'analyseur de flux XML
                DocumentBuilderFactory uneFabrique = DocumentBuilderFactoryImpl.newInstance();
                uneFabrique.setNamespaceAware(true); // Très important pour la validation XSD avec espace de noms!!!!
                
                // On construit l'analyseur de flux XML
                DocumentBuilder unConstructeur = uneFabrique.newDocumentBuilder();
    
                Document unDocument = unConstructeur.parse(new File("/home/seb-debian/pacs.008.001.03_sample1businessdescpr1_PaymentsMaintenance2012.xml"));
     
                Schema unSchema = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI).newSchema(new File("/home/seb-debian/pacs.008.001.03.xsd"));
     
                Validator unValideur = unSchema.newValidator();
     
                unValideur.validate(new DOMSource(unDocument));
            } catch (SAXException ex) {
                Logger.getLogger(TestXML.class.getName()).log(Level.SEVERE, null, ex);
            } catch (IOException ex) {
                Logger.getLogger(TestXML.class.getName()).log(Level.SEVERE, null, ex);
            } catch (ParserConfigurationException ex) {
                Logger.getLogger(TestXML.class.getName()).log(Level.SEVERE, null, ex);
            }
    Voilà. Il ne me reste plus qu'a voir comment faire pour que Netbeans utilise également cette propriété...

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

Discussions similaires

  1. Erreur lors de la validation W3C ou partage Facebook
    Par chezjm dans le forum Langage
    Réponses: 5
    Dernier message: 15/02/2010, 18h50
  2. Réponses: 2
    Dernier message: 29/08/2008, 22h51
  3. [XHTML] Erreur lors de la validation W3C
    Par Monkey_D.Luffy dans le forum Balisage (X)HTML et validation W3C
    Réponses: 6
    Dernier message: 25/06/2008, 11h17
  4. [JDOM] Erreur lors de la validation avec XSD
    Par c-ve dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 14/12/2007, 14h22
  5. Facelets et erreur lors de la validation
    Par sir_gcc dans le forum JSF
    Réponses: 2
    Dernier message: 01/05/2007, 15h35

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