Code du jour: xml contre csv : le choix est évident (T)

Publié le 24 avril 2008 par Wtf

Le bout de code du jour nous viens de Rob O. Rob travaillait en tant que prestataire sur différents projets depuis environ une année quand on lui demanda de participer à une réunion avec deux avant vente et deux membres de la MOA client pour préparer un nouveau projet. Bob n'avait pas remarqué que pendant la discussion, l'un des avant vente de sa société prenait des notes d'une manière très énergique à chaque fois qu'on leur posait une question à propos de XML.

Ils n'avaient pas plongé beaucoup dans la partie technique mais les membres de la MOA savaient ce qu'ils voulaient. La compatibilité avec le mot à la mode. Le "buzz" XML.

Quand Bob n'était pas ignoré en tant que simple prestataire, on lui demandait si le système serait en mesure de gérer et d'envoyer différents types de fichiers et de messages comme XML qui bien sûr, en était capable. A chaque fois qu'une question à propos de XML était posée, un avant vente répondait "Oui", suivi d'un signe de tête enthousiaste, " Notre système gèrera le XML."

Plusieurs mois passèrent et arriva le début de l'automne. Rob reçut les spécifications du système et commença à travailler dessus. Après avoir découvert que la documentation technique avait de sérieuses lacunes, il demanda un exemple de fichier d'échange de données. Voici ce fichier :

<?xml version="1.0" encoding="iso8859-1" ?>
<import tag="1stTEST" type="data" mode="update">
<options>
<dateformat mmddyyyy="true"/>
<notification>
<EMail>example@example.com</EMail>
</notification>
</options>
<fields>
<field name="name" type="char" mapsto="person.data"/>
<field name="officeid" type="char" mapsto="custom.locationid"/>
<field name="startyear" type="char" mapsto="person.yearstarted"/>
<field name="personelid" type="int" mapsto="person.id"/>
<field name="dob" type="date" mapsto="person.dateofbith"/>
<field name="sex" type="char" mapsto="person.sex"/>
<field name="modified" type="date" mapsto="record.modified"/>
</fields>
<csvdata columnheaders="false">
<![CDATA[
"Jack Wade",214,2002,111012,07/04/1975,"M",02/11/2006
"Sam Davidson",214,1999,104841,10/15/1967,"M",02/10/2006
"Denise V Law",214,1998,104660,01/21/1971,"F",02/17/2006
"Lisa Blake",214,1989,100987,08/01/1982,"F",01/21/2006
"Andrew Match",214,1991,101074,12/25/1980,"M",02/28/2006
]]>
</csvdata>
</import>

Après vérification, c'était effectivement le format que le client souhaitait pour son système. Un document XML parfaitement conforme, compatibilité avec le mot à la mode accomplie !