Jak korzystać z XML na Haskell
- Wklej reprezentatywny przykład XML, najlepiej z wypełnionymi wszystkimi opcjonalnymi polami.
- Podaj nazwę typu głównego i zdecyduj, czy chcesz też kod pomocniczy, czy tylko typy.
- Skopiuj wygenerowany kod Haskell do swojego projektu.
O narzędziu XML na Haskell
Ręczne pisanie klas modeli dla dużych danych XML jest żmudne i łatwo wtedy o literówki. Wklej tutaj przykład, a generator rozpozna strukturę: jakie pola występują, które są obiektami lub tablicami i jaki typ ma każda wartość. Wynikiem są typy rekordowe z instancjami ToJSON i FromJSON z Aeson.
XML jest przekształcony w JSON w taki sam sposób, jak w naszym narzędziu XML do JSON: atrybuty otrzymują @_ Prefiks i zawartość tekstu obok atrybutów nazywa się #text. Typy Haskell są generowane na podstawie tego wyniku. Pola rekordów otrzymują prefiks oparty na nazwie typu, ponieważ Haskell nie pozwala dwóm rekordom w jednym module używać tych samych nazw pól.
Korzystanie z wygenerowanego kodu
Wykorzystanie decode z Data.Aeson, na przykład decode text :: Maybe Root.
Pola opcjonalne używają typu Maybe.