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

Delphi Discussion :

[TXMLDocument] Documents XML Standard


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut [TXMLDocument] Documents XML Standard
    Bonjour!

    Je suis relativement nouveau au monde du XML. J'ai parcouru la FAQ et les tuto et j'y ai trouvé tout plein d'aide. Merci les mecs .

    J'ai donc implémenté ce que je connais du TXMLDocument et j'ai maintenant une application de test qui me permet d'enregistrer des fichiers sous format XML.

    Mon problème ? J'ai l'impression que mon fichier XML n'est pas standard.

    Pourquoi est-ce que j'ai cette impression ? Parce que mes chiffres avec décimales ont été enregistrés avec une virgule et que mes dates sembles avoir été enregistrées avec le format de mon ordinateur (aaaa-MM-jj). Si je demande à un autre ordinateur de lire mon fichier, il est fort probable que ce dernier bute sur la date si son format diffère non ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <Doc>
      <RootTest1 string="TestNom1" date="2006-07-25 13:13:11" float="123,456" Bool="True" /> 
      <RootTest2 string2="TestNom2" date2="2006-07-25" float2="22,456" Bool2="False">2006-07-25 13:13:11</RootTest2> 
    </Doc>
    Si je consulte la propriété XMLData d'un ClientDataSet par exemple, la date ressemble à ceci : "20060725T12:47:43718"

    Donc j'ai 2 questions.

    1. Est-ce ça existe des standards sous XML ?
    2. Comment est-ce que je peux m'assurer que mon document respecte ces standards ?


    Merci!

  2. #2
    Membre Expert

    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 296
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Août 2002
    Messages : 1 296
    Par défaut
    Le XML du TXMLdocument est standard mais pas celui d'un TClientDataset. (celà se voit bien avec le Mappeur XML)

  3. #3
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Merci pour la réponse .

    Mais je continue à avoir des doutes....

    Quand je change le format de date de mon ordinateur, ça change la façon que TXMLDocument écrit ses dates. Des fois c'est "2006-07-25 13:13:11" d'autres fois c'est "26/07/06 08:48:34".

    Si je fais une requête FOR XML AUTO sur SQL Server, format ressemble à "2006-07-25T13:13:11".

    Si je fais un XML via VB.NET, la date ressemble à ça : "2006-07-25T14:20:29.6250000-04:00".

    Et j'ai pas encore exploré les format de décimales .

    Quelqu'un pourrait m'éclairer là dessus ?

    Merci

  4. #4
    Membre émérite
    Avatar de denokan
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2002
    Messages
    434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2002
    Messages : 434
    Par défaut
    est-ce que tu ne peux pas ajouter un "entête" dans ton xml pour indiquer à l'application qui va le relire comment exploiter les données ?
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Doc>
      <DataFormat>
        <Dates>aaaa-mm-jj hh:nn:ss</Dates>
        <DecimalSeparator>,</DecimalSeparator>
      </DataFormat>
      <RootTest string="TestNom1" date="2006-07-25 13:13:11" float="123,456" Bool="True" /> 
      <RootTest string="TestNom2" date="2006-07-25" float="22,456" Bool="False">2006-07-25 13:13:11</RootTest> 
    </Doc>

  5. #5
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Citation Envoyé par denokan
    est-ce que tu ne peux pas ajouter un "entête" dans ton xml pour indiquer à l'application qui va le relire comment exploiter les données ?
    genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    <Doc>
      <DataFormat>
        <Dates>aaaa-mm-jj hh:nn:ss</Dates>
        <DecimalSeparator>,</DecimalSeparator>
      </DataFormat>
      <RootTest string="TestNom1" date="2006-07-25 13:13:11" float="123,456" Bool="True" /> 
      <RootTest string="TestNom2" date="2006-07-25" float="22,456" Bool="False">2006-07-25 13:13:11</RootTest> 
    </Doc>

    Hum...
    C'est pas fou ça

    Si je trouve pas de standard réel, je compte bien utiliser cette technique.

    Merci!

  6. #6
    Membre émérite Avatar de slimjoe
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    647
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : Canada

    Informations forums :
    Inscription : Juin 2005
    Messages : 647
    Par défaut
    Bonjour à tous!

    J'ai trouvé (partiellement) réponse à ma question et comme vous êtes gentils (et que perso je déteste tomber sur une discussion où y'a pas de solution quand je fais des recherches sur ce forum), je vous la partage.

    Pour obtenir une date au format défini par W3C, il suffit d'utiliser la classe TXSDateTime dans l'unité XSBuiltIns.

    Exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    var
       maDate: TXSDateTime;
     
    begin
       maDate := TXSDateTime.Create;
       try
          maDate.AsDateTime := now;
          ShowMessage(maDate.NativeToXS);
       finally
          maDate.Free;
       end;
    end;
    Ça donne : 2006-08-03T09:25:46.984-04:00


    Bonne journée à tous!

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

Discussions similaires

  1. Serialiser de gros documents XML
    Par philemon_siclone dans le forum XML/XSL et SOAP
    Réponses: 6
    Dernier message: 17/09/2003, 15h26
  2. recherche dans un document xml via DOM
    Par ndoye_zaff dans le forum APIs
    Réponses: 5
    Dernier message: 11/06/2003, 14h44
  3. Réponses: 3
    Dernier message: 03/06/2003, 13h16
  4. Stocker du texte mis en forme dans un document XML
    Par ovh dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/02/2003, 10h23
  5. pb formatage document XML généré par un dom tree
    Par lionel69 dans le forum APIs
    Réponses: 11
    Dernier message: 17/10/2002, 09h53

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