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 :

[Xerces] Peut-on traduire les résultats de validation des fichiers XML en français ?


Sujet :

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

  1. #1
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Points : 67
    Points
    67
    Par défaut [Xerces] Peut-on traduire les résultats de validation des fichiers XML en français ?
    Bonjour,

    Je souhaiterai utiliser l'API Xerces pour valider des documents XML par rapport à des schéma XSD.

    Pour avoir une idée, voici une parcelle du code de validation:
    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
    SchemaFactory factory = SchemaFactory.newInstance("http://www.w3.org/2001/XMLSchema");
           File schemaLocation = new File("C:\\test.xsd");
           Schema schema = factory.newSchema(schemaLocation);
           Validator validator = schema.newValidator();
     
           DocumentBuilderFactory domFactory = DocumentBuilderFactory.newInstance();
           domFactory.setNamespaceAware(true); // never forget this
           DocumentBuilder builder = domFactory.newDocumentBuilder();
           Document doc = builder.parse("C:\\test.xml");
     
           DOMSource source = new DOMSource(doc);
           DOMResult result = new DOMResult();
     
           try {
        	   ErrorHandler lenient = new ForgivingErrorHandler();
        	   validator.setErrorHandler(lenient);
               validator.validate(source, result);
               Document augmented = (Document) result.getNode();
               // do whatever you need to do with the augmented document...
               System.out.println("correct");
     
               //affiche(augmented.getDocumentElement());
     
           }
           catch (SAXParseException e) {
        	   System.out.println(e.getMessage());
    	   }
           catch (SAXException ex) {
               System.out.println( " incorrect ");
     
           }
    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
    public class ForgivingErrorHandler implements ErrorHandler {
     
        public void warning(SAXParseException ex) {
            System.err.println("error: "+ex.getMessage());
            System.err.println("public ID:  "+ex.getPublicId());
            System.err.println("system ID:  "+ex.getSystemId());
            System.err.println("ligne number:  "+ex.getLineNumber());
            System.err.println("Colomn number:  "+ex.getColumnNumber());
        }
     
        public void error(SAXParseException ex) {
            System.err.println("error: "+ex.getMessage());
            System.err.println("public ID:  "+ex.getPublicId());
            System.err.println("system ID:  "+ex.getSystemId());
            System.err.println("ligne number:  "+ex.getLineNumber());
            System.err.println("Colomn number:  "+ex.getColumnNumber());
        }
     
        public void fatalError(SAXParseException ex) throws SAXException {
            throw ex;
        }
     
    }
    Tous marche plutôt bien. Sauf que les retours du parseur lorsque le fichier est incorrect sont en anglais.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    error: cvc-datatype-valid.1.2.1: '2009-04-02T09:00:02.0Zx' is not a valid value for 'dateTime'.
    Ma question est donc: Est-ce qu'il est possible d'avoir ces résultats en Français ????

    Merci d'avance.

  2. #2
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    Essaie avec getLocalizedMessage. Mais rien n'est sûr.

  3. #3
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Points : 67
    Points
    67
    Par défaut
    merci pour la réponse. Mais tu pourrai être un peut plus précis ? est-ce qu'il y a une fonction à paramétrer dans JAXP ?

  4. #4
    Membre expérimenté
    Avatar de Patriarch24
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Septembre 2003
    Messages
    1 047
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    Points : 1 640
    Points
    1 640
    Par défaut
    La méthode se trouve dans la classe Exception
    Après, je ne sais pas s'il faut ajouter un fichier de propriétés pour des messages en français (à voir dans la documentation).

  5. #5
    Membre du Club
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    Points : 67
    Points
    67
    Par défaut
    re,

    @Patriarch24: merci pour ton aide. j'ai fais des recherches mais ça donne rien pour l'instant.

    J'ai lu quelque par qu'il faut que je réécrive la classe SAXParseException afin d'y changer les messages et les réécrire en français. quelqu'un sait comment on s'y prend ? :p

  6. #6
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Bonjour,

    même question. J'imagine que cette traduction doit exister quelque part mais comment faire?

  7. #7
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Citation Envoyé par 14h00 Voir le message
    J'imagine que cette traduction doit exister quelque part mais comment faire?
    Pourquoi ? Quel besoin a-t-on de traduire des messages d'erreur technique d'un parseur XML ?

    Je suppose que dans le monde il doit bien exister des gens qui ont eu et implémenté l'idée saugrenue de faire afficher des messages traduits, mais qu'ils aient répandu l'idée quelque part, j'en doute.

  8. #8
    Candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Je vois pas ce que ça peut avoir de surprenant cette question.
    Avoir les messages d'erreurs traduits permettrait tout simplement de pouvoir les remonter aux personnes qui nous fournissent leur xml afin qu'elles comprennent facilement le problème, le corrige et le renvoie.
    Je sais que l'exemple '2009-04-02T09:00:02.0Zx' is not a valid value for 'dateTime' ne nécessite pas d'avoir un niveau d'anglais important mais toutes les erreurs ne sont pas si évidentes et c'est toujours plus agréable pour la personne qui devra lire de le faire dans sa langue.
    Mais bon, c'est pas le plus grave, ça restera en anglais pour l'instant.

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 567
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 567
    Points : 21 635
    Points
    21 635
    Par défaut
    Euh. Non.

    Les personnes ne veulent pas chercher à comprendre ce qu'est l'erreur. Elles se moquent que ce soit en anglais, français ou hébreux. Le XML c'est du chinois pour elles, donc l'erreur pourrait aussi bien leur être montrée en chinois, ça ne ferait pas la moindre différence.

    Ce qui est important, c'est qu'elles puissent faire une capture d'écran, voire pour les plus douées copier/coller le message, afin de te le remonter. Bonus point si tu as mis en œuvre un système de logs qu'elles peuvent facilement te passer avec.

Discussions similaires

  1. [XQUERY] sauvegarder les résultats xquery dans un fichier XML
    Par amelbtb dans le forum XQUERY/SGBD
    Réponses: 3
    Dernier message: 29/05/2012, 15h09
  2. Réponses: 1
    Dernier message: 07/09/2011, 13h30
  3. Peut-on modifier les droits d'accès des fichiers assets ?
    Par chinoismasque dans le forum Android
    Réponses: 13
    Dernier message: 27/05/2011, 10h59
  4. Traduire les messages de validation min et maxlenght
    Par max-mag dans le forum jQuery
    Réponses: 2
    Dernier message: 19/05/2010, 13h57
  5. Peut on utiliser les résultats de Datasource ?
    Par Invité(e) dans le forum C++Builder
    Réponses: 2
    Dernier message: 03/05/2008, 12h03

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