EXtensible Markup Language

Résolu
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 - 21 juin 2005 à 10:29
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 - 22 juin 2005 à 10:46
Re-bonjour,
Voila... autre sujet... Je suis en train de developper une appli qui globalement peut etre assimilable a un répertoire. J'utilise un vecteur d'objets chaque contact est un objet. (pour le moment, chaque contact se rapporte a une unique chaine de caractères mais c'est appelé a évolué). Pour le moment, j'ai créé une procédure d'enregistrement plutot basique (mais quand meme en java ) qui consiste en une boucle qui parcourt le vecteur de 0 à vecteur.count -1 et qui ecrit le contact (unique chaine de caractères donc) dans un fichier texte a la suite des autres (apres avoir pris soin d'avoir ecrit en lieu et place du vecteur(0) le nom du repertoire). Bref, c'est vraiment laid et je pensais faire un truc un peu plus "joli" avec les writeObject() ou quelque chose comme ca... (pas laisser ca comme ca de toute facon), et puis un ami me dit en plaisantant "Fais le en XML" (dédicace Daedric )... ce qui en soit me tente bien mais je suis un novice brut de brut sur ce plan la. Alors je me suis dit, je vais chercher la doc... et j'en ai trouvé... soit elle sert a rien de bien concret (je sais néanmoins ce que veut dire XML... tout le monde le savait ? bah pas moi...), soit elle fait 253pages... et ca va etre un petit peu long (deja a imprimer maintenant faut le lire)... peut etre quelqu'un pourrait il me dire l'interet du Xml dans un tel projet (s'il existe) et comment ca marche globalement... (si vous voulez carrement vous lacher... allez y... je suis prenneur)

Merci...
Bus'

4 réponses

super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
21 juin 2005 à 14:32
Yopla heureusement que j avais sauvegardé mon post,


alors le Xml c est koi? grosso modo c est juste une facon de stoker des donnée sous forme d'une arborescence a la maniere de l'HTML.
Par exemple en HTML tu a des balises qui disent
<html> -> tu fé de l html
<head> -> l entete de ta page
blablabla
</head> -> la fin de l entete
-> le corps de ta page
blablaba
-> la fin du coprs
</html> ->la fin de ton html


et ben en xml c est la meme chose sauf qu au lieu de t imposer les balises tu peux les crées toi meme.
Ainsi dans ton exemple de dossier, tu peux créer le fichier xml suivant:


<disque name="C:">
<dossier name="Musique">
<fichier>unintended-muse.mp3</fichier>
<dossier name="RadioHead">
<fichier>karmapolice.mp3</fichier>
<fichier>une-autrechanson.mp3</fichier>
....
</dossier>
<dossier name="UnAutreGroupe">
....
</dossier>
</dossier>
<dossier name="Films">
...
</dossier>
</disque>


Tu remarque donc que tu peux imbriquer des balise de la meme facon qu un arbre en ayant des feuilles terminales (les mp3) et les noeuds (un dossier), et tu pourrai rajouter toutes autre balise que tu veux.
Donc maintenant tu peux sauvegarder ton vecteur dans un fichier xml puisse que ca a une structure identique a ton pb.


Comment faire en java? 2 API sont a ta dispo:
-SAX: ca parcours ton fichier d'une traite et ca t envoi des événements a chaque fois que tu rencontre une balise, tu rajoute ton traitement la dedans (tu peux aussi écrire), rapide mais tu peux pas te balader ds le fichier
-DOM: ca te construit un arbre contenant l ensemble de tes balises et tu peux te ballader dedans, simple et pratique mais charge tout le fichier en RAM (c bon si t as pas un gros fichier).


Pour faire ca tu regarde l API java de SAX et DOM et t as plein d exemple de code de partout.


Sinon j ai pas l impression que tu ai pris la bonne structure pr ton pb. Tu es dans un pb d arborescence et tu prend un vecteur qui te met tout a plat.


tu devrai plutot avoir une classe tte simple du style (c juste une idee comme ca)
Dossier{
String nom;
Vector vectorDesDossiers //vecteur des dossiers dans ce dossier
Vector vectorDesFichiers //vecteurs des fichiers dans ce dossier.
}
ta classe implémente Serializable et grace a ca tu fais directement ObjectOutPutStream.write(monDossier) et ca te sauvegarde tt ca.


Bref si tu veux faire bo fais du Xml, le vrai intérêt est si tu dois echanger les fichiers si tu veux pas te prendre la tete fais la solution au dessus. Fais gaffe aussi bcp de gens aujourd hui confondent le Xml avec une sorte de facon de stocker des donnée, ca peux marcher mais c est volumineux et pas tres efficace, bref c est pas trop a mettre a ttes les sauces.


Voila, j espere t avoir bien aidé
++ Toinou qui a rien a faire cet aprem pr son stage


Toinou
3
super_toinou Messages postés 764 Date d'inscription mardi 25 mai 2004 Statut Membre Dernière intervention 8 mars 2011 6
21 juin 2005 à 14:29
Toinou
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
21 juin 2005 à 16:34
En effet, bien aidé, c'est le terme. Toutefois, si je comprend bien ce que tu me dit le XML n'est interressant que pour produire des fichiers de données "interconnectables" ? car si j'analyse ce que tu me dit, ce sont de gros fichiers, ca reste quand meme du mode texte (je sais pas je trouve definitivement pas ca propre...) et malgres tes explications, certains points restent quelque peu obscurs...
Bon, je vais cogiter tout ca... merci encore pour ces infos... je posterais ici lorsque j'aurais avancé pour tenir compte des performances...

Abri'us

PS: Toi aussi tu t'es fait avoir par le formulaire que s'efface... (moi j'avais pas fait de Ctrl + C)
0
cs_AbriBus Messages postés 492 Date d'inscription jeudi 28 août 2003 Statut Membre Dernière intervention 25 avril 2007 5
22 juin 2005 à 10:46
Mouai... alors voila... j'ai finalement décidé de ne pas utiliser le XML pour deux raisons majeures: 1/ C'est plus dur et je ne parvient pas a ecrire mes objets dans le fichier
2/ Ca evite un import supplementaire pour quelque chose d'anexe.
(et pis je m'en suis sorti plus vite avec un .writeObject()... comme tu disait, la justification de l'utilisation du XML n'est pas toujours bonne).
Neanmoins merci pour ces precieuses informations.

Abri[Cot] (dédicasse )
0
Rejoignez-nous