Создать пакет для парcинга прилагаемых XML средствами Go/golang

6 000 руб. за проект
19 октября 2021, 10:33 • 3 отклика • 33 просмотра

Имеется несколько примеров данных в формате 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 день (сегодня договариваемся, завтра вечером сдаете работу).





Файлы
Отзывы
Avatar r50 a6ce93fe35b158fd29ba0e8681c918c22117160e9586a56eee4ffbc20df9bda1
Заказчик
 
~ 1 месяц назад
R50 9fcaaa81e45308adcf629fe9582dc203
Фрилансер
 
~ 1 месяц назад