Go предлагает встроенную поддержку XML и XML-подобных форматов с помощью пакета encoding/xml. Объект будет отображен в формате XML. Как и в формате JSON, теги полей содержат директивы для кодера и декодера. Здесь мы используем некоторые специальные возможности пакета XML: имя поля XMLName определяет имя элемента XML, представляющего эту структуру; id,attr означает, что поле Id является атрибутом XML, а не вложенным элементом. Генерируем XML, представляющий наш завод; используем MarshalIndent для получения более удобочитаемого вывода. Чтобы добавить общий заголовок XML в выходные данные, добавьте его явно. Используйте Unmarshal для преобразования потока байтов с помощью XML в структуру данных. Если XML-файл неправильно сформирован или не может быть сопоставлен с Plant, будет возвращена описательная ошибка. Тег поля parent>child>plant указывает кодировщику поместить все растения в поле <parent><child>