XML->XSD->Kotlin Класс. Какими gradle плагинами делать ?
От: HAXT  
Дата: 08.05.19 20:43
Оценка:
Ребята привет !
Стоит задача используя описание классов в XML типа такого

<?xml version="1.0" encoding="UTF-8"
<domain>
    <model name="Account">
        <element name="accountNumber" type="string">
        <element name="balance" type="double">        
    </model>

    <model .../>

</domain>
описанию

нагенерировать Kotlin классы типа таких

package aaa
import bbb.DF_NS

@XmlRootElement(name="Account", namespace=DF_NS)
@XmlAccessorType(XmlAccessorType.FIELD)
class Account {
    @field:Element(name="AccountNumber", namespace=DF_NS)
    var accountNumber: String = ""

    @field:Element(name="Balance", namespace=DF_NS)
    var balance: Double? = ""

    constructor() {}
}


1. Предполагается, что сначала по xml описанию с помощью xslt создать xsd описание классов для jaxb.
2. Потом по xsd сгенерировать Kotlin классы.
Если с первой задачей справился с помощью Gradle плагина (eerohele/saxon-gradle) то со второй задачей не могу разобраться, подключил плагин (reaster/schema-gen), да kotlin классы генерирует, но почему то не могу его заставить генерировать аннотации, начиная даже с такой @XmlRootElement(name="Account", namespace=DF_NS)

Подскажите, какими вы бы пользовались плагинами Gradle для этой задачи ?
Re: XML->XSD->Kotlin Класс. Какими gradle плагинами делать ?
От: elmal  
Дата: 15.05.19 11:23
Оценка: +1
Здравствуйте, HAXT, Вы писали:

HAX>Подскажите, какими вы бы пользовались плагинами Gradle для этой задачи ?

Ты уверен что тебе обязательно Kotlin классы генерить? Вполне на практике достаточно генерить Java классы, например через https://www.journaldev.com/1312/jaxb2-maven-plugin-xjc-example-generate-java-classes-xsd. И эти классы прекрасно как родные можно будет юзать из Kotlin. Если не подходит — придется искать готовый плагин (я за минуту не нашел), а если нет такого, можешь сам написать, это не так и сложно на деле.
Re: XML->XSD->Kotlin Класс. Какими gradle плагинами делать ?
От: vsb Казахстан  
Дата: 15.05.19 11:37
Оценка:
А чего сразу из XML не нагенерить Kotlin-код? Можно банальный XSLT написать. Генерации Kotlin-кода из XSD нет. Можешь попробовать XJC доработать, исходники где-то в проекте Metro должны быть.
Отредактировано 15.05.2019 11:38 vsb . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.