[gull] XML et archivage de documents

Marc SCHAEFER schaefer at alphanet.ch
Tue Jan 6 14:21:02 CET 2004


On Tue, Jan 06, 2004 at 12:34:25PM +0100, pierre maitre wrote:
> Concrêtement, est-ce la voie pour archiver ses documents?

XML en soit a plusieurs avantages:

   - format texte, diff(1)able aisément
   - de nombreux logiciels supportent ce format
   - il y a des bibliothèques de traitement pour de nombreux langages
     (p.ex. Perl)

mais il a aussi plusieurs inconvénients:

   - utilisation de générateurs, ce qui rend la compréhension très
     difficile parfois.

   - formats à demi-cassés, comme l'exemple de gnucash le montre

   - les choses simples sont plus complexes en XML.

XML ce sont en fait des données structurées. La syntaxe de ces
données est définie dans un fichier DTD et la représentation
dans un fichier XSLT.

Exemple:  Yellownet

<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE IC SYSTEM "acc_200.dtd">
<?xml-stylesheet  type="text/xsl" href="acc_200.xsl"?>
<IC xmlns:PF="http://www.post.ch/xml">
  <IC_HEADER>
    <ICHDR>20-12345-0 Extrait de compte 28.02.2003</ICHDR>
    <ICPFORM>H</ICPFORM>
    <ICVVNR>01.02.02</ICVVNR>

[ ... ]

        <MOA>
          <C516>
            <D_5025 Value="211"/>
            <D_5004>44.15</D_5004>
          </C516>
          <PF:D_5003>+</PF:D_5003>
        </MOA>
        <FTX>
          <D_4451 Value="ABN"/>
          <D_4453 Value="0"/>
          <C108>
            <D_4440>ACHAT DE CARBURANT DU 01.02.2003</D_4440>
            <D_4440>SHELL, QUAI PERRIER</D_4440>
            <D_4440>NEUCHÂTEL</D_4440>
          </C108>
        </FTX>

Ce sont surtout les CXXX et les D_XXXX qui peuvent rendre le
décodage difficile.

De la DTD on obtient seulement que D_4440 est répétable
comme élément de C108.

   <!-- C108 ********************************************* -->
   <!ELEMENT C108 (D_4440+)>

Du fichier XSLT on obtient par exemple comment représenter
en HTML, avec un langage de sélection et de test.

<xsl:when test="PF:FTX/C108/D_4440[../../D_4451/@Value = 'AAI'] != 0">

        <xsl:for-each select="PF:FTX/C108/D_4440[../../D_4451/@Value =
'AAI']">

                <xsl:value-of select="."/>

                <xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text>

        </xsl:for-each>

</xsl:when>

Personnellement je n'ai pas encore utilisé de véritable XML,
utilisant plutôt des bases de données pour le stockage (SQL) et des
moulinettes LaTeX pour la représentation.

XML est aussi utilisable comme langage de middleware (entre
applications différentes voire même p.ex. appel de
procédure distantes (RPC) avec abstraction des types de données).

Petite intro ici:
  http://cvs.alphanet.ch/cgi-bin/cvsweb/schaefer/public/cours/EISI/teleinfo_2/cours/couche_6/XML/




More information about the gull mailing list