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 un xml a partir d'un xsd


Sujet :

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

  1. #1
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut valider un xml a partir d'un xsd
    comment je peux valider a partir d'une classe java mon fichier xml
    ca marche sous shell je fais xmllint --noout file.xml --schema file.xsd
    je dois controler la valeur d'un attribue
    j'ai essayé ce bout de code mais il ne controle pas les valeurs des attribues
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Validator validator = schema1.newValidator();
    validator.setErrorHandler(errorHandler);
    validator.validate(new StreamSource("config.xml"));
    merci d'avance

  2. #2
    Membre éclairé Avatar de snoop
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    354
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 354
    Par défaut
    Bonjour,
    Avec le code suivant, ça fonctionne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    DocumentBuilder parser = DocumentBuilderFactory.newInstance().newDocumentBuilder();
    Document doc = parser.parse(inputXmlFile);
    SchemaFactory factory = getTypeSchemaURI(schemaFile);
    factory.setErrorHandler(new XmlErrorHandler());
    Source schema = new StreamSource(schemaFile);
    Schema sche = factory.newSchema(schema);
    Validator validator = sche.newValidator();
    validator.validate(new DOMSource(doc));

  3. #3
    Membre averti
    Inscrit en
    Avril 2006
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 12
    Par défaut
    Non, c'est le meme code que j'avais executer sauf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SchemaFactory factory = getTypeSchemaURI(schemaFile);
    j'ai pas la fonction"getTypeSchemaURI" donc j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SchemaFactory factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    lorsque j'ai une balise qui contient un attribue name qui dois etre unique il ne detecte le detecte pas (j'ai donne deux attribue name avec la meme valeur )
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <xsd:element name="config" type="config">
    		<xsd:key name="group-unique">
    			<xsd:selector xpath="group" />
    			<xsd:field xpath="@name" />
    		</xsd:key>
    	</xsd:element>

Discussions similaires

  1. validation d'un xml a partir d'un xsd
    Par latysa2 dans le forum Valider
    Réponses: 13
    Dernier message: 21/04/2011, 11h55
  2. Générer un XML a partir d'un XSD (Altova XMLSpy)
    Par leo13 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 05/12/2007, 16h52
  3. [XSD] [XML/XSD] Générer puis valider à partir d'un XSD
    Par benben13 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 08/06/2006, 13h59
  4. Déduire un fichier XML vide à partir d'un XSD
    Par wozzz dans le forum XSL/XSLT/XPATH
    Réponses: 2
    Dernier message: 21/04/2006, 11h04
  5. [XSD][Java]Valider un XML par rapport a un XSD
    Par sikapoch dans le forum Valider
    Réponses: 11
    Dernier message: 08/11/2005, 15h21

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