Comment utiliser XML vers Crystal
- 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 Crystal généré dans votre projet.
À propos de XML vers Crystal
É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 qui incluent JSON::Serializable de la bibliothèque standard.
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 Crystal sont générés à partir de ce résultat. Les propriétés sont déclarées avec la macro property et les clés sont mappées avec l'annotation JSON::Field quand nécessaire.
Utiliser le code généré
Appelez Root.from_json(json) pour analyser et to_json pour écrire.
Les champs optionnels sont des types union comme String | Nil.