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 :

Valider en détectant le schéma


Sujet :

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

  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 19
    Points
    19
    Par défaut Valider en détectant le schéma
    Bonjour à tous,

    Je dois valider des fichiers XML en java, seulement je ne trouve aucune solution adaptée à mon problème

    Voici la problématique :

    Si un modèle XSD est stipulé dans le document XML à valider (exemple : xsi:noNamespaceSchemaLocation="Schema.xsd"), alors le document est vérifié selon ce modèle uniquement.
    En revanche, si aucun modèle n'est indiqué dans le document XML, alors il est vérifié selon un ensemble de modèles prédéfinis au format XSD, stockés dans un répertoire.

    Une solution serait donc de vérifier et récupérer la définition du schéma du document en le parsant. Ensuite il suffirait de valider par le biais du parseur la conformité du document selon les règles édictées précédement.
    Le bémol c'est que ne trouve pas comment récupérer le schéma définit dans l'attribut noNamespaceSchemaLocation en utilisant les différentes API.

    Merci d'avance pour votre aide .

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 545
    Points : 21 601
    Points
    21 601
    Par défaut
    Comme n'importe quel attribut situé dans un namespace.
    En JDOM ce serait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    Namespace xsiNS = Namespace.getNamespace("xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
    String schemaLocation = root.getAttributeValue("noNamespaceSchemaLocation", xsiNS);
    if(schemaLocation  == null) {
      // ...
    } else {
      // ...
    }
    Tu as essayé quoi ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2011
    Messages
    22
    Détails du profil
    Informations forums :
    Inscription : Janvier 2011
    Messages : 22
    Points : 19
    Points
    19
    Par défaut
    Merci c'est exactement ce que je cherchais !

    Je n'avais pas trouvé cette méthode permettant de récupérer un attribut directement en tenant compte du namespace.
    J'ai ainsi pu élaborer la solution que je voulais avec JDOM . Il me reste cependant un problème.

    A ce que j'ai pu comprendre, JDOM ne permet pas de valider directement les DTD de la même facon que pour les XSD (Oui j'ai aussi besoin de valider en fonction de DTD finalement):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SchemaFactory schemafac = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    Schema schema = schemafac.newSchema(schemaLocation);
    XMLReaderJDOMFactory factory = new XMLReaderSchemaFactory(schema);
    SAXBuilder sb = new SAXBuilder(factory);
    sb.build(_fileReaderAdapter.open(file));
    Y'a t-il une solution plus élégante qu'injecter la définition du DTD dans le document en runtime ?

    Merci encore d'avance .

Discussions similaires

  1. [DOM] Validation XML par un Schéma XSD en php5
    Par cydream dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 26/01/2007, 11h32
  2. [Xml/Xsd]valider son fichier Xml avec un schéma xsd
    Par ePoX dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 09/02/2006, 23h30
  3. [SAX] Valider un flux XML à partir d'un schéma
    Par spidetra dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 23/11/2005, 17h16
  4. [XSD]Validation avec deux schémas?
    Par cuber dans le forum Valider
    Réponses: 10
    Dernier message: 22/09/2005, 10h16
  5. Réponses: 12
    Dernier message: 19/05/2005, 15h29

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