Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1674 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [ java ] forcer une validation avec une DTD bien précise.

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[ java ] forcer une validation avec une DTD bien précise.

n°161772
TBone
Pouet.
Posté le 18-06-2002 à 14:39:23  profilanswer
 

salut,
 
j'utilise un DocumentBuilder pour valider des documents et j'ai un souci avec des documents ne comportant pas de DOCTYPE. dans ce cas, je voudrais forcer le parsing à utiliser une DTD bien précise (que je pourrais définir assez facilement avec la balise racine)
 
mais comment fait-on ? tous les exemples que je trouve me montre comment faire avec un EntityResolver ... mais je n'ai justement pas d'entité à résoudre. (ou alors je n'ai pas compris les quelques exemples trouvés)
 
qq'un peut m'aider ?


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
mood
Publicité
Posté le 18-06-2002 à 14:39:23  profilanswer
 

n°161775
darklord
You're welcome
Posté le 18-06-2002 à 14:40:20  profilanswer
 

je ne suis pas persuadé que ce que tu veux faire soit XML-compliant. Si un docuemnt XML n'a pas de DTD tu ne peux pas la forcer par programmation
 
Inutuitivement c'est ma réponse mais c'est peut etre pas 100% correct


---------------
Just because you feel good does not make you right
n°161788
TBone
Pouet.
Posté le 18-06-2002 à 14:51:06  profilanswer
 

sans DOCTYPE, je peux facilement savoir si le XML est bien formé. mais je dois vérifier que ce document est valide... et je pouvais le faire avec une vieille techno que l'on avait en interne mais qui n'est plus maintenue -> marche pû.
 
mais je sais que c'est possible. en gros je dois expliquer au parser de ne pas résoudre le DOCTYPE mais d'utiliser telle ou telle DTD. c'est ce que je n'arrive pas à écrire.


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°161795
darklord
You're welcome
Posté le 18-06-2002 à 15:00:34  profilanswer
 

ouais j'ai bien compris ton problème et je connais la différence entre valide et bien formé merci.
 
Ma réponse ne change pas. Si tu as d'autres feedback ca m'intéresse.


---------------
Just because you feel good does not make you right
n°161808
TBone
Pouet.
Posté le 18-06-2002 à 15:12:19  profilanswer
 

je ne doutais pas de toi :jap: j'ai dû lire trop vite. ;)


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°162042
arghbis
salops de dauphins
Posté le 18-06-2002 à 19:19:00  profilanswer
 

<réponse_stupide>
si tu mets le nom de ta DTD dans le doctype, le parser va la chercher nan??
</réponse_stupide>
 
voilà, c tout ce que je dirais à propos de ça!  :p

n°162250
TBone
Pouet.
Posté le 19-06-2002 à 09:15:38  profilanswer
 

oui, c'est sûr...
mais certains de nos documents arrivent sans DOCTYPE...  
 
je n'ai pas encore trouvé... mais je ne désespère pas... :)


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°162305
benou
Posté le 19-06-2002 à 10:23:06  profilanswer
 

TBone a écrit a écrit :

oui, c'est sûr...
mais certains de nos documents arrivent sans DOCTYPE...  
je n'ai pas encore trouvé... mais je ne désespère pas... :)  




ca doit être possible, c'est obligé !
si tu trouve, tu le postes ? ca m'intéresse aussi ...

n°162311
darklord
You're welcome
Posté le 19-06-2002 à 10:28:47  profilanswer
 

benou a écrit a écrit :

 
ca doit être possible, c'est obligé !




 
je serais pas aussi affirmatif que toi. Bien sûr que ca pourrait etre possible mais si on y réfléchis, ca sert à quoi de mettre un DTD dans un document XML si c'est pour qu'on puisse le changer par programmation ou en ajouter un si il n'y en a pas.
 
Après tout le contenu du document XML définit sa structure. Donc pas de DTD pas de validation. C'est mon sentiement et rien ne m'a encore contredit jusque mainteant.
 
ceci dit si tu trouves ca m'intéresse aussi :)


---------------
Just because you feel good does not make you right
n°162324
benou
Posté le 19-06-2002 à 10:38:01  profilanswer
 

DarkLord a écrit a écrit :

 
ca sert à quoi de mettre un DTD dans un document XML si c'est pour qu'on puisse le changer par programmation ou en ajouter un si il n'y en a pas.




qui parle de la changer ou de l'ajouter ??
 
non, le but c'est juste de vérifier la conformitée à un moment donné. Je ne vois pas quel problème ca te pose ...
exemple : tu as 100 000 fchiers XML et tu veux faire évoluer leur DTD. Plutot que de changer la DTD et vérifier si les fichiers sont enoer valide, tu testes la nouvelle DTD en la passant sur les fichiers. Si tout est bon, tu remplace l'ancienne DTD.
C'est juste un exemple à la con, mais je suis certain qu'il y aurait des tonnes d'utilisation possible.
 
Tine,s un autre exemple : vérifier qu'une requête SOAP est bien du format attendu ... (y a pas de DOCTYPE dans une requête SOAP)

mood
Publicité
Posté le 19-06-2002 à 10:38:01  profilanswer
 

n°162327
darklord
You're welcome
Posté le 19-06-2002 à 10:42:47  profilanswer
 

:ouch: mmmm intéressant. je vais voir tiens :)


---------------
Just because you feel good does not make you right
n°162588
TBone
Pouet.
Posté le 19-06-2002 à 15:18:06  profilanswer
 

je l'utilise dans une requête similaire au premier exemple de benou.


---------------
As the plane took off, the pilot turned to the co-pilot and said, “Have you ever flown solo?” Co-pilot: No. Typically I fly much higher than this.
n°163159
z0rglub
Posté le 21-06-2002 à 10:26:49  profilanswer
 

mon pb est un peu similaire :
 
je n'arrive pas à faire comprendre à jdom qu'il doit utiliser telle ou telle doctype pour un document.
Le pb est le suivant : j'ai un fichier XML à parser pour produire un org.jdom.Document, je ne souhaite pas préciser de doctype directement dans le document XML pour de très bonnes raisons...
Je voudrais par contre pouvoir faire :

Code :
  1. SAXBuilder builder = new SAXBuilder( false );
  2. Document doc = builder.build( "monFichier.xml" );
  3. DocType doctype = new DocType( "monDoctype", "doctype.dtd" );
  4. doc.setDocType( doctype );


 
malheureusement, ça ne fonctionne pas comme ça devrait, en effet, mon doctype définit des valeurs par défaut pour certains attributs d'éléments de mon fichier XML et lorsque je cherche à récupérer un des ces attributs, qui doit être celui par défaut car non renseigné dans l'XML, et bien, il renvoie null. Alors que si je met la référence sur le doctype à l'intérieur du fichier XML, aucun pb !
alors, si qqun a déjà eu à faire ceci... HELP


---------------
Ma galerie photo créée avec Piwigo et hébergée sur Piwigo.com
n°196844
benou
Posté le 19-08-2002 à 11:18:51  profilanswer
 

je me permet de remonter ce topic parce que j'ai un besoin similaire : j'ai des fichiers XML qui contiennent un Doctype précisant une DTD. Le problème c'est que l'url de la DTD pointe vers une adresse internet qui n'est pas accessible depuis le poste ou tourne mon appli.  
Donc je me prend des java.net.UnknownHostException dans la tête à chaque fois que je parse mon ficher avec la commande

Code :
  1. documentBuilderFactory
  2.  .newDocumentBuilder()
  3.  .parse(new java.io.FileInputStream("D:/tmp/test_doctype.xml" ));


 
Est ce que quelqu'un sait comment dire au parser de ne pas essayer de lire la DTD indiquée dans le doctype ?
 
tbone, si tu as trouvé la solution à ton problème, il pourra peut-être aussi régler le mien ...
 
remarque : j'ai bien essayé un documentBuilderFactory.setValidating(false); mais ca marche pô :(
 
edit: c'est un peu n'importe quoi que le les smiley soient insérer dans du texte entre balise [ cpp]


Message édité par benou le 19-08-2002 à 11:20:13
n°196857
benou
Posté le 19-08-2002 à 11:26:25  profilanswer
 

--greg-- a écrit a écrit :

benou: coche "desactiver les smilies" :D




on peut pas le faire en éditant le post. et puis je voulais pas désactiver tous les smiley du post. Ca devrait être automtique pour les balises de code ...
mais bon, c'est pas le sujet de mon post ;)

n°196865
darklord
You're welcome
Posté le 19-08-2002 à 11:29:06  profilanswer
 

je me permets encore d'insister. Si on a fait une spec, un standard c'est pas pour le contourner. C'est dur je sais bien mais visiblement c'est comme ça puisque personne n'a trouvé de solution depuis ...
 
 :(


---------------
Just because you feel good does not make you right
n°196867
--greg--
Posté le 19-08-2002 à 11:30:57  profilanswer
 

sinon avec jdom, la methode parse qui prend un booleen qu'on met à false pour ne pas valider, elle marche elle:)

n°196869
benou
Posté le 19-08-2002 à 11:31:18  profilanswer
 

je ne vois pas en quoi le fait de configurer un parser est une contournation de la norme ...
tu vois bien que dans mon cas, c'est un problème réélement bloquant !  

n°196875
darklord
You're welcome
Posté le 19-08-2002 à 11:37:37  profilanswer
 

c'est pas une configuration de parser. Ton document déclare qu'il est conforme à une DTD. Si la DTD est pas dispo c'est normal qu'il y ait un blème ...
 
Maintenant je suis d'accord que si tu désactive la validation ca devrait fonctioner. Aussi loin que je me souvienne ca ne change pas le problème cependant, désolé.


---------------
Just because you feel good does not make you right

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [ java ] forcer une validation avec une DTD bien précise.

 

Sujets relatifs
[java] Sauvegarder un graphic en bmp ou gif ou jpg[ JAVA ] Comment effacer un espace vide dans une String ?
Java et XMLJava: Création d'une interface graphique
[JAVA] Avis et surtout critiques sur mon prog Java SVP[Java] Exception lancée alors que ça devrais passer !
(JAVA) Comment faire des cases en cascades en Java ?![java - applet] exécuter une commande sur le serveur web ? !
Problème de java sur un page html.... et j'ai rien fait de mal !!Problème de java sur un page html....
Plus de sujets relatifs à : [ java ] forcer une validation avec une DTD bien précise.


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR