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 :

Problème validation XML & XSD


Sujet :

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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur Java
    Inscrit en
    Août 2011
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2011
    Messages : 16
    Points : 24
    Points
    24
    Par défaut Problème validation XML & XSD
    Bonjour à tous,

    Je suis revenu vers vous car j'ai un souci avec mon application java développé pour valider un fichier XML avec un fichier XSD donnée.
    J'utilisé JDom.
    Le problème :
    Quand je lance l'application par exemple( sans la balise <nom>.....</nom>)
    l'application envoie True alors que la balise nom manque, de même pour les balises <personne>,... ça serait sympa & de votre part de me proposer une solution pour ce problem. Je vous remercie à l'avance

    fichier Person.xml
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <personnes xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance" xsd:noNamespaceSchemaLocation="Person.xsd">	
    	<personne>
    	  <!--<nom>dupon</nom>-->
    		<prenom>pierre</prenom>	
    	</personne>
    	<personne>
    		<nom>durant</nom>
    		<prenom>jean</prenom>	
    	</personne>
    	<personne>
    		<nom>martin</nom>
    		<prenom>gilles</prenom>	
    	</personne>
    </personnes>
    fichier Person.xsd
    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
    <?xml version="1.0" encoding="UTF-8"?>
    <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" version="1.0"> 
    	<xsd:element name="personnes">
    			<xsd:complexType>
    				<xsd:sequence>	
    					<xsd:element name="personne" maxOccurs="unbounded">
    						<xsd:complexType>
    							<xsd:sequence>
    								<xsd:element name="nom" type="xsd:string" minOccurs="1" maxOccurs="1"/>
    								<xsd:element name="prenom" type="xsd:string" minOccurs="1" maxOccurs="1"/>		
    							</xsd:sequence>
    						</xsd:complexType>
    					</xsd:element>
    			        </xsd:sequence>
    		       </xsd:complexType>
    	</xsd:element>
    </xsd:schema>

    application java
    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
     
    import java.io.File;
    import javax.xml.*;
    import javax.xml.transform.Source;
    import javax.xml.transform.dom.DOMSource;
    import javax.xml.transform.stream.StreamSource;
    import javax.xml.validation.Schema;
    import javax.xml.validation.SchemaFactory;
    import javax.xml.validation.Validator;
    import org.jdom.*;
    import org.jdom.input.SAXBuilder;
     
     
    public class Validate{
     
     
    	    private SAXBuilder sxb;
    	    private Document document;	
    	    private SchemaFactory factory;		
    	    private Source schemaFile;	
    	    private Schema schema;
    	    private  Validator validator;
    	    private boolean ok;
     
    	    public Validate() throws Exception{
     
    	    	this.sxb = new SAXBuilder();
    	    }
     
    	    public boolean XMLFile() throws Exception {
     
    	    	this.ok =false;
    			try 
    			{
    			   this.document =sxb.build(new File("C://Project_Valid_xml_by_xsd//resources//Person.xml"));
    			   this.factory = SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);
    			   this.schemaFile = new StreamSource(new File("C://Project_Valid_xml_by_xsd//resources//Person.xsd"));
     
    			   this.schema = factory.newSchema(schemaFile);
    			   this.validator = schema.newValidator();
    			   this.validator.validate(new DOMSource());
    			   this.ok = true;
    			   String s = String.valueOf(ok);
    			   System.out.println(s);
     
    		        } 
    	    	         catch (Exception e) {
    				e.printStackTrace();
    				System.out.println("PB : "+e.getMessage());;
    			    }
    			    return this.ok;
    	                }
     
     
     
    	    public static void main(String[] args) throws Exception {
    			Validate v = new Validate();
    			v.XMLFile();
    		}
    }

  2. #2
    Modérateur

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

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 547
    Points : 21 602
    Points
    21 602
    Par défaut
    Euh... new DOMSource() ça fait un document vide, hein.

    Il te faut un JDOMSource, et il faut que tu mettes ton Document dedans, évidemment...
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

Discussions similaires

  1. [XSD] Problème validation xml avec schema
    Par Loki13 dans le forum Valider
    Réponses: 1
    Dernier message: 24/10/2008, 21h19
  2. [JAXB] Problème parsing XML avec XSD validant
    Par vano dans le forum Persistance des données
    Réponses: 2
    Dernier message: 26/08/2008, 10h59
  3. Valider XML avec XSD
    Par neilbgr dans le forum Langage
    Réponses: 10
    Dernier message: 26/03/2008, 17h01
  4. [XSD] Problème Validation XML XSD
    Par scelines dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 04/05/2006, 18h54
  5. Réponses: 8
    Dernier message: 05/02/2006, 11h39

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