Comment utiliser XML vers Ruby
- Collez un exemple XML représentatif, idéalement un avec tous les champs optionnels remplis.
- Définissez le nom du type racine, et décidez si vous voulez aussi du code auxiliaire ou uniquement les types.
- Copiez le code Ruby généré dans votre projet.
À propos de XML vers Ruby
Écrire des classes de modèle à la main pour une grosse charge utile XML est fastidieux, et c'est là que les fautes de frappe s'installent. Collez un exemple ici et le générateur déduit la structure : quels champs existent, lesquels sont des objets, lesquels sont des tableaux et quel type a chaque valeur. La sortie est des classes Dry::Struct avec Dry::Types, avec des helpers from_dynamic et to_dynamic.
Le XML est d'abord converti en JSON de la même manière que dans notre outil XML vers JSON : les attributs reçoivent un préfixe @_ et le contenu texte à côté des attributs s'appelle #text. Les types Ruby sont générés à partir de ce résultat. Le code généré est verbeux car il valide les types à l'exécution, ce que Ruby lui-même ne fait pas.
Utiliser le code généré
Ajoutez la gem dry-struct et appelez Root.from_json!(text).
Les attributs optionnels sont déclarés avec le type optional et peuvent être nil.