KioskeaKioskeaCommentCaMarcheInscrivez-vous, c'est gratuit !
Mardi 13 mai 2008 - 15:48:31

[XML] Probleme validation XML avec DTD

Rechercher : dans
[XML] Probleme validation XML avec DTD
par Pijay
 Fil de Discussions
Statut : Non résolu
vendredi 30 novembre 2007 à 17:16:43
Bonjour,

Je suis débutant en XML.
J'ai developper un parser SAX sous JAVA pour lire un document XML.

J'ai écrit :

> le fichier XML "peronne.xml"
> le fichier DTD "individu.dtd"
> la classe JAVA "SaxParserPerso.java"

J'ai voulu tester la validation de mon fichier avec la DTD. Pour cela, j'ai spécifié dans ma classe JAVA :

SAXParserFactory spf = SAXParserFactory.newInstance();
//validation du document avec la DTD
spf.setValidating(true);

j'ai essayé aussi avec :

SAXParserFactory spf = SAXParserFactory.newInstance();
//validation du document avec la DTD
spf.setFeature("http://xml.org/sax/features/validation",true);


Le problème est que, même si le document XML n'est pas valide, aucune erreur de structure est détecté ????

Fichier XML :

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE livre SYSTEM "individu.dtd">
   <livre>
       <personne> 
            <nom>Hetfield</nom>
            <prenom>James</prenom>
            <telephone>06-66-66-66-66</telephone>
            <email>hetfieldl@metallica.com</email>
       </personne>
       <personne>
             <telephone>06-69-69-69-69</telephone>
             <nom>Ulrich</nom>
             <prenom>Lars</prenom>
             <email>ulrich@metallica.com</email>
       </personne>
    </livre>


Fichier DTD :

<!ELEMENT livre (personne*) >
<!ELEMENT personne (nom,prenom,telephone,email?) >
<!ELEMENT nom (#PCDATA) >
<!ELEMENT prenom (#PCDATA) >
<!ELEMENT telephone (#PCDATA) >
<!ELEMENT email (#PCDATA) >


Comme vous pouvez le voir, la strucutre du document n'est pas valide car le "telephone" de la 2° personne est mal placé.
Lorsque le document est PARSER, tout se déroule normalement et aucune erreur de validation est détectée.

Logiquement, la lecture du document devrait s'arreté a cette balise mal placée ?
Comment activé la validation du document a partir d'une DTD ?
Le fait d'executer mon application sous Eclipse pose - t - il probleme pour la validation du document ?


Informations complémentaires : Je travail sous Debian(Linux) avec la plateforme Eclipse 3.2.
Si quelqu'un connait bien le domaine, toute aide ou explication serait la bienvenue.

Merci d'avance.
Configuration: Debian (Linux)
Eclipse 3.2
Répondre à Pijay  Signaler ce message aux modérateurs Aller au dernier message

1


  • Ce message vous semble utile, votez !
  • Signaler ce message aux modérateurs
Par kij_82, le vendredi 30 novembre 2007 à 17:27:05 Fil de Discussions 
Bonsoir,

J'ai testé ton problème sous autre chose qu'éclipse et effectivement, la structure est bonne, mais la validation ne passe pas, justement du fait que certains éléments ne soient pas dans le bon ordre.

Je n'ai pas trop le temps de me pencher sur ton problème (we) mais voilà un code que j'utilise :
SAXParserFactory factory = SAXParserFactory.newInstance();			
			factory.setValidating(true);
			factory.setNamespaceAware(true);
			SAXParser parser = factory.newSAXParser();
			parser.setProperty("http://java.sun.com/xml/jaxp/properties/schemaLanguage" , "http://www.w3.org/2001/XMLSchema");			

			// --- Set Input source
			InputSource source = new InputSource(getConfig().getRoot() + '/' + getConfig().getData() + '/' + getXmlFile());
			
			// --- parse
			XMLReader reader = parser.getXMLReader();
			reader.setContentHandler(new DefaultHandler());
			reader.setErrorHandler(new DefaultHandler());
			reader.setEntityResolver( new MonPropreResolver() );
			reader.parse(source);		


Et il me semble que ca fonctionne bien.
A voir donc... bon courage :)


~ N'oubliez pas la balise "Résolu" lorsque votre problème est... résolu :) ~
Répondre à kij_82
Discussions pertinentes trouvées dans le forum
12/12 17h01[Python] Validation fichier XML avec DTDProgrammation13/12 10h131
05/03 10h55Parser un XML avec DTD externeProgrammation05/03 10h550
13/10 02h11xml xsl dtdWebmastering13/10 02h110
26/09 22h12[XML] validation et de codage de caractereProgrammation27/09 09h332
Plus de discussions sur « [XML] Probleme validation XML avec DTD » Discussion en cours Discussion fermée Problème résolu
Répondre
Titre du message :
Votre pseudo:
Votre email :
Message: 
  •  
  •  
Options: Recevoir les réponses par mail.
 

Aide