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 :

[JAXP] Validation par Schema dans un JAR [XSD]


Sujet :

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

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut [JAXP] Validation par Schema dans un JAR
    Bonjour à tous, voilà le problème auquel je suis confronté:

    j'utilise JAXP sous JDK6 pour parser et valider un texte.
    Le fichier .xsd comprend des include (avec chemin relatif).

    Sous Eclipse tout marche bien en utilisant çà :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
     
    StreamSource ss = new StreamSource(new File("monschema.xsd"));
    Schema schema = sf.newSchema(ss);
     
    dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    dbf.setSchema(schema);
    Désormais, j'ai besoin de construire un .jar avec les ressources à l'intérieur de ce jar. Pas de problème pour les images, mais je me retrouve face à un problème pour le schéma.

    Afin de charger le schéma aussi bien sous Eclipse (avec classpath bien réglé) qu'à l'execution à partir du JAR, j'ai modifié

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamSource ss = new StreamSource(new File("monschema.xsd"));
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    StreamSource ss = new StreamSource(XTree.class.getResourceAsStream("monschema.xsd"));
    Résultat : monschema.xsd est bien chargé, mais les autres .xsd qu'il include ne le sont pas. Le chemin relatif doit certainement poser problème ...

    Y a t-il une option pour activer les chemins relatifs ? Ou une autre solution ?

    Si quelqu'un a une idée, je lui serai très reconnaissant de passer me donner son avis ...
    Merci d'avance !

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 19
    Par défaut
    J'ai résolu le problème ! voici ce que j'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ss.setSystemId(MaClasse.class.getResource("monschema.xsd").toString());
    getResource permet en effet d'obtenir l'URL du fichier qu'il soit dans un jar ou dans le clathpath du projet Eclipse.

    voilà la version "complète" de l'initialisation de ma validation par schéma :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Build the validating schema object
    SchemaFactory sf = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    InputStream is = MaClasse.class.getResourceAsStream("monschema.xsd");
    StreamSource ss = new StreamSource(is);
    ss.setSystemId(MaClasse.class.getResource("monschema.xsd").toString());
    Schema schema = sf.newSchema(ss);
     
    // Create the DOM builder with schema validation
    dbf = DocumentBuilderFactory.newInstance();
    dbf.setNamespaceAware(true);
    dbf.setSchema(schema);
    db = dbf.newDocumentBuilder();

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

Discussions similaires

  1. valider par Entrer dans une Message Box Prompt
    Par lila23 dans le forum GWT et Vaadin
    Réponses: 3
    Dernier message: 10/07/2009, 20h46
  2. [XML]EntityResolver / Validation DTD fourni dans le jar
    Par Julaie95 dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 30/12/2008, 23h37
  3. Validation par entrée dans un formulaire recherche
    Par scriptheque dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 15/01/2008, 11h41
  4. Réponses: 3
    Dernier message: 12/05/2007, 15h45
  5. Interpretation d'erreurs de validation par Schema XML
    Par kamarov dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 26/09/2006, 17h07

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