OSB et REST : Conversion nXSD de JSON vers XML

Présentation

Ce cas se présente quasi obligatoirement dans le cas où l’on interroge un WebService REST.
Le but de cet article est de présenter comment passer d’une donnée au format JSON au format XML.
Cette méthode peut facilement être étendue pour convertir dans l’autre sens (XML vers JSON) ou en remplaçant JSON par d’autre formats (CSV par exemple).
Dans OSB, la fonction permettant de convertir des données non XML est appelé nXSD (native XSD).
 

Exemple pas-à-pas

Création du schéma nXSD

  1. Récupérer un fichier JSON d’exemple (par exemple, depuis un appel au WebService via un navigateur).exemple JSON
    Ce fichier servira d’exemple pour analyse et détermination du format cible.
  2. Demander à créer un fichier nXSD.
    création du nXSD
  3. Définir un nom et un emplacement.
    emplacement du nXSD
  4. Sélectionner le format de conversion (JSON dans notre cas).
    choix du format natif JSON
  5. Charger le fichier d’exemple (Personnaliser les namespace, root element, si besoin).
    aperçu et paramétrage du fichier d'exemple
    Dans l’aperçu, le fichier d’exemple est contenu dans un seul champ : C1
    Dans le cas où l’on travaille sur format CSV, chaque colonne serait associée à un champ CN, N étant le n° de la colonne.
  6. A l’étape suivante, l’assistant propose le schéma XSD correspondant au fichier d’exemple du format source.
    apperçu du schéma XSD généré
  7. Tester de la transformation via le bouton en bas à droite.
    Dans l’exemple ci-dessous, le type du champ isActive a été modifié de string à booléen car répondant au format souhaité.
    test de la transformation proposée
  8. Une fois terminé, on peut voir le schéma XSD comme attendu.
    appercu du schéma nXSD final

Test de la transformation

  1. Créer un pipeline dans lequel on place une simple activité « nXSD Translate ».
    création du pipeline
  2. Paramétrer ensuite cette activité.
    paramétrage de la transformation
    Attention : comme dans cet exemple, on passe du format JSON vers XML, on choisit : translate = « Native to XML ».
  3. Saisir manuellement, dans la partie Input, des données d’exemple pour exécuter un test.
    saisie d'un JSON de test à transformer
  4. Pour finir, on teste le résultat.
    résultat de la transformation vers XML
  5. Pour aller plus loin, on peut facilement, convertir de XML à JSON en modifiant le type de l’objet Translate en « XML to Native ».
    convertion inverse : XML vers JSON
    saisie d'un XML de test à transformer
    résultat de la transformation vers JSON

Pour en savoir plus sur OSB et l’intégration de services, découvrez notre formation « Oracle Service Bus 12c : Conception et Intégration de Services », ainsi que l’ensemble de nos formations Oracle Service Bus.

Voir aussi :

La documentation Oracle sur nXSD
La documentation de référence sur JSON et XML
D’autres article sur des sujets liés :
OSB 12c : Exposition d’un service REST
Test du connecteur REST/JSON
 
Merci à Cédric Soudant pour ses conseils et sa relecture.