Создать пакет для парcинга прилагаемых XML средствами Go/golang
6 000 руб. за проект
Имеется несколько примеров данных в формате XML.
А также есть несколько таблиц, поясняющих поля каждой из этих структур.
См. приклеенный к этой задаче файл.
0) В название не влезло. Задача включает возможность работы с вашим пакетом в обоих направлениях. Как для парсинга XML так и для преобразования из созданных вами структур в XML.
1) Необходимо создать на языке программирования Go/golang структуры и реализовать интерфейсы,
которые можно использовать для парcинга из XML этих данных. И для обратного преобразования из структуры данных Go/golang в XML.
2) Написать соответствующие тесты преобразования в XML и из XML, использовав в качестве основы для тестирования данные из приклеенного к задаче файла.
Назвать создаваемый вами пакет native.
Приклеенный к письму файл содержит данные попарно, 6 штук. Запрос-ответ, 3 вида. Реализовать также - в 3 файлах, по паре запрос-ответ в каждом файле. Начинать названия файлов со слова struct.
И 3 соответствующих им файлов _test.go для тестов.
Использовать стандартный встроенный пакет xml/encoding, не сторонние пакеты.
Для написания кода тестирования использовать стандартные встроенные механизмы тестирования Go/golang (пакет testing) или, по желанию, пакет github.com/stretchr/testify (например, пакет testify/assert бывает удобным).
В задаче 1) подразумевается, что, что парcинг будет выполняться вызовом Unmarshal() из пакета encoding/xml, входящего в стандартную встроенную библиотеку Go.
То есть нужно создать сами структуры данных и теги этих структур, в которых описать необходимую парcеру информацию. И реализовать интерфейсы Marshaler/Unmarshaler/MarshalerAttr/UnmarshalerAttr по необходимости.
Примеры содержат типы UUID и dateTime.
Тип данных UUID считать строкой.
Тип dateTime, используемый в XML, указывать в создаваемых вами структурах как совместимый со стандартным типом даты Go/golang (из пакета time). Если дочитали до этого места, то начинайте ваше письмо с фразы "Всё начинается с начала", пожалуйста. Для осуществления операций marshal/unmarshal с этим типом данных необходимо будет реализовать интерфейсы Marshaler/Unmarshaler/MarshalerAttr/UnmarshalerAttr, если они нужны. Не использовать для этого внешних пакетов, кроме входящих в стандартную встроенную библиотеку Go/golang.
Обратите внимание, в таблицах, описывающих структуры, часть полей обозначена как опциональные. Реализовать такие поля в структурах через указатель.
Использовать свежую версию Go/golang (сейчас это 1.17).
Оплата по безопасной сделке.
Срок выполнения задачи 1 день (сегодня договариваемся, завтра вечером сдаете работу).
- Файлы
Отзывы
В заказе есть исполнитель
При переводе заказа из архивного в актуальный, текущий исполнитель будет снят с задачи.
Выберите тип сделки
С безопасной сделкой вы всегда сможете вернуть средства, если что-то пойдет не так. С простой сделкой вы самостоятельно договариваетесь с исполнителем об оплате и берете на себя решение конфликтов.