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 :

JAVA, XML et XSD [JAXB]


Sujet :

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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut JAVA, XML et XSD
    Bonjour,

    J'ai une application qui utilise un fichier XML comme ressource, cette dernière étant modifiable par un utilisateur. Je souhaiterai, lors de l'enregistrement de ce fichier, qu'il soit soumis à une validation du schema.

    Apparement JAXB fait ça très bien (j'ai lu la documentation et tout et tout). J'ai installé le package Web Services Developper pack 1.5, mais que dois-je faire maintenant pour l'utiliser? Comment installer la librairie dans JBuilder pour prendre en compte les nouvelles classes?

    Mici


    Billy




    [Modéré par Didier] : ajout de tag dans le titre - Les règles du forum Java

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Par défaut
    doc est le dom de mon schema
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    	SchemaFactory schemaFactory= SchemaFactory.newInstance(javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI);
    Schema s = schemaFactory.newSchema(new javax.xml.transform.dom.DOMSource(doc));
    				//gets its validator
    				Validator v = s.newValidator();
    				MyErrorHandler err = new MyErrorHandler();
    				v.setErrorHandler(err); 
    				v.validate( new javax.xml.transform.dom.DOMSource(problem) );
    				if (!err.ok) 
    				{
    					if (verbose) System.out.println(err);
                                            return false;
    				}
    				else return true;
    à peu près ce qu'il faut faire (j'ai fusionner des zones de mon code ..

  3. #3
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Ton code a l'air d'être pertinent, mais de quelle import ai-je besoin pour pouvoir manipuler ces SchemaTrucObject?

    Déjà, je ne le trouve pas à partir de JAXB

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 28
    Par défaut
    import javax.xml.validation.*;
    import org.w3c.dom.*;
    import org.xml.sax.SAXParseException;

  5. #5
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    Citation Envoyé par muaddob
    import javax.xml.validation.*;
    import org.w3c.dom.*;
    import org.xml.sax.SAXParseException;

    On va y arriver! Maintenant, il ne connait pas "import javax.xml.validation.*;"

    Je le trouve pas dans le package javax.xml ?? :

    C'est à causede mon java 1.4.2 ( Comment l'integrer sans changer de JDK???????????????????


    Merci en tout cas de ton aide!

  6. #6
    Membre chevronné Avatar de billynirvana
    Homme Profil pro
    Architecte technique
    Inscrit en
    Décembre 2004
    Messages
    472
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2004
    Messages : 472
    Par défaut
    A y est, ca marche!

    Voila le code utilisé! il faut appeler quand necessaire:

    (new XmlValidator).validate("nom_fichier_xml", "nom_fichier_schema");


    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
     
    class XmlValidator {
      private String valeurErreur = null;
     
      public void valider(String xml, String schema) {
        try {
          DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
          DocumentBuilder db = dbf.newDocumentBuilder();
          Document doc = db.parse(new File(xml));
          Source source = new DOMSource(doc);
     
          SchemaFactory sf = SchemaFactory.newInstance((javax.xml.XMLConstants.W3C_XML_SCHEMA_NS_URI));
          Schema s = sf.newSchema(new File(schema));
          Validator v = s.newValidator();
          v.validate(source);
        }
        catch (IOException ioex) {
          setErreurValue("Le fichier XML et/ou schema n'existe pas. [" + ioex.getMessage() + "]");
        }
        catch (SAXException sex) {
          setErreurValue("Le fichier XML est invalide. [" + sex.getMessage() + "]");
        }
        catch (Exception ex) {
          setErreurValue("La validation du fichier XML a echoué. [" + ex.getMessage() + "]");
        }
      }
    et les imports utilisés (peut etre certains sont inutiles...]

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    import java.io.*;
    import javax.xml.parsers.*;
    import javax.xml.transform.*;
    import javax.xml.transform.dom.*;
    import javax.xml.transform.stream.*;
    import org.w3c.dom.*;
     
    import javax.xml.validation.*;
    import org.xml.sax.SAXException;

    Voilap! J'ai installé JBuilder foundtion 2005 + installé J2SE 5.0 + activation JDK 1.5 dans le projet!

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

Discussions similaires

  1. [XML-DOM][XSD][JAVA] Génération de parseur
    Par charlot44 dans le forum Persistance des données
    Réponses: 2
    Dernier message: 22/06/2005, 12h36
  2. [DOM] JAVA & XML : valeur d'un noeud ELEMENT_NODE
    Par afadel dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 09/06/2005, 18h46
  3. [DOM] [JAVA + XML] Ouvrir un fichier xml à partir d'une url
    Par Hell dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 09/06/2005, 00h06
  4. java XML
    Par cmalther dans le forum Format d'échange (XML, JSON...)
    Réponses: 5
    Dernier message: 11/05/2005, 09h08
  5. [Strategie][Java][XML] Import dans une base de données
    Par nad dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 23/09/2002, 11h12

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