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 :

[XML] Insérer des données binaires ?


Sujet :

XML/XSL et SOAP

  1. #1
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut [XML] Insérer des données binaires ?
    Salut !

    Je suis en train de me pencher sur un refactoring assez important d'un code C++ d'un ancien doctorant de chez nous. Il a créé un format XML binaire, le problème étant que ça ne passe pas du tout avec 99% des parseurs XML, et en plus ça nécessite des fichiers temporaires pour l'écriture qui ne sont pas effacés, donc un peu la merde.
    Est-ce qu'il existe un moyen simple d'enregistrer du binaire dans un fichier XML ?
    Une application typique chez nous est l'enregistrement de plusieurs images dans une arborescence, sachant qu'on a aussi souvent autre chose que des images, donc on a pas de moyen facile, avec un seul fichier de faire "bien".
    A moins que vous pensiez qu'une version XML + fichiers binaires le tout compressé soit plus judicieux ?

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Juin 2002
    Messages
    6 152
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 6 152
    Points : 17 778
    Points
    17 778
    Par défaut
    C'est pas du base64 qu'on utilise dans ces cas-là ?


    Julp.

  3. #3
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Citation Envoyé par julp
    C'est pas du base64 qu'on utilise dans ces cas-là ?
    Effectivement c'est la solution la plus courante, son défaut est qu'avec cet encodage les fichiers XML, déjà très verbeux, enflent davantage. Je retiendrais plutôt la proposition de Miles, à savoir externaliser les données binaires. Les fichiers XML ne contiendraient plus que des références aux fichiers binaires (nom et chemin), avec éventuellement en plus un checksum pour fiabiliser le lien logique entre XML et fichiers binaires.

    Au passage, ton doctorant n'a pas dû jeter un oeil à la recommandation du W3C ; l'interdiction des données binaires y est explicite...
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  4. #4
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    Et dire que c'était un grand fana des standards - mais bon... -
    Maintenant, faut que je vois comment je peux compresser tout ça...
    C'est quoi le Base64 ??

  5. #5
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Base64 permet d'encoder des données binaires sous une représentation ASCII comptant 64 caractères - 24bits de la source binaire sont convertis en 4 caractères codés sur 6 bits - ce qui permet de les faire figurer dans du XML. Attention, ce n'est pas un format de compression, bien au contraire, puisque des données binaires encodées en Base64 voient leur taille augmenter de 30%.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  6. #6
    Rédacteur

    Avatar de Matthieu Brucher
    Profil pro
    Développeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Développeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Points : 20 970
    Points
    20 970
    Par défaut
    OK, ce n'est donc pas intéressant, donc je vais rester sur ma deuxième idée que je vais donc proposer.
    Merci pour ces infos !

  7. #7
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Interdiction des données binaires dans la REC W3C
    Citation Envoyé par GrandFather Voir le message
    Effectivement c'est la solution la plus courante, son défaut est qu'avec cet encodage les fichiers XML, déjà très verbeux, enflent davantage. Je retiendrais plutôt la proposition de Miles, à savoir externaliser les données binaires. Les fichiers XML ne contiendraient plus que des références aux fichiers binaires (nom et chemin), avec éventuellement en plus un checksum pour fiabiliser le lien logique entre XML et fichiers binaires.

    Au passage, ton doctorant n'a pas dû jeter un oeil à la recommandation du W3C ; l'interdiction des données binaires y est explicite...
    Information intéressante ; pourriez-vous me préciser dans quelle REC le W3C interdit explicitement les données binaires ?

    Cordialement

  8. #8
    Expert éminent
    Avatar de GrandFather
    Inscrit en
    Mai 2004
    Messages
    4 587
    Détails du profil
    Informations personnelles :
    Âge : 54

    Informations forums :
    Inscription : Mai 2004
    Messages : 4 587
    Points : 7 103
    Points
    7 103
    Par défaut
    Certainement.
    Citation Envoyé par La recommandation W3C XML 1.0 (4ème édition) § 1.1
    The design goals for XML are:

    1. XML shall be straightforwardly usable over the Internet.

    2. XML shall support a wide variety of applications.

    3. XML shall be compatible with SGML.

    4. It shall be easy to write programs which process XML documents.

    5. The number of optional features in XML is to be kept to the absolute minimum, ideally zero.

    6. XML documents should be human-legible and reasonably clear.

    7. The XML design should be prepared quickly.

    8. The design of XML shall be formal and concise.

    9. XML documents shall be easy to create.

    10. Terseness in XML markup is of minimal importance.
    L'introduction de données binaires dans un document XML est il me semble assez peu compatible avec l'item n°6 de cette liste, entre autres. A ces critères s'en ajoute un autre, plus normatif et technique : tous les caractères Unicode ne sont pas acceptés, aussi bien pour nommer les éléments que pour leur contenu (règle BNF n°2 § 2.2). Cela restreint de fait le nombre des séquences de données binaires possibles que l'on pourrait intégrer dans un document XML, si l'on faisait abstraction du critère de lisibilité.
    FAQ XML
    ------------
    « Le moyen le plus sûr de cacher aux autres les limites de son savoir est de ne jamais les dépasser »
    Giacomo Leopardi

  9. #9
    Candidat au Club
    Homme Profil pro
    Retraité
    Inscrit en
    Octobre 2005
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Octobre 2005
    Messages : 2
    Points : 3
    Points
    3
    Par défaut OK : no binaries in XML
    Citation Envoyé par GrandFather Voir le message
    Certainement.

    L'introduction de données binaires dans un document XML est il me semble assez peu compatible avec l'item n°6 de cette liste, entre autres. A ces critères s'en ajoute un autre, plus normatif et technique : tous les caractères Unicode ne sont pas acceptés, aussi bien pour nommer les éléments que pour leur contenu (règle BNF n°2 § 2.2). Cela restreint de fait le nombre des séquences de données binaires possibles que l'on pourrait intégrer dans un document XML, si l'on faisait abstraction du critère de lisibilité.

    1. Merci de rappeler certains principes fondateurs d'XML que le temps gomme quelque peu
    2. Effectivement, la lisibilité par l'humain pourrait être un motif pour ne pas mettre avoir du binaire dans une instance XML, mais comme vous le dites, c'est fondamentalement (et pratiquement) l'exigence d'encodage qui l'exclut.

    Cordialement

Discussions similaires

  1. Flash et Xml problème d'eploitation des données
    Par knoxville dans le forum Flash
    Réponses: 6
    Dernier message: 27/10/2008, 17h16
  2. renvoyer des données sous forme de XML hiérarchique
    Par DiGueDao dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 12/01/2005, 18h06
  3. Réponses: 3
    Dernier message: 13/12/2004, 13h54
  4. Supprimer des données dans un xml
    Par pingoui dans le forum Format d'échange (XML, JSON...)
    Réponses: 49
    Dernier message: 12/08/2004, 16h49
  5. [xml]manipuler des données xml sous Oracle9i
    Par crazy dans le forum SQL
    Réponses: 7
    Dernier message: 28/02/2004, 11h40

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