XML en général & parsing SAX

XML en général & parsing SAX - Java - Programmation

Marsh Posté le 30-09-2003 à 23:46:55    

J'ai l'occasion de bosser sur unprojet où je vais devoir faire du parsing SAX. J'ai jamais trop eu l'occasion de manipuler du parsing sax et je me pose quelques questions :
 
Comment ca se fait que le Handler ne reçoit pas d'évenement sur le parsing d'un commentaire ? Et plus généralement, Comment les persers DOM (qui sont basés sur des parsers SAX) font pour retrouver les commentaires ?
 
Autre question plus générale sur le XML : dans la norme SAX2, il y a tout un tas d'information en plus qui sont remontés. Ces informations concernent principalement les namespaces. J'ai vraiment du mal à capter cette notion de namespace. (prefixMapping, qName, localName, uri ...)
Quelqu'un pourrait m'éclairer sur ces points ou donner un lien vers un bon tuto qui explique clairement à quoi ces noms correspondent ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 30-09-2003 à 23:46:55   

Reply

Marsh Posté le 01-10-2003 à 05:06:53    

[:blueflag]
 
pour ce qui est des namespaces, j'ai une vague idée, mais trop vague pour te donner les definitions des termes que tu cites;)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
Reply

Marsh Posté le 01-10-2003 à 08:18:12    

http://xml.apache.org/xalan-j/apid [...] ndler.html
 
je sais pas si c'est au bon bout de l'interface (côté utilisateur ou côté parser), mais indéniablement, ça parle de commentaire.

Reply

Marsh Posté le 01-10-2003 à 08:45:27    

nraynaud a écrit :

http://xml.apache.org/xalan-j/apid [...] ndler.html
 
je sais pas si c'est au bon bout de l'interface (côté utilisateur ou côté parser), mais indéniablement, ça parle de commentaire.


yes !!! gagné !
 
en fait c'est plutot cette interface (dont l'interface que tu as donné hérite) :  
http://xml.apache.org/xerces2-j/ja [...] ndler.html
 
c'est un handler supplémentaire (une extension) qui permet de récupérer récupérer des évenements en plus (commentaire, CData, etc ...) et ca se fixe avec la méthode setProperty sur le parser.
Merci !!
 
La 2e partie de la question reste ouverte :)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-10-2003 à 09:01:56    

Je tiens à remesrcier ma maman, sans qui rien n'aurait été possible, vu que c'est sa ligne téléphonique et son abonnement à internet, mon père puisqu'il faut être un homme et une femme pour faire un mome, mes parents conjointement pour mon enfance de merde, sans laquelle je ne serais pas à glander à la maison comme un con en étant exclu de tout ce qui est éducation supérieure, et surtout google, pour m'avoir filé ce lien sur la première page à sax+comment ....


Message édité par nraynaud le 01-10-2003 à 09:10:05
Reply

Marsh Posté le 01-10-2003 à 09:07:20    

nraynaud a écrit :

et surtout [b]google[b], pour m'avoir filé ce lien sur la première page à sax+comment ....


pan ! dans ma gueule ! [:tinostar]
C'est vrai que j'aurais pu passer un coup de  google quand même .... honte sur moi /o\


Message édité par benou le 01-10-2003 à 09:19:52

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-10-2003 à 09:09:31    

benou a écrit :

J'ai vraiment du mal à capter cette notion de namespace. (prefixMapping, qName, localName, uri ...)

Bon un namespace dans l'absolu, je pense pas que ça te pose de pb (y'en a partout en java).
 
prefixmapping, je suppose que c'est le lien entre le nom des namespace et la ressource à laquelle ils font allusion (style en JDBC on joue sur la correspondance nom depackage/noms de répoertoires pour inclure le driver qui va bien sans que ça se voit)
 
qName, ça a une tête de raccourci de "qualified name" qui correspond au nom avec son préfixe complet (pkg1.pkg2.objet).
 
localname, le nom qu'a l'objet dans l'espace courrant (donc moins de préfixes que le nom qualifié et plus que le nom de base, inclusivement).
 
URI c'est l'index sur ressource universel du web, il est pas possible de tomber à côté de la ressource avec ça (URL c'est juste un moyen de localiser une ressource, il peut y avoir remapping).

Reply

Marsh Posté le 01-10-2003 à 09:17:53    

ok pour tout ca ... mais ce que je comprend pas c'est comment ca fonctionne au sein d'un parser sax.
j'ai parsé un doc xml à moi, j'avais jamais de startPrefixMapping ou de endPrefixMapping ... par contre, j'ai parsé un fichier web.xml de tomcat (avec la référence à la DTD) et là je me prennais un startPrefixMapping à chaque parsing de balise, avec des prefix (xml, xmlns) et des uri qui n'avaient étaient définies nul part. Y a des valeurs par défaut ?


Message édité par benou le 01-10-2003 à 09:18:24

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 01-10-2003 à 09:20:12    

Je passe, j'ai jamais fait de SAX ni de xml:namespace de ma vie.

Reply

Marsh Posté le 01-10-2003 à 14:15:50    

Moi j'ai parsé des documents OpenOffice.org. C'est bourré de namespaces, mais je n'ai pas de problème à les gérer. Quand je gère un élément dans startElement ou endElement de org.xml.sax.helpers.DefaultHandler, j'ai juste à  
utiliser comme l'a dit nraynaud le paramètre qName pour le nom complet de l'élément (ex: "office:document" ) et localName pour le même sans son expace de nom (dans l'exemple précédent "document" ). Du coup, je ne vois pas bien quel est ton problème. Que souhaites-tu faire avec les espaces de nom si ce n'est parser leurs éléments ?
 
Je ne sais pas si tu as déjà vu le lien suivant, mais c'est à voir si tu comptes faire un peu de mapping :
http://developer.java.sun.com/deve [...] l/mapping/


Message édité par Krueger le 01-10-2003 à 14:17:36
Reply

Marsh Posté le 01-10-2003 à 14:15:50   

Reply

Marsh Posté le 01-10-2003 à 14:52:24    

je n'ai pas vraiment de problème ... c'est plus une incompréhension ... mais ca commence à rentrer.
 
Là je me bats avec la validation de mon XML par une DTD dans le cas où je rajoute des Namespaces ... ce que je voudraus c'est que la DTD ne valide que les tags d'un certain namespace mais j'ai l'impression que c'est pas possible :/
 
Vous savez si c'est faisable avec des schéma ?


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed