Dilib, module Istex, commande JsonToSxml

De Wicri Outils
LogoDilib.gif
Panneau travaux.png
Bibliothèque Dilib (ressources numériques)
Module Istex

Cette commande, disponible à partir de la version V0.5.81, permet de convertir des données en format JavaScript Object Notation (JSON) en flux Sxml.

Conventions utilisées

Dans la conversion JsonToSxml, les conventions suivantes sont appliquées :

  • Un document XML nommé « json » est créé.
  • Une déclaration d'espace de nom « json » est ajoutée dans la racine du document (à partir de la version V0.6.13).
  • Les éléments de liste JSON sont balisés par « json:item ».
  • De même les chaînes non étiquetées sont balisées par « json:string ».

Utilisation

exemple introductif

La hiérarchie Dilib contient quelques exemples test sous $DILIB_IMPORT/Istex/Test.

Ainsi, sur le fichier :

{
    "menu": {
        "id": "file",
        "value": "File",
        "popup": {
            "menuitem": [
                { "value": "New", 
                  "onclick": "CreateNewDoc()" 
                },
                { "value": "Open", 
                   "onclick": "OpenDoc()" 
                },
                { "value": "Close", 
                  "onclick": "CloseDoc()" 
                }
            ]
        }
    }
}

La commande :

JsonToSxml < $DILIB_IMPORT/Istex/Test/jsonTest1.txt | SxmlIndent

produit :

<json xmlns:json="http://ticri.univ-lorraine.fr/wicri-meta.fr/index.php/JSON">
  <menu>
    <id>file</id>
    <value>File</value>
    <popup>
      <menuitem>
        <json:item>
          <value>New</value>
          <onclick>CreateNewDoc()</onclick>
        </json:item>
        <json:item>
          <value>Open</value>
          <onclick>OpenDoc()</onclick>
        </json:item>
        <json:item>
          <value>Close</value>
          <onclick>CloseDoc()</onclick>
        </json:item>
      </menuitem>
    </popup>
  </menu>
</json>
Avec l'API Istex

Avec utilissation de cURL et SxmlIndent pour visualiser la page d'entrée pour un document via l'api ISTEX.

curl https://api.istex.fr/document/B9F555DBF3A8A5EB874D3352D400B490495C8E5B 2> /dev/null \
   | JsonToSxml | SxmlIndent | more

Réalisation

Pour sa réalisation cette commande utilise l'interface JsonTools (voir Istex/JsonToSxml.c).