Як користуватися XML у Haskell
- Вставте показовий приклад XML, бажано з усіма заповненими необов’язковими полями.
- Задайте назву кореневого типу й виберіть, чи потрібен вам допоміжний код, чи лише типи.
- Скопіюйте згенерований код Haskell у свій проєкт.
Про XML у Haskell
Писати класи моделей вручну для великого обсягу XML-даних нудно, і так легко припуститися друкарської помилки. Вставте сюди приклад, і генератор визначить структуру: які поля є, які з них об’єкти чи масиви та який тип має кожне значення. Результат — типи записів з екземплярами ToJSON та FromJSON із Aeson.
XML спочатку перетворюється на JSON таким же чином, як у нашому інструменті XML на JSON: атрибути отримують @_ Префікс і зміст тексту поруч з атрибутами називається #text. Типи Haskell створюються з цього результату. Поля записів отримують префікс на основі назви типу, бо Haskell не дозволяє двом записам одного модуля мати однакові назви полів.
Використання згенерованого коду
Використання decode з Data.Aeson, наприклад decode text :: Maybe Root.
Необов’язкові поля використовують тип Maybe.