So verwenden Sie XML zu Haskell
- Fügen Sie ein repräsentatives XML-Beispiel ein, idealerweise eines, in dem alle optionalen Felder gefüllt sind.
- Legen Sie den Namen des Wurzeltyps fest und entscheiden Sie, ob Sie auch Hilfscode oder nur Typen haben möchten.
- Kopieren Sie den erzeugten Haskell-Code in Ihr Projekt.
Über XML zu Haskell
Modellklassen für eine große XML-Payload von Hand zu schreiben, ist öde, und genau dort schleichen sich Tippfehler ein. Fügen Sie hier ein Beispiel ein, und der Generator ermittelt die Struktur: welche Felder es gibt, welche Objekte, welche Arrays sind und welchen Typ jeder Wert hat. Die Ausgabe sind Record-Typen mit Aeson-Instanzen von ToJSON und FromJSON.
XML wird zuerst auf dieselbe Weise in JSON umgewandelt wie in unserem Tool XML zu JSON: Attribute erhalten das Präfix @_, und Textinhalt neben Attributen heißt #text. Aus diesem Ergebnis werden die Haskell-Typen erzeugt. Record-Felder erhalten ein Präfix auf Basis des Typnamens, da Haskell nicht erlaubt, dass zwei Records in einem Modul dieselben Feldnamen teilen.
Den erzeugten Code verwenden
Verwenden Sie decode aus Data.Aeson, zum Beispiel decode text :: Maybe Root.
Optionale Felder verwenden den Typ Maybe.