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 :

Validation complète xml à partir du schema


Sujet :

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

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut Validation complète xml à partir du schema
    Bonjour à tous!!
    je recherche un moyen si possible de faire la validation complète d'un fichier xml à partir d'un schema, c'est à dire lorsque je detecte une erreur quelconque j'aimerais continuer la validation afin de détecter toutes les erreurs possibles dans le fichier xml.

    voici mon code:

    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    try {
     
    DocumentBuilder parser =               DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document document = parser.parse(new File("monfichier.xml"));
     
    // on cree SchemaFactory capable d'interpertrer un XML schemas
    SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
     
    // on recupère le fichier representant le schema xsd
    Source schemaFile = new StreamSource(new File("monSchema.xsd"));
     
    // on cree une instance du schema
    Schema schema = factory.newSchema(schemaFile);	           	           	          	            // on cree un objet validateur pour valider une instance de notre document
     
    Validator validator = schema.newValidator();	                  	           
    ErrorHandlerImpl errorImpl = new ErrorHandlerImpl();
    validator.setErrorHandler(errorImpl);	           
    validator.validate(new DOMSource(document));
     
    System.out.println("ok");	           
     
     
     
    	       } catch (ParserConfigurationException e) {
    	    	   // recupération de la syntaxe du fichier xml
    	           System.err.println("ParserConfigurationException caught...");
    	           //e.printStackTrace();
    	       } catch (SAXException e) {
    	    	   // récupération de l'erreur
    	    	   String[] tabString = e.getMessage().split("'");
    	    	   System.out.println("voici l'errueur SAXException ");
    	    	   for (int i=0;i<tabString.length;i++){
    	    		   System.out.println(tabString[i]);
    	    	   }	    	       	   
    	           System.err.println("SAXException caught...");
    	           e.getException();
    	       } catch (IOException e) {
    	           System.err.println("IOException caught...");
    	           //e.printStackTrace();
    	       }
    	}
     
    private class ErrorHandlerImpl extends DefaultHandler {
     
    	protected String message(SAXParseException e){
                String message = "Message : "+e.getMessage()+"\n";
                message += "Ligne "+e.getLineNumber()+", colonne "+e.getColumnNumber()+"\n";
                message += "Public id : "+e.getPublicId()+"\n";
                message += "System id : "+e.getSystemId();
                return message;
             }
             protected void printSAXException(SAXParseException e){
                System.out.println(message(e));
                if(e.getException() != null){
                e.getException().printStackTrace();
                }
             }
             public void warning(SAXParseException exception){
                System.out.println("*** Warning ***");
                printSAXException(exception);
             }
             public void error(SAXParseException exception){
                System.out.println("*** Erreur ***");
                printSAXException(exception);
             }
             public void fatalError(SAXParseException exception) throws SAXException{
                String message = "*** Erreur fatale ***\n";
                message += message(exception);
                SAXException se = new SAXException(message, exception);
                throw se;
     
             }
    }
    le resultat produit est bie la validité du document xml mais pas la totalité, ce code detecte juste la première erreur et s'arrète (par exemple SAXException le format de la date n'est pas correcte). Moi je souhaiterais avoir aussi les autres erreurs possibles dans monfichier.xml

    merci d'avance pour l'aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    17
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 17
    Points : 13
    Points
    13
    Par défaut
    en fait le problème d'avant est resolu c'est à dire que j'ai toutes les erreurs dans le fichiers xml qui récupérrées!! Mais l'autre problème est que j'ai pas l'affichage des lignes et colones de l'endroit ou s'est produit l'erreur pour savoir exactement par exemple noeud est concerné pour faire mes corrections dynamiquement par exemple dans un autre fichier

    Quelqu'un saurait d'ou viendrait le problème ? pourtant je fais bien un getLineNumber et getColunNumber...

    Merci d'avance

Discussions similaires

  1. [Validation] Valider un XML avec un schema
    Par pmartin8 dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 21/09/2006, 22h22
  2. Valider un fichier XML avec un Schema
    Par Groove dans le forum Valider
    Réponses: 4
    Dernier message: 09/11/2005, 09h15
  3. [XSD][JAVA] Valider un XML avec un XSD schéma
    Par vad dans le forum Valider
    Réponses: 1
    Dernier message: 17/08/2005, 12h47
  4. Validation de données à partir d'un XML Schema
    Par leup dans le forum Valider
    Réponses: 2
    Dernier message: 10/06/2004, 09h30
  5. Réponses: 3
    Dernier message: 27/01/2004, 17h15

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