IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

XML/XSL et SOAP Discussion :

Comprendre les définitions du W3C


Sujet :

XML/XSL et SOAP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut Comprendre les définitions du W3C
    Bonjour !

    Je suis un peu embêté ! Je me suis lancé dans le développement de mon propre parseur xml. J'ai donc attaqué la page de référence en la matière.

    Premier écueil : les définitions, qui m'apparaissent étranges et d'une forme inconnue. ex:

    [1] document ::= ( prolog element Misc* ) - ( Char* RestrictedChar Char* )
    En fait c'est cette définition qui me pose problème pour l'instant (c'est la première je sais ). Que veut dire ce '-' ? qu'il faut exclure tout RestrictedChar entouré de 0 ou plus de Char de la parenthèse de gauche, c'est à dire de tout le document ? Si c'est bien ça, alors pourquoi plus loin, il est précisé ceci :

    XML processors MUST accept any character in the range specified for Char
    (Or, Char inclut RestrictedChar...)


    Pourriez vous m'aider à comprendre ces définitions ? je les ai d'abord prise pour des regexp mais c'est pas vraiment ça... et je n'ai trouvé nulle part d'explication sur cette syntaxe.

    Merci

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par unomadh Voir le message
    Je suis un peu embêté ! Je me suis lancé dans le développement de mon propre parseur xml.
    Le principal intérêt de XML est justement que faire cela est totalement inutile. Quelques thirdparties par technologie se font chier une bonne fois pour toutes à faire ça, et le reste du monde est tranquille.
    Mais bon.

    Citation Envoyé par unomadh Voir le message
    J'ai donc attaqué la page de référence en la matière.
    Juste pour info, c'est XML 1.1, ça. Les différences avec XML 1.0 ne sont pas énormes, et du coup c'est assez peu utilisé.

    Citation Envoyé par unomadh Voir le message
    En fait c'est cette définition qui me pose problème pour l'instant (c'est la première je sais ). Que veut dire ce '-' ? qu'il faut exclure tout RestrictedChar entouré de 0 ou plus de Char de la parenthèse de gauche, c'est à dire de tout le document ?
    Oui.

    Si c'est bien ça, alors pourquoi plus loin, il est précisé ceci :

    XML processors MUST accept any character in the range specified for Char
    (Or, Char inclut RestrictedChar...)


    Pourriez vous m'aider à comprendre ces définitions ? je les ai d'abord prise pour des regexp mais c'est pas vraiment ça... et je n'ai trouvé nulle part d'explication sur cette syntaxe.
    Bien que relativement cohérente d'une spécification W3C à une autre, la syntaxe est en fait plus ou moins inventée pour les besoins de la description, dans le but de ressembler vaguement à une grammaire BNF. En avoir la clarté de schématisation, sans les inconvénients qui forcent à se plonger dans le détail.
    Bref, cherche pas, elle n'est pas 100% rigoureuse : elle illustre, et la tartine de texte autour est là pour expliquer.
    Oui, tu avais bien compris ce qu'elle voulait dire.

    Alors, pourquoi, d'un côté on dit qu'il ne faut pas avoir de RestrictedChar, et de l'autre côté on dit qu'il faut accepter tout Char, bien que Char inclut aussi RestrictedChar ?
    Eh bien, les deux ne parlent pas de la même chose. Il ne s'agit pas du même niveau d'acceptation.

    - Le premier dit que, pour être bien formé, un document XML ne doit pas contenir le moindre RestrictedChar.
    - Le second n'en est même pas à parler d'être bien formé. Il donne la définition de ce que c'est qu'un caractère. Et il dit donc, "un caractère, c'est la production Char. À partir du moment où c'est dans ces intervalles, c'est bien un caractère. On sait, certains code points ne sont pas associés à des caractères. Notamment l'intervalle des surrogates, et puis 0xFFFF. Ceux-là ne seront *jamais* associés à des caractères, et ne sont pas des Chars. Mais il y a des code points qui ne sont pas *encore* associés à des caractères, mais *il est prévu que ça le soit un jour*. Alors vous allez pas me jouer les cowboys en disant *ah, ma connaissance d'Unicode dit que ce codepoint n'est pas associé à un caractère, donc ce n'est pas un caractère.* Vous ne savez pas de quoi demain sera fait. Si un codepoint est dans l'intervalle indiqué pour Char, c'est un caractère, point final. Je vous dis pas de réfléchir je vous dis d'obéir."
    Voilà, en gros, le pourquoi de la remarque.

    La raison principale en est que, si les RestrictedChar ne doivent pas apparaître tels que dans un document XML, en revanche, en XML 1.1 ils ont le droit d'apparaître sous forme de référence de caractère. Par exemple, la notation  y est permise, et le document sera bien formé. Pourtant, le codepoint 1 est un RestrictedChar.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre Expert
    Avatar de Loceka
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    2 276
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 2 276
    Par défaut
    Alors déjà ton post n'a rien à voir avec XML.

    Là ce qui te pose problème c'est la grammaire formelle définissant le langage XML.

    Bon, j'en ai juste fait un peu en fac : c'est pas très complexe mais faut quand même bien s'impregner de la chose et ça paraît rebutant au départ (c'est des langages formels et de l'informatique théorique donc il y'a pas mal de notions mathématiques utilisées dans tout ce qu'on trouve là-dessus).

    Si tu veux en savoir plus, je te conseille de t'intéresser aux grammaires formelles et aux notions de précédence (operator precedence).
    Deux outils permettent aussi de générer un langage à partir d'une grammaire : lex et yacc (les deux sont inséparables et il existe des dérivations selon le langage utilisé).

    Je te conseille la lecture de cette page : http://www.linux-france.org/article/devl/lexyacc/.

    Si tu veux des réponses sur le forum, je te conseille ce forum là : http://www.developpez.net/forums/f41...gages-general/

    PS :
    Comme tu peux le constater à la lecture de ces documents, les grammaires contiennent très peu de token.
    Tout doit donc être décrit lors de la définition d'une grammaire.

    En l'occurence, "Char" et "RestrictedChar" sont décris ici :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    [2]   	Char	   ::=   	[#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]	/* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
    [2a]   	RestrictedChar	   ::=   	[#x1-#x8] | [#xB-#xC] | [#xE-#x1F] | [#x7F-#x84] | [#x86-#x9F]
    Dans le cas présent, ça veut simplement dire que les charactères définis par "RestrictedChar" ne doivent pas être présents dans un fichier XML.
    Ces "RestrictedChar" correspondent à tous les charactères de contrôle sauf (HT, LF, CR, NEL), comme tu peux le constater ici : http://fr.wikipedia.org/wiki/ISO_8859-15

    PPS :
    Si tu veux faire ton propre parseur XML, je te conseille vivement d'utiliser cette grammaire et des outils lex/yacc pour créer ton analyseur syntaxique. Toute autre démarche est source de bugs. Vlà un petit tuto sur ocamllex/ocamlyacc qui est relativement clair : http://www.irit.fr/~Armelle.Bonenfan...amlLexYacc.pdf

  4. #4
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut
    Bonjour,

    Merci grandement à vous deux pour vos réponses claires et instructives!

    thelvin:
    Oui, je sais que c'est XML 1.1, mais j'aimerais supporter les dernières normes
    Merci en tout cas pour ton éclaircissement.

    Loceka:
    Merci à toi de m'avoir répondu au sujet de la grammaire utilisée. Je ne connaissait pas tout ça et j'ai passé pas mal de temps avec lex et yacc, ça semble intéressant!

  5. #5
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 577
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 577
    Par défaut
    Citation Envoyé par unomadh Voir le message
    thelvin:
    Oui, je sais que c'est XML 1.1, mais j'aimerais supporter les dernières normes
    Merci en tout cas pour ton éclaircissement.
    Je sais pas précisément quel est ton but. Mais je préfère signaler que :
    - personne n'utilise XML 1.1, tout le monde utilise XML 1.0
    - Si un document déclare qu'il est XML version 1.0, il doit être traité selon la recommandation XML 1.0 et non pas la 1.1. Cela est précisé dans la 1.1.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  6. #6
    Membre actif
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2011
    Messages : 23
    Par défaut
    Je le sais, mais merci à toi de le préciser tout de même

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. CSS2 : les recommandations du W3C en français
    Par Community Management dans le forum Mise en page CSS
    Réponses: 9
    Dernier message: 26/11/2023, 14h59
  2. Réponses: 10
    Dernier message: 26/05/2006, 23h11
  3. Comprendre les matrices 3D
    Par tavman dans le forum Algorithmes et structures de données
    Réponses: 5
    Dernier message: 11/09/2005, 13h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo