Tuto sur NSXML

2»

Réponses

  • AliGatorAliGator Membre, Modérateur
    mai 2006 modifié #32
    Wooooop hop hop !!! *pause* les gars là  !

    Je viens de fouiller sur le site que tu avais mis plus haut, Favouille :
    Si on regarde dans l'appendix 3 on peut alors lire ceci :
    Lowercase words (e.g. profile, units_section or mix_list) represent non terminals, whereas uppercase words or words enclosed in double quotes (e.g. <UNITS>, </UNITS>, "Imperial" or <ALARM>BREATH</ALARM>) represent terminals.
    Ceci étant le document pour décrire la grammaire UDCF.

    Donc en réalité si j'ai tout suivi, les vrai tags sont en minuscules, mais pour écrire la grammaire (au sens informatique du terme), il les met en majuscule pour indiquer que ce sont des noeuds terminaux (des tags) et il met en minuscule tout ce qui est noeud non-terminaux, c'est à  dire "expressions complexes" dans la grammaire (dont la définition, toujours sous forme de grammaire, est plus bas dans l'appendice 3)

    Je ne sais pas où tu as vu les tags en majuscule autre part, mais c'est peut-être pour la même raison qu'ils les met en majuscule et non en minuscule. En tout cas sur la page principale que tu donnes ici, les tags sont en minuscule et je pense qu'il faut donc travailler avec les versions en minuscules.
  • VeillardVeillard Membre
    21:41 modifié #33
    Bon, j'avais la doc sous les yeux, c'est bien de l'uppercase qu'il fallait employer.

    Voilà  !
  • VeillardVeillard Membre
    21:41 modifié #34
    ça marche impec' maintenant, il est temps d'aller au lit car demain, lever à  4 h 30 pour aller... plonger  :brule: :brule: :brule: :brule:
  • AliGatorAliGator Membre, Modérateur
    21:41 modifié #35
    dans 1147553640:

    Bon, j'avais la doc sous les yeux, c'est bien de l'uppercase qu'il fallait employer.

    Voilà  !
    De l'uppercase ?
    J'avais cru comprendre justement, vu la doc et mon interprétation expliquée ci-dessus dans mon dernier post, que c'était du lowercase (= minuscules) et non de l'uppercase (= majuscules) qu'il fallait utiliser ?  ???

    Tu veux dire que tu utilises les tags en majuscule et que ça marche, alors qu'avec les tags en minuscule ça ne marche pas ?
    Ou alors c'est la fatigue et tu as confondu lowercase et uppercase ?  :P

    Enfin bon comme tu le disais plus haut le tout est de savoir sur quoi se fixer, majuscules ou minuscules, moi j'avais compris minuscules, reste à  savoir si je me suis gourré et si toi tu as des documents ou tu as lu que c'était en majuscules, ou des exemples UDCF qui tendent à  montrer que c'est en majuscules... ou si tu as besoin de sommeil et d'une bonne journée de plongée pour avoir les idées fraà®ches :)
  • VeillardVeillard Membre
    21:41 modifié #36
    Non c'est bien ça : http://www.streit.cc/dive/udcf_doc_eng-3.html

    Lowercase words (e.g. profile, units_section or mix_list) represent non terminals, whereas uppercase words or words enclosed in double quotes (e.g. <UNITS>, </UNITS>, "Imperial" or <ALARM>BREATH</ALARM>) represent terminals.


    Sinon l'eau a perdu 3 degrés par rapport à  la dernière fois, autant dire que je me suis pelé (14 °C)...
  • AliGatorAliGator Membre, Modérateur
    mai 2006 modifié #37
    As-tu bien compris la phrase ?
    As-tu déjà  lu des grammaires (au sens informatique du terme, pour décrire un langage) ?

    Moi quand je lis ça je comprend... ben ce que je t'ai expliqué plus haut : c'est à  dire que juste pour décrire la grammaire, le gars a mis les noeuds non-terminaux en minuscule et les noeuds terminaux en majuscule, pour qu'on voit tout de suite d'un seul coup d'oeil les noeuds terminaux... qui sont donc les tags.
    Mais ce n'est là  que pour décrire la grammaire du "langage" udcf. Une légende qu'il a adopté pour cette page particulière.
    (En l'occurence l'appendice qui décrit la "grammaire udcf" n'est rien d'autre qu'une réécriture du DTD dans un langage plus compréhensible, en utilisant sa propre légende)

    Dans tout le reste du site et en particulier quand il décrit les tags et les définit, ces derniers sont en minuscule. Ce n'est vraiment QUE pour la grammaire qu'il semble les mettre en majuscule, non pas parce qu'ils ont à  être écrit en majuscule, mais pour montrer que ce sont des noeuds terminaux et non des expressions grammaticales dans sa grammaire.

    Dans une grammaire, un noeud non-terminal c'est un terme qui est expliqué plus loin dans la grammaire si tu veux. son terme "profile" est un noeud non-terminal parce qu'il est composé de plusieurs éléments qu'il décrit justement : un tag [tt]<profile udcf="1">[/tt] (qui est terminal : c'est un tag que tu dois écrire tel-quel, c'est ça que tu as dans ton XML), suivi d'un terme qu'il appelle "units_section" (et ça ce n'est pas terminal : tu n'écris pas dans ton XML le mot "units_section", c'est juste un terme grammatical qu'il utilise dans sa grammaire et qui est décrit plus en détail plus bas, juste en dessous d'ailleurs), puis d'un autre truc décrit plus loin dans la grammaire et qu'il appelle device_section (non-terminal, tu n'écris pas "device_section" tel quel dans le XML), etc, etc... jusqu'au tag [tt]</profile>[/tt] qui lui est terminal (c'est pour ça qu'il l'a mis dans sa grammaire en majuscules, pour indiquer qu'il est terminal mais en fait en réalité il faut l'écrire en minuscules), c'est à  dire n'est pas un terme grammatical décrit plus loin dans la grammaire mais bien un texte brut à  écrire dans le XML.
  • AliGatorAliGator Membre, Modérateur
    mai 2006 modifié #38
    J'ai envoyé un mail à  l'auteur de la page pour lui demander confirmation (et s'il pouvait modifier dans sa grammaire en différenciant les n½uds terminaux et non-terminaux par autre chose comme un style en gras ou souligné par ex), mais bon je suis à  peu près sûr que c'est ça parce qu'il n'y a en plus que sur cette page de description de la grammaire qu'il écrit les tags en majuscules.

    Ceci dit s'il me répond que les tags doivent bien être en minuscules, je lui demanderai si c'est normal que le sample file qu'on voit ici a ses tags en majuscules, parce que c'est vrai que pour le coup c'est bizarre, surtout que c'est hébergé sur le même site... (et j'ai oublié de lui demander dans mon premier mail)
  • VeillardVeillard Membre
    mai 2006 modifié #39
    Ah ok... j'ai jamais été bon en grammaire  :P mais une chose est sûre c'est que c'est bien en majuscules que sont écrits les tags : un plongeur avec qui je communique a toute une trifouillée de fichiers UDCF à  convertir et ça marche  :brule: et du coup il m'a donné plein d'idées pour améliorer mon app elle est pas belle la vie ?  :p
  • BruBru Membre
    21:41 modifié #40
    dans 1147632912:

    Ah ok... j'ai jamais été bon en grammaire  :P mais une chose est sûre c'est que c'est bien en majuscules que sont écrits les tags : un plongeur avec qui je communique a toute une trifouillée de fichiers UDCF à  convertir et ça marche  :brule: et du coup il m'a donné plein d'idées pour améliorer mon app elle est pas belle la vie ?  :p


    Pour quelqu'un qui, il y a quelques jours, demandait des tutos sur NSXML, tu as fait un sacré boulot !

    Chapeau bas.

    .
  • VeillardVeillard Membre
    21:41 modifié #41
    Merci, on peut faire des miracles quand on est motivé et puis tu m'as filé un sacré coup de main  ;)
  • AliGatorAliGator Membre, Modérateur
    21:41 modifié #42
    Tu sais ce qui te reste à  faire... Nous pondre un petit tuto  :) ;D

    Heu je déconne, hein, te sens surtout pas obligé !!
  • VeillardVeillard Membre
    21:41 modifié #43
    Pourquoi pas, mais pas avant cet été car la période des exams approche pour mes élèves  8)
  • AliGatorAliGator Membre, Modérateur
    21:41 modifié #44
    Bonjour à  tous,

    Je viens d'avoir la réponse (un peu tardive) du gars qui a défini le format UDCF (rappelez-vous, je l'avais contacté par mail... il n'a pas pu me répondre avant pour pb persos mais j'ai enfin sa réponse).

    Alors en fait au moment où il a écrit ce format, XML en était à  ses tout-débuts et tout n'était pas totalement spécifié.

    Ce qui fait que
    • il a fait une grammaire au lieu de faire un DTD. A terme cette grammaire sera remplacé par un DTD qui va un peu plus officialiser la chose, donc
    • au moment où il a écrit ce format il ne savait pas que XML était case-sensitive. D'ailleurs il avait écrit sa lib de parsing de sorte qu'elle soit case-insensitive en attendant d'être fixé. Mais il va bien falloir choisir une casse (lowercase/uppercase) maintenant pour être XML-compliant !


    Donc je lui ai répondu et j'attend sa 2e réponse pour qu'on formalise tout ça avec lui et qu'on choisisses d'officialiser lowercase ou uppercase dans le format.

    De toute façon tous les parsers qui existent (celui de Cocoa, mais aussi les autres en C/C++ ou autres langages) sont tous case-sensitive pour respecter la norme alors il va bien falloir choisir.

    Je vous tiens au courant de nos échanges dès qu'il y a du neuf.
  • AliGatorAliGator Membre, Modérateur
    juin 2006 modifié #45
    Bon cette fois-ci il a rerépondu rapidement :D
    Voilà  des extraits de son dernier mail (pour ceux qui n'auraient pas compris, en indenté et violet c'est moi et en noir sa réponse)

    > Thanks for your answer : )
    >
    > Actually, I think you made a mistake by making your lib case insensitive...
    > I am absolutely sure that XML is case-sensitive (I am used to work with
    > XML these times, and to be sure I checked again in my XML reference book
    > that confirms that).


    Ok! So we have to fix that. I agree, we do it lowercase.

    [...]

    So my term ends in two weeks and I have some time to fix the grammar.
    I plan to build a dive computer with my students next year, so one task
    for them is to fix the documentation ;-) BTW: We did some steps beyond
    UDCF. See http://www.streit.cc/uddf/ (unfortunately in German)

    > FYI, we are discussing about your UDCF format in this forum
    > <http://www.objective-cocoa.org/forum/index.php?topic=1775.15>;
    > (sorry it's neither an english or german forum but a french one... anyway if


    ;-) But you use the right operating system. 3 months ago, I switched
    from Linux to MacOSX and now I use a MacBookPro and I like OSX.

    > you feel like writing here you can do it in english I don't think it'll
    > be a problem)


    Unfortunately I cannot read/speak french.
    [...]
    Voilà  :)

    Donc en résumé c'est un switcher... ah, oui, et accessoirement, on s'est donc mis d'accord pour choisir le lowercase (minuscules) pour tous les tags.  ;)
    La grammaire sera mise à  jour sous peu (il aura un peu de temps dans 2 semaines), et toute la doc pourra être corrigée (exemples compris) au plus tard l'an prochain (il me semble évident qu'il parle en année scolaires, d'autant que c'est un prof et qu'il parle de la fin de l'année dans 2 semaines :))
  • VeillardVeillard Membre
    21:41 modifié #46
    Me voici après une longue absence...

    Merci Ali pour tes recherches et du coup, je vais pouvoir jeter un oeil à  tes mails et par la même occasion modifier mon appli...
    Je vais me pencher dessus prochainement une fois les examens terminés.
  • BruBru Membre
    21:41 modifié #47
    Rien à  voir avec XML, mais...

    Un truc que j'ai commencé il y a longtemps est sur le point d'être achevé : un plugin permettant de connecter un ordi de plongée au Mac, et d'y récupérer les profils de plongée.

    Pour le moment, ça marche nickel avec mon Suunto Vyper (avec interface USB).
    J'ai quelques soucis avec les interfaces série (apparemment seuls les adaptateurs USB<->série de marque Keyspan fonctionneraient).

    Sinon, pour les autres ordis, j'ai les protocoles de communication des Aladin/Uwatec/Mares.

    Voilà , si ça peut t'intéresser...

    .
  • VeillardVeillard Membre
    21:41 modifié #48
    Encore une longue absence, surtout en ce moment. :crackboom:-
    Concernant le plug-in pour Vyper ça m'intéresse beaucoup car c'est entre autre mon principal ordi de plongée. Beaucoup de personnes sont intéressées par le transfert direct sur Mac et n'arrêtent pas de me poser des questions sur le sujet...
    Pour les autres ordi, notamment les Aladin il y a du potentiel du côté des utilisateurs mais concernant le développement d'un plug-in, je veux bien essayer pour voir...
    Merci en tout cas pour ces infos très utiles.
  • AliGatorAliGator Membre, Modérateur
    21:41 modifié #49
    Je ne sais pas où t'en es dans les mails avec nos 2 amis du UDCF et UDDF, mais n'hésite pas à  en causer avec eux aussi puisque comme mis dans les echanges de mails que je t'ai fait suivre, il a déjà  un peu commencé et souhaite faire construire à  ses élèves un ordi de plongée pour l'année scolaire prochaine... Et tant qu'à  faire l'interfacer avec le mac aussi :)
  • VeillardVeillard Membre
    21:41 modifié #50
    J'y pense... par contre, j'ai un accès Internet que le week end ces temps ci, ils ne risquent pas d'avoir une réponse rapide  :-\\
    Je vais leur envoyer un petit mot demain soir pour montrer que je suis encore vivant  :o

    A+
  • BruBru Membre
    21:41 modifié #51
    dans 1151757029:

    Encore une longue absence, surtout en ce moment. :crackboom:-
    Concernant le plug-in pour Vyper ça m'intéresse beaucoup car c'est entre autre mon principal ordi de plongée. Beaucoup de personnes sont intéressées par le transfert direct sur Mac et n'arrêtent pas de me poser des questions sur le sujet...
    Pour les autres ordi, notamment les Aladin il y a du potentiel du côté des utilisateurs mais concernant le développement d'un plug-in, je veux bien essayer pour voir...
    Merci en tout cas pour ces infos très utiles.


    Moi aussi, j'ai un Vyper.
    Je me suis payé l'interface de connection USB sur Ebay pour pas cher... Et ça marche !

    Pour le moment, le plugin fonctionne avec presque tous les modèles Suunto (sauf Eon et Solution-alpha). Mais j'ai les protocoles, donc ça devrait aller.

    J'ai aussi les protocoles des Uwatec(Aladin) et Mares. Sauf que je n'ai personne dans mon entourage avec de tels ordis (muni de leur interface PC).

    Je continue le dev et je te tiens au courant pour l'intégration dans Corail.

    .
  • VeillardVeillard Membre
    21:41 modifié #52
    OK, ça marche !

    J'ai aussi les protocoles des Uwatec(Aladin) et Mares. Sauf que je n'ai personne dans mon entourage avec de tels ordis (muni de leur interface PC).


    Hélas moi non plus je n'ai pas ça sous la main et pourtant c'est assez répandu...
  • 21:41 modifié #53
    Est ce que la méthode de Bru fonctionne sur l'iPhone ?
    J'ai réussi à  le faire fonctionner sur le simulateur mais la compile pour le device ne passe pas.
  • AliGatorAliGator Membre, Modérateur
    21:41 modifié #54
    J'ai pas relu tout le sujet, mais à  savoir que le parsing DOM sous iPhone n'est pas disponible. Donc il faut utiliser le parsing événementiel avec NSXMLParser sous iPhone (qui lui est disponible dans le SDK iPhone) et non pas NSXMLDocument & consort (qui sont du parsing DOM te permettant d'avoir un arbre XML et accéder à  un élément donné à  un moment T quelconque et pas que lors du parsing " et surtout ces classes ne sont pas disponibles dans le SDK iPhone)

    Il est possible que tu puisse écrire du code utilisant les classes NSXMLDocument dans un projet iPhone, et même pire, qu'il compile, du moins en mode Debug et sur le simulateur puisque (1) le simulateur utilise pour certains de ses frameworks les bases des frameworks MacOSX sous i386, contrairement au vrai device qui a ses propres frameworks pour iPhone et processeur ARM) et (2) le mode debug est configuré par défaut pour avoir ZeroLink activé, ce qui veut dire qu'il n'effectue pas l'étape de linkage, donc qu'il ne détectera pas les erreurs de linkage comme les frameworks qui n'existent pas pour la cible choisie.
Connectez-vous ou Inscrivez-vous pour répondre.