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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    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 Expert
    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 : 42
    Localisation : France

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

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

  3. #3
    Membre confirmé
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    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 Expert
    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 : 42
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 047
    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 confirmé
    Inscrit en
    Avril 2007
    Messages
    157
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 157
    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
    Nouveau candidat au Club
    Inscrit en
    Juillet 2010
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 2
    Par défaut
    Bonjour,

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

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